Skip to content

feat: deliver polished offline codebase explorer - #476

Merged
Helweg merged 2 commits into
mainfrom
feat/unified-visualizer
Oct 27, 2026
Merged

Helweg merged 2 commits into
mainfrom
feat/unified-visualizer

Conversation

@Helweg

@Helweg Helweg commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

Summary

Deliver the polished, self-contained codebase explorer and resolve the two blockers found during its repository-wide validation. Public visualization data/generator contracts, tool arguments and offline HTML delivery remain unchanged. No package version bump or publication is included.

Changes

Visualizer — 63d2d54

  • One Overview → module → exact file → symbol exploration flow, with category filters scoped only to the module directory.
  • Stable incoming/focus/outgoing layouts; separate navigation and Inspect N calls controls; original callsite records, reciprocal relationships and self-call evidence.
  • Whole-snapshot Changes, Hotspots and Cycles under Analyze, preserving the underlying exploration state.
  • ID-preserving search/history/breadcrumbs, lazy file disclosures, 50-item lists and 12-neighbor focus pages; iterative strongly connected components without collapsing duplicate names.
  • Final dark/light typography, spacing, module-anchored display paths with original-location access, responsive keyboard-accessible drawers and sticky mobile section navigation.
  • Aligned host descriptions, tool docs and slash-command guidance with the final explorer; no freeform network or old route aliases remain in newly generated files. Existing offline artifacts remain unchanged.

Worktree concurrency repair — 8dfcd1f

  • Unique temporary checkout basenames prevent Git from recycling an initializing peer registration.
  • A dedicated cross-process lease keyed by the canonical common Git directory protects worktree registration/deregistration, including linked-checkout callers. Fetches and indexing callbacks remain concurrent.
  • Bounded, cancellable admission waits without overwriting unknown owner metadata; callback failures are never retried. Cleanup verifies exact ownership/registration, preserves primary errors, and retains uncertain paths rather than pruning/deleting peers.
  • Regression coverage for initializing-peer preservation, cancellation with active/unreadable metadata, and real cross-process callback overlap.

Environment correction, not a product workaround

The watcher failure came from locally installed Chokidar 5.0.0 despite the existing lockfile requiring 6.0.0. Restoring the locked dependencies fixed the unchanged permission-filtering acceptance cases. There are no watcher source changes and no package.json or lockfile changes in this PR.

Testing

  • Behavioral tests added/updated for SCC/identity boundaries and worktree ownership/concurrency/cancellation.
  • npm run build && npm run typecheck && npm run lint && npm run test:run — 2,963 passed, 6 skipped, 0 failures locally. Native and TypeScript builds and built-CLI smoke passed.
  • Visualizer/architecture targeted suites — 32 passed.
  • Worktree materialization/multiprocess/index-lock targeted suites — 37 passed.
  • Two independent read-only code reviews of visualizer and registration boundaries found no blocking defects.

Exercised smoke checks (disposable fixtures, not permanent suite tests)

  • Native Orca deterministic fixture: category/search independence, module/file/symbol drill-down, duplicate IDs/names, original callsite lines, reciprocal/self-calls, Analyze/history restoration, keyboard/dialog/clipboard behavior.
  • 5,000 symbols / 20,000 call records: bounded neighbor replacement, >50 files per module and >50 symbols per file, lazy rendering and pagination.
  • Hostile metadata, empty/disconnected/partial exports and offline operation; no executed injected markup or external assets observed.
  • Native Orca viewport harnesses at 1440×900, 1100×800 and 390×844, plus 320px-width coverage, in both themes: no card overflow, header overlap or undersized controls observed.
  • Actual built-CLI export: 2,661 symbols, 6,342 call records, 31 modules. Traversed module → file → symbol → caller and inspected original callsite evidence.
  • 30 rounds of 12 concurrent materializations = 360 operations, with no leaked registrations or checkout directories. Separately, the permanent two-process regression verifies overlapping fetches and indexing callbacks. A linked-checkout smoke verified dead-owner lease recovery and peer preservation.
  • Real watcher/filesystem smoke: ordinary updates observed, unreadable sources emit no source events, and readable-source polling recovery retains consumer filtering.

The full local gate precedes a final slash-command documentation-only alignment; CI validates the complete pushed tree.

Screenshots

Repository overview — dark theme

Categorized repository overview with exported counts

Original callsite evidence — light theme

Directed caller-to-callee relationship with 24 original call records

Symbol focus — 390×844 light viewport

Cropped from the native Orca viewport-harness capture to the tested mobile frame; no UI content was altered.

Mobile symbol focus with sticky Focus, Callers and Callees controls

Release labels

  • Exactly one category: feature
  • At most one semver label: semver:minor

Publishing remains a separate release step after merge.

Use invocation-unique checkout names and the existing ownership-checked lease protocol in a dedicated common-Git-dir namespace. Serialize registration and cleanup only, retaining concurrent fetches/callbacks and cancellable, fail-closed cleanup.

Cover initializing-peer preservation, active/unreadable lease cancellation, and overlapping real multiprocess callbacks. Verified the full gate and 360 concurrent materializations.
Unify Overview, module files and symbol focus with categorized module cards, directed caller/callee lanes, original-callsite evidence, preserved analysis/navigation state and accessible responsive layouts.

Retain offline snapshot/export contracts, safely display metadata, page large lists and detect cyclic groups iteratively. Remove freeform graph behavior and align host descriptions and slash-command guidance with the final explorer.

Verified deterministic and hostile fixtures, 5000-symbol/20000-call scale, real CLI export traversal and native Orca viewports in both themes. Full local gate: 2963 passed, 6 skipped.
@Helweg Helweg added feature New feature or capability semver:minor New feature (minor bump) labels Oct 27, 2026
@Helweg
Helweg merged commit fd9ed75 into main Oct 27, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or capability semver:minor New feature (minor bump)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant