Skip to content

Add native OMP/Tern results, sync status, and live graph UI - #48

Open
ooodummy wants to merge 16 commits into
fix/session-sync-reliabilityfrom
work/omp-mcp-tern
Open

ooodummy wants to merge 16 commits into
fix/session-sync-reliabilityfrom
work/omp-mcp-tern

Conversation

@ooodummy

@ooodummy ooodummy commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

Semctl results, sync status, and graph views need to fit the native OMP/Tern interface. Live updates must preserve orientation and input focus. Incomplete embedding must not hide available indexed structure. Large project maps need useful concept groups instead of only directory names and structural hubs.

Changes

  • Present compact, wrapping result chips with file icons, directory paths, safe checkout links, independent source previews, and native header expansion. Move checkout identity and index warnings into header badges. Place the result-graph toggle after the match chips.
  • Keep relevance bars meaningful for signed scores, including negative reranker scores, in both native results and Rust-rendered search tables. Bars are relative relevance, not confidence.
  • Use stock OMP widgets and native popup cards for status, project overview, appearance settings, and the optional non-modal live overview. Render graphs with native elements and scoped styles, not a separate web client or generated SVG.
  • Add a default Concept map layout for new profiles. Combine documentation concepts, lexical term vectors, and recorded links. Keep Force, Radial, Layers, and Components available and preserve saved layout choices.
  • Read bounded local Markdown documents to name concepts and resolve explicit paths and distinctive identifiers against catalog files. Extend assignments only with supported reference and folder evidence. Exclude broad hub documents, ambiguous mentions, code examples, and escaping links. Retain source-directory groups where evidence is insufficient.
  • Place documented concept families in separated islands. Show the source document in group details. Disambiguate repeated directory labels across projects. Keep geometry deterministic and independent of activity, selection, indexing state, scores, and theme.
  • Use a soft canvas well, quiet routes, weighted group dots, and small catalog-status pips. Preserve direction, relation styles, exact relationship navigation, omission counts, and reduced-motion behavior.
  • Add persisted Small, Medium, and Large live-popup sizes (320/480/680 px, viewport-limited). The header grip steps up on click and down on Shift+click. Double-clicking the title toggles Small/Large. Migrate version-1 appearance preferences without changing saved values.
  • Keep tooltips compact: normally three lines of at most 88 characters; progress and diagnostic summaries can use four. Preserve full request failures in a Diagnostics disclosure.
  • Add a compact live group inspector with full-source incoming, outgoing, and internal link counts, clickable neighbors, and busiest-group chips. Keep the folded remainder out of the busiest ranking. Preserve selection across refreshes and reject stale or foreign actions.
  • Keep available catalog and graph layers visible during embedding or relationship-layer loading. Preserve the last map during refresh failures. Order concept publication across independent overview requests so late document reads cannot restore stale assignments.
  • Preserve MCP execution, approvals, cancellation, model-facing responses, CLI fallback, source-binding safeguards, producer-backed progress, and composer draft/focus. Add behavioral regressions and update both READMEs.

Latest follow-up: 6dad3df — feat(omp): add concept maps and resizable graph overview.

Stack and host compatibility

This PR remains stacked on #47 (fix/session-sync-reliability). Do not retarget or merge its prerequisite implicitly.

The implementation does not require companion OMP changes. Native runtime verification used stock OMP 18.12.3 in Tern. Unsupported native capabilities retain terminal fallbacks.

Verification

For the latest follow-up:

  • OMP adapter suite: 478 passed, using repository-pinned Bun 1.3.14 through mise.
  • cargo fmt --check passed.
  • cargo test --workspace --locked passed. Existing ignored tests remain ignored.
  • cargo clippy --workspace --all-targets --locked -- -D warnings passed.
  • RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps --document-private-items --locked passed.
  • git diff --check and staged whitespace checks passed. New files were checked for trailing whitespace.
  • Real-data smoke exercised document loading, concept assignment, group projection, and all three drawing sizes on two indexed local checkouts. A 24-group map showed separate Architecture and AMD family territories. Individual map layouts took approximately 2–10 ms in that smoke run; this is not a general performance guarantee.
  • Actual native OMP/Tern smoke checked concept islands, full overview access, source-document rows, concept selection, all three popup widths, and header visibility in a narrow viewport. Test sessions were stopped and original appearance preferences restored.
  • Dark mode was not visually checked. A separate strict SDK TypeScript check was not rerun for this follow-up; an earlier revision passed that check against the local OMP source SDK.
  • Hosted CI for the new commit is reported by the PR checks. Earlier green runs do not establish acceptance of this revision.

Limits and deployment

  • The client cannot retrieve the server's stored embedding vectors. Concept maps use documentation, existing graph evidence, and lexical vectors. They make no new embedding requests, network searches, or model calls.
  • Local document reads are bounded to 256 catalog Markdown files, 1 MiB per file, and 16 MiB total. Unreadable files and paths outside the checkout do not contribute evidence.
  • Concept assignments are map aids, not dependency declarations, confidence scores, or a semantic guarantee. Partial graph counts describe the supplied snapshot, not complete runtime dependencies.
  • Tern does not expose continuous drag-resize events. Popup resizing uses three persisted steps rather than a simulated drag handle.
  • Activity highlights identify observed request context or validated returned sources. They do not imply graph traversal, per-file embedding activity, reranking phases, or success.
  • Earlier verification observed a server-side symtree build access poisoned embedding failure. This UI change does not fix that server fault. Available indexed structure remains usable with warnings.
  • Nested Eval calls retain OMP's native trace presentation; they do not reconstruct custom child cards from canonical result metadata.
  • Verification used isolated OMP/Tern processes. No active user session was restarted. Publication does not replace the installed binary or change credentials, model settings, or local .codex/ / .omp/ configuration. Run /restart when idle to load the adapter changes, then choose Concept map in appearance settings if the profile has another saved layout.

Keep readable tool titles and Markdown search results. Resolve conflicts with
main's typed errors, tool deadlines, and expanded-body limit. Separate stale
warnings from metadata and split search integration tests by behavior.

Validation: cargo fmt --check; cargo test --workspace --locked;
cargo clippy --workspace --all-targets --locked -- -D warnings;
cargo doc --workspace --no-deps --document-private-items --locked with
RUSTDOCFLAGS=-D warnings; git diff --check.
@ooodummy ooodummy changed the title fix: expose native semctx MCP and preserve structured results Improve MCP presentation with a source-bound native inspector Oct 18, 2026
@ooodummy ooodummy changed the title Improve MCP presentation with a source-bound native inspector Add native OMP/Tern results, sync status, and graph overview Oct 19, 2026
@ooodummy ooodummy changed the title Add native OMP/Tern results, sync status, and graph overview Add native OMP/Tern results, sync status, and live graph UI Oct 19, 2026
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