Repository navigation
feat: add on-demand semantic navigation skill - #916
Merged
Merged
Conversation
This was referenced Nov 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Text search cannot reliably distinguish imported aliases or unrelated same-name symbols. Comparing diagnostic messages alone can silently cancel an old error against a new identical error elsewhere. Relates to #913.
Value
The model can ask an existing local language server for definitions, references and single-file diagnostics when useful. Before/after comparisons retain locations and ambiguity so an empty new-error count cannot conceal a same-message replacement.
Approach
Add a native Pi Skill and a self-contained Node client, invoked through ordinary Bash with an explicit installed server command. Each invocation starts one stdio server, bounds protocol/results/time, refuses edit requests, and reports the completed request separately from shutdown and process exit. Snapshot comparison retains every occurrence and makes no project-clean or edit-causation claim.
Declare all three bundled Skills in the native manifest. Testing showed that listing only the new Skill would remove existing orchestration Skills for object package sources. The explicit list preserves those users and exposes the same names/descriptions to string package sources; bodies stay on demand and existing child filtering remains.
Validation
bun run checkandbun run testpassed with Bun 1.3.14 and an independent frozen install. Node: 2,469 passed, 8 skipped; UI: 108 files, 1,632 passed. No generated Web assets changed.Focused native loader, package contract, existing child resource exclusion and CLI behavior tests passed. Independent source review found no actionable P1/P2 findings, including the manifest compatibility correction.
Actual repository TypeScript 7 server resolved an imported alias and a same-name local definition; reference results preserve their limited scope. Seven controlled snapshots and six comparisons passed, including inserted lines, new/fixed errors, same-message replacement and duplicate occurrences.
Actual Pi Bash cancellation removed the controlled server process. The real TypeScript server acknowledged shutdown but exited 1 with
context canceled; the client reports this separately.Actual npm pack/extract with no package dependencies installed: native Pi 1.2 loader discovered all three Skills and executed the adjacent semantic client help. A native loader regression runs against the CI-selected Pi host.
Initial full-suite failure exposed the manifest compatibility regression; fixed without weakening the existing parent/child exclusion test. Raw failures and receipts are preserved outside Git and summarized in the research record.
Final head
1919dccd18e6641224bd9be3aa468245e54f24f7: CI run 42270726480 passed all 19 jobs. The native Skill loader test actually ran and passed on Pi minimum/latest and Windows. Independent GitHub approval is still required. Findings and preserved counterexamples: semantic research record.Local combined integration of feat(web): show observed context composition in session usage #914
e156a220, feat(web): preserve source identity in review and plan references #9156e800f83and feat: add on-demand semantic navigation skill #9161919dccd: full check/test passed (Node 2,471 pass / 8 existing skips; UI 1,638 pass). The two overlapping generated assets were rebuilt from combined source; no source conflicts. This is separate from individual-head CI and remote merge.Impact
User/model-visible: a semantic-navigation Skill and consistent discovery of the existing two Skill entries; names/descriptions total 565 UTF-8 bytes before Pi wrappers/paths. No new tool, model call or automatic delegation.
Runtime: one explicitly requested local executable under existing Bash authority, with direct-process cleanup and native Bash cancellation. Read-only LSP requests do not sandbox the server.
Configuration/data: no preference changes, new dependencies or automatic server installation; snapshots are ordinary command output saved only when requested.
Limits: requires Bash permission and an installed compatible stdio server; Plan Mode restrictions remain. Pull diagnostics cover one document; dependencies/configuration/other documents are not frozen. No performance or usage advantage is claimed.