Closed: opened against wrong repository#5780
Closed
hansjm10 wants to merge 33 commits into
Closed
Conversation
Rename the built-in /new session command to /clear. /new is no longer recognized and is sent to the model as a regular prompt. The app.session.new keybinding action id is unchanged so existing keybindings.json configs keep working. Update docs and comments.
… logo Restyle built-in dark and light themes around an electric purple accent palette. Replace the plain-text startup logo with a half-block ASCII wordmark; renamed forks (voltConfig.name) keep the plain-text logo.
The editor previously drew only horizontal rules above and below the content. It now renders side borders and rounded corners so the input feels like a box. Scroll indicators remain integrated into the top and bottom borders, and autocomplete lines align with the box interior.
Config-driven multi-server LSP manager that lazily spawns language servers per (server, project root) and appends diagnostics to edit/write tool results. Enabled via --lsp or the lsp.enabled setting; servers are configured under lsp.servers with built-in defaults for typescript, python, go, and rust. Also makes SettingsManager.applyOverrides() durable across reload() and internal settings re-merges so CLI-driven overrides like --lsp survive /reload.
…hover, symbols, diagnostics) Single lsp tool with an action enum, active by default when LSP is enabled and respecting --tools/--exclude-tools. Symbols are located by name (word-boundary match with optional line hint) and translated into positional LSP requests; failures are returned as text so the model can react. Also fixes project-root detection to treat rootMarkers as priority-ordered (a tsconfig.json anywhere up the tree beats a closer package.json, fixing monorepo false positives) and displays absolute paths for diagnostics outside the working directory.
First diagnostics collection on a fresh server now waits up to lsp.firstSettleMs (default 10s) since servers like tsserver publish nothing until the project has loaded; previously the first edit missed its diagnostics. LSP clients now track per-document disk state (mtime/size/content) and, before every diagnostics collection or navigation query, re-sync open documents that changed on disk outside the edit/write tools (e.g. git checkout via bash). Deleted files are closed on the server and servers are notified via workspace/didChangeWatchedFiles. Redundant syncs of unchanged content are skipped and reuse the last published diagnostics.
…d dependency changes Found live: querying diagnostics for an unchanged file returned its stale publish even when a dependency had just been refreshed from disk, hiding cross-file breakage introduced via bash. The disk-staleness refresh now happens inside getDiagnostics, and the unchanged-content shortcut only applies when no other document was refreshed; otherwise the client waits for a fresh publish. The fake LSP server now republishes all open documents on every change (like real servers) with a cross-file rule to regression-test this.
…eEdits New lsp tool actions: rename (project-wide symbol rename) and fix (quick-fix application, e.g. auto-import). The server's WorkspaceEdit is applied to disk through the file mutation queue, supporting both edit shapes plus create/rename/delete file operations; changed open documents are re-synced and servers notified about the rest. fix auto-applies a single available action, lists multiple with their titles, and selects by title on rerun. Command-based code actions run via workspace/executeCommand with server-initiated workspace/applyEdit requests applied the same way; deferred edits are resolved through codeAction/resolve. Diagnostics context is populated on demand before requesting code actions since servers derive quick fixes from it. Verified live against typescript-language-server: cross-file rename and auto-import quick fix.
…shutdown /lsp lists running language servers with root, liveness, open document count, and idle time; /lsp restart stops them all so they respawn lazily on next use. Servers idle for lsp.idleShutdownMs (default 10 minutes, 0 disables) are shut down automatically by an unref'd reaper interval and respawn on demand, reclaiming memory held by warm servers like tsserver.
…bol search lsp.servers.<name>.settings is sent via workspace/didChangeConfiguration after the handshake and answers workspace/configuration section requests with dot-separated path lookups (e.g. pyright analysis options). lsp symbols with a symbol query now performs a project-wide workspace/symbol search, routed to the right server by the given file. Verified workspace symbol search live against typescript-language-server.
…or LSP Edit/write diagnostics now include a 'Newly failing in other open files' section listing open documents that went from clean to failing as a result of the change (capped at 5 files, best-effort within the settle window), so the model immediately sees dependents broken by an edit. New lsp tool actions: callers (callHierarchy/incomingCalls) and callees (callHierarchy/outgoingCalls), one level per query.
…n, and more LSP server defaults lsp fix gains a kind parameter for kind-filtered code actions such as source.organizeImports and source.fixAll, requested over the whole file when no symbol or line is given. New lsp actions: implementations (textDocument/implementation) and type-definition (textDocument/typeDefinition). New built-in server defaults: clangd (C/C++), zls (Zig), lua-language-server, and bash-language-server. Verified live against typescript-language-server: organize imports merging import statements, interface implementations, and callers.
Solid half-block art was bisected by the inter-line gap on macOS terminals, making the logo look split. Switch to a slanted ASCII outline letterform that stays legible across terminals.
A missing server binary previously surfaced only as a cryptic 'spawn ... ENOENT'. The one-time failure message now appends the install command for built-in servers, matched on the command's binary basename so custom commands never get a wrong hint. Also document install commands in the built-in servers table.
…blishes lsp.traceFile and the /lsp trace [path|off] runtime toggle append timestamped JSON-RPC traffic, server stderr, and lifecycle events to a log file through a persistent handle (per-line open/append was prohibitively slow under antivirus scanning). Diagnostics waits now ignore publishes tagged with an older document version, which could surface stale results after rapid consecutive edits (observed live against tsserver). Missing-server detection on Windows now pre-checks PATH/PATHEXT before shell spawning, producing proper ENOENT failures so install hints fire instead of a bare 'exited (code 1)'.
…ring - lsp diagnostics action now goes through the start-failure breaker instead of respawning a broken server on every call - navigation and refactoring requests honor abort signals instead of waiting out the 30s request timeout - a failed initialize handshake disposes and removes the client (killing the stuck process) so retries spawn fresh; request errors on a healthy server no longer count toward the breaker - WorkspaceEdit application preserves array order for same-position insert edits per the LSP spec
Brings in 8 upstream fixes: - fix(ai): relax Codex SSE header timeout - fix(coding-agent): preserve custom fallback thinking - fix(coding-agent): handle missing export themes - fix(tui): support slash-separated fuzzy filter tokens - fix(coding-agent): resolve authenticated slash model ids - fix(coding-agent): rechain fork paths without labels - fix(agent): ignore late tool progress updates - fix(tui): preserve unordered user list markers Conflict resolutions keep Volt package names (volt-ai, volt-agent-core) while adopting upstream's new imports. The new upstream regression test was renamed to Volt package imports. Also fixed pre-existing useTemplate lint infos in tui editor.ts required by npm run check.
Documents the workflow for merging upstream pi-mono into Volt and adds scripts/rename-upstream.mjs to rewrite @earendil-works/pi-* package references to @earendil-works/volt-* after merges.
Reviews uncommitted changes, branch diffs vs a base, GitHub PRs, or single commits in an isolated in-process review session with a dedicated reviewer prompt and full tool access (so it can read surrounding code and run tests to verify findings). When the review completes, a fresh session is started seeded only with the numbered findings, so follow-ups like "fix 1 and 3" run with clean context. The reviewer model is configurable via the new reviewModel setting (also exposed as "Review model" in /settings) and falls back to the active session model.
…re-edit content Unversioned publishes that race a content change now trigger a re-wait for a fresher publish, unversioned publishes pointing past the end of the synced content are dropped at arrival (also keeping them out of the newly-failing cross-file sweep), and failed diagnostic pulls are retried once before falling back to published diagnostics. fixes #1
… send versions Servers that omit the optional publishDiagnostics version field and publish once per change never produce a fresher publish, so the staleness re-wait always ran to the settle deadline on every edit. Cap that re-wait at a 250ms grace window when the server has never sent a versioned publish; versioned servers keep the full deadline-bounded re-wait since their versioned republish resolves it promptly.
Re-wait for a fresher publish after an unversioned one when only dependencies were refreshed, not just when the document's own content changed. Relax the arrival-time out-of-bounds drop to tolerate end-of-file diagnostics one past the last line, which linters legitimately emit (e.g. missing trailing newline).
… rejection Retrying every pull failure doubled the worst-case latency to ~60s when a pull-capable server hangs (timeout + retry timeout). Retry only JSON-RPC error responses (e.g. ContentModified), which return fast; fall back to published diagnostics immediately on timeout, abort, or server exit.
fix(coding-agent): prevent stale cross-file LSP diagnostics against pre-edit content
- vitest 3.2.4 -> 3.2.6 and @vitest/coverage-v8 3.2.4 -> 3.2.6: clears critical advisories against the vitest 3.2.4 chain (UI/API server arbitrary file read/execute) - esbuild 0.28.0 -> 0.28.1 (root devDep): clears GHSA-gv7w-rqvm-qjhr and the Windows dev-server file read advisory - remove unused root devDep tsx (nothing invokes it; scripts run via node strip-types or jiti) - remove coding-agent @types/diff (diff v8 ships bundled types) and @types/ms (ms only used by the with-deps example, which declares its own types) - remove ai devDep canvas and scripts/generate-test-image.ts: one-off generator for the already-committed test/data/red-circle.png; canvas is a heavy native module Provider SDKs (@anthropic-ai/sdk, @google/genai, openai, etc.) are intentionally left pinned in lockstep with upstream Pi per its supply-chain policy.
fix: bump vitest/esbuild for security advisories, drop unused dev deps
Contributor
|
This PR was auto-closed. Only contributors approved with Maintainers review auto-closed issues daily. Issues that do not meet the quality bar in CONTRIBUTING.md will not be reopened or receive a reply. If a maintainer replies See CONTRIBUTING.md. |
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.
Opened against the wrong repository. Closed.