Skip to content

feat(graph): LSP code-graph provider + Chrome auto-launch, slimmer CLI#1

Merged
burrows99 merged 1 commit into
masterfrom
feat/graph-lsp-chrome-autolaunch
Jun 18, 2026
Merged

feat(graph): LSP code-graph provider + Chrome auto-launch, slimmer CLI#1
burrows99 merged 1 commit into
masterfrom
feat/graph-lsp-chrome-autolaunch

Conversation

@burrows99

Copy link
Copy Markdown
Owner

graph (code exploration):

  • Drive a language server over LSP call hierarchy (prepareCallHierarchy + callHierarchy/outgoingCalls) to build the outgoing-call flow tree — the same engine an IDE's "Show Call Hierarchy" uses. Type-accurate across DI, interfaces and files; language-agnostic.
  • Auto-detect the project root (nearest tsconfig/package.json/.git) and pick the LSP server by file extension; TS/JS bundled, others via --server.
  • Entry as file:line[:col] or file@symbol; --depth bounds the walk.
  • Trimmed the surface: dropped --provider, --max-nodes, --include-external.

dynamic (Chrome) — auto-launch:

  • --chrome with no port now launches a throwaway headless Chrome (trace → record → teardown); --chrome <port> still attaches to a real/auth'd session.
  • New shared ChromeLauncher (OS free-port, temp profile, readiness poll, cleanup), also adopted by the recorder (removes its private launcher + duplicate paths).

docs:

  • README "Code graph" section + cross-language matrix; Chrome attach-vs-launch; roadmap reflects the static pillar shipping. SKILL.md description updated for discoverability. Removed a stray demo artifact.

tests: ChromeLauncher integration test (launch + distinct ports). Suite green (25 pass, 1 Postgres skip).

graph (code exploration):
- Drive a language server over LSP call hierarchy (prepareCallHierarchy +
  callHierarchy/outgoingCalls) to build the outgoing-call flow tree — the same
  engine an IDE's "Show Call Hierarchy" uses. Type-accurate across DI, interfaces
  and files; language-agnostic.
- Auto-detect the project root (nearest tsconfig/package.json/.git) and pick the
  LSP server by file extension; TS/JS bundled, others via --server.
- Entry as file:line[:col] or file@symbol; --depth bounds the walk.
- Trimmed the surface: dropped --provider, --max-nodes, --include-external.

dynamic (Chrome) — auto-launch:
- `--chrome` with no port now launches a throwaway headless Chrome (trace →
  record → teardown); `--chrome <port>` still attaches to a real/auth'd session.
- New shared ChromeLauncher (OS free-port, temp profile, readiness poll, cleanup),
  also adopted by the recorder (removes its private launcher + duplicate paths).

docs:
- README "Code graph" section + cross-language matrix; Chrome attach-vs-launch;
  roadmap reflects the static pillar shipping. SKILL.md description updated for
  discoverability. Removed a stray demo artifact.

tests: ChromeLauncher integration test (launch + distinct ports). Suite green
(25 pass, 1 Postgres skip).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@burrows99 burrows99 merged commit a12ee18 into master Jun 18, 2026
1 check passed
@burrows99 burrows99 deleted the feat/graph-lsp-chrome-autolaunch branch June 18, 2026 07:43
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