Skip to content

fix(my_egeria): My Profile performance, exec_report_spec depth, packaging and serve fixes - #417

Merged
dwolfson merged 1 commit into
odpi:mainfrom
dwolfson:fix/my-profile-performance-and-packaging
Oct 2, 2026
Merged

dwolfson merged 1 commit into
odpi:mainfrom
dwolfson:fix/my-profile-performance-and-packaging

Conversation

@dwolfson

@dwolfson dwolfson commented Oct 2, 2026

Copy link
Copy Markdown
Member

Summary

Gets the new My Profile app ready to evaluate, in a terminal and in the Egeria-Workspaces portal. Its startup now shows the full profile about 4 s after the splash, down from about 82 s.

pyegeria

  • exec_report_spec silently dropped graph_query_depth (ISSUE-119). It copies only a report spec's declared params, so params={..., "graph_query_depth": 0} always ran at the SDK default of 3. My Profile asked for depth 0 in about ten places and got none of it; live, several lists timed out at 90 s. Now graph_query_depth is forwarded when the target method accepts it. Other undeclared params are still not forwarded; this is deliberately narrower than the async path.
  • Packaging (ISSUE-118). The wheel installed my_egeria one level too deep (site-packages/my_egeria/my_egeria/...), so my_egeria, my_profile, serve_my_egeria and serve_my_profile failed in every pip install. packages.find now also searches my_egeria/ with namespaces = false, and pyegeria/config and commands/deprecated gain __init__.py so they keep shipping. A clean-build file diff shows the wheel is otherwise identical, and my_profile.tcss now ships.
    • ⚠️ Downstream: anything launching the app by the old nested file path must switch to the entry points. The egeria-workspaces my-profile container does this today; a matching change there will follow.

my_egeria

  • serve_my_*: these used the textual serve CLI from textual-dev, which is dev-only. They now use the textual-serve library and honour MY_EGERIA_PUBLIC_URL / MY_PROFILE_PUBLIC_URL. The stale [app.*] textual-web sections are removed.
  • Startup check: it required EGERIA_SERVER / EGERIA_BASE_URL with no defaults, so the README's instructions ended in an error popup. It now derives them from the documented EGERIA_VIEW_SERVER / EGERIA_PLATFORM_URL.
  • My Profile graph_query_depth (all live-measured):
Where Change Before → after
Startup "my collections" depth 0 ~70 s → 0.6 s
Profile fetched once, formatted locally for both views (output verified identical) 2–3 fetches → 1
To-dos depth as a keyword (params= was ignored) 5.7 s → 0.6 s
Shop for Data lists depth 0 now takes effect (pyegeria fix) ~90 s timeouts → ~2 s
Glossary folders, root-collection members fetch only the selected element at depth 1 needed once depth 0 took effect (the depth-0 list has no folders); also fixes the root-collection tree working only for the first row
Bookmarks, term/data-dictionary/collection details, subscriptions, comments, data-set GUID lookups depth 0 bookmarks 30 s timeout → 0.3 s
Product and capability details depth 1 they show members

Team members are unchanged, because they need depth 2 or more.

Docs

  • The developer guide gains a section on choosing graph_query_depth.
  • The my_egeria README now separates My Profile (the actively developed app) from the original MyEgeria app.
  • Handoff and integration docs cover textual-serve, the packaging change and Python 3.13.
  • The My Profile manual is updated.
  • PYEGERIA_ISSUES.md: ISSUE-118 (packaging), ISSUE-119 (depth dropped), ISSUE-120 (Textual fails on Python 3.14, so use 3.13).

Testing

  • New test_exec_report_spec_graph_query_depth.py: it fails without the fix. A new startup-check test was added, and the bookmarks test now pins graph_query_depth=0. The full tests/micro-tests and my_egeria tests pass.
  • Live, against a 6.2-SNAPSHOT quickstart, as peterprofile:
    • my_egeria and my_profile run in a real terminal with no EGERIA_* variables set.
    • The profile is populated about 4.3 s after the splash, and Shop for Data works.
    • Depth-1 detail fetches return glossary folders (6 of 13 glossaries have them) and root-collection members.
  • Textual: the new My Profile fails on Python 3.14 with both Textual 6.1.0 and 8.2.8, and runs on 3.13 with both.
  • Not verified with live data: peterprofile has no to-dos, comments or bookmarks, so those three were checked against the report specs' columns.

🤖 Generated with Claude Code

…ging and serve fixes

pyegeria
- exec_report_spec silently dropped a caller's graph_query_depth (it copies only
  a spec's declared params), so report-spec calls always ran at depth 3. It now
  forwards graph_query_depth when the target method accepts it; other undeclared
  params are still not forwarded (ISSUE-119).
- Packaging: the wheel installed my_egeria one level too deep
  (site-packages/my_egeria/my_egeria/...), so the my_egeria, my_profile,
  serve_my_egeria and serve_my_profile commands failed in every pip install.
  packages.find now also searches my_egeria/ with namespaces off, so the app
  installs as the top-level my_egeria package; pyegeria/config and
  commands/deprecated gain __init__.py so they keep shipping. A clean-build
  diff shows the wheel is otherwise identical, and my_profile.tcss now ships
  (ISSUE-118).

my_egeria
- serve_my_egeria / serve_my_profile used the `textual serve` CLI (textual-dev,
  dev-only); they now use the textual-serve library and honour
  MY_EGERIA_PUBLIC_URL / MY_PROFILE_PUBLIC_URL. Removed the stale [app.*]
  textual-web sections from my_egeria/pyproject.toml.
- The startup check required EGERIA_SERVER / EGERIA_BASE_URL with no defaults,
  so following the README produced an error popup; it now derives them from the
  documented EGERIA_VIEW_SERVER / EGERIA_PLATFORM_URL.
- My Profile graph_query_depth tuning (measured live on the quickstart):
  - startup "my collections": depth 0 (~70s -> 0.6s)
  - profile fetched once, formatted locally for both views (identical output)
  - to-dos: depth passed as a keyword (params= was ignored), 5.7s -> 0.6s
  - bookmarks members/lookup, term/data-dictionary/collection details,
    subscriptions, comments, data-set GUID lookups: depth 0
  - glossary folders and root-collection members: fetch only the selected
    element at depth 1 (needed once depth 0 took effect; also fixes the root
    collection tree working only for the first row)
  - product and capability details: depth 1; team members unchanged (need 2+)
  Startup now shows the full profile ~4s after the splash, down from ~82s.

Docs: developer guide section on choosing graph_query_depth; my_egeria
README, handoff and integration docs (textual-serve, packaging change,
Python 3.13); My Profile manual; ISSUE-118/119/120 (120: Textual fails on
Python 3.14, use 3.13).

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
@dwolfson
dwolfson merged commit 8b0a0a3 into odpi:main Oct 2, 2026
5 checks passed
dwolfson added a commit that referenced this pull request Oct 2, 2026
Release carrying the Dr.Egeria Automation family and automated-curation SDK
fixes (#414), and the My Profile performance work with the exec_report_spec
graph_query_depth fix, the my_egeria packaging fix (console scripts now work
from a pip install) and the serve/startup-check fixes (#417).

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
@dwolfson
dwolfson deleted the fix/my-profile-performance-and-packaging branch October 2, 2026 20:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant