Skip to content

feat: add on-demand semantic navigation skill - #916

Merged
tt-a1i merged 1 commit into
mainfrom
codex/semantic-navigation
Nov 7, 2026
Merged

tt-a1i merged 1 commit into
mainfrom
codex/semantic-navigation

Conversation

@tt-a1i

@tt-a1i tt-a1i commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

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.

Pi Skill -> ordinary Bash -> one local LSP request -> result + lifecycle
                                                -> snapshot -> comparison

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 check and bun run test passed 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 #915 6e800f83 and feat: add on-demand semantic navigation skill #916 1919dccd: 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:setup OpenPI setup, configuration, or setup documentation documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant