Repository navigation
Workspace-scoped app with a workspace picker; filters behind search buttons; File Explorer follows the open file; core-agent deleted - #673
Merged
Conversation
The VS Code extension runs labkit-effect's agent; it took only two logging helpers from core-agent (diagnosticError, redactDiagnostics), which move into app-vscode with their test. docs/agent/ was core-agent's guidance and goes too, except the note on what ACP's messages mean, now docs/acp-language.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…File Explorer So its row and the box that marks it show. A folder closed afterwards stays closed until another file below it opens. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…search button The button sits at the right of the list's header; the box shows only when asked for, and hiding it (the button or Escape) empties it. - File Explorer's filter searches every committed path (/paths), so a file in a folder not yet opened is found; /paths now links each path's file by a templated link. - Source Explorer's filter narrows the commits loaded so far and says how many it searched. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ne workspace - GET /workspace lists the workspaces; the landing view reads it, and the app reads nothing from /collections. /collections/workspace stays for other API clients. - Picking a workspace opens /app/workspace/<slug>. In a workspace, Record Explorer lists its collections and the one picked below; before one is picked it is disabled and says so. ?list= is left out when it would name the workspace's own collections. - An address that names its workspace only in ?list= is rewritten to name it in its path. - The dev server's API proxy matches /workspace followed by a query. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
danbarua
added a commit
that referenced
this pull request
Oct 13, 2026
…EAD (#674) ## Problem #673 made File Explorer open the folders above the open file, but only when the open file's address is in the tree at HEAD (`/workspace/{slug}/file/{path}`). A commit's changed files and the graph's file nodes open a file as it was at that commit (`/workspace/{slug}/commit/{id}/file/{path}`). File Explorer had no row for that address, so its folders stayed closed. #673's test opened the HEAD address directly, so it did not catch this. ## Change - **API.** A file read at a commit links the same path at HEAD as `head`, when the tree at HEAD holds a file there. A file read at HEAD has no `head` link. - **File Explorer.** It follows the open file's `head` link: it opens that path's folders and marks its row with the box. A file open at HEAD is followed as before. ## Controls - **A file HEAD no longer holds,** such as one deleted later, has no `head` link, so File Explorer opens no folders and marks no row. - **The marked row is the HEAD file.** File Explorer marks the file at HEAD, while the centre shows the file as it was at the commit. ## Verification - `bun run check`: exit 0, 1105 pass, 0 fail. - `bun run e2e` with `E2E_PORT_API=9019 E2E_PORT_DEV=8970 E2E_PORT_BUILT=8971`: 175 passed, 11 skipped (the dev-only tests, in the built bundle). - **Unit test** (`tests/git-api.test.ts`): `src/a.ts` at the first commit links `head` to `/workspace/alpha/file/src/a.ts`. `data/blob.bin` at the first commit, dropped later, has no `head` link. `src/a.ts` read at HEAD has no `head` link. - **e2e** (dev server and built bundle): with File Explorer and Source Explorer open, opening the commit "Change a, plan the work" and clicking its changed file `notes/plan.md` opens the commit's version (`/commit/{id}/file/notes/plan.md`). It also opens `notes` in File Explorer, and marks `plan.md`. ## Linked issues None. Follows #673. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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
packages/core-agent: this old agent runtime is not used. The VS Code extension runs labkit-effect's agent and imported only two logging helpers from it./collections/workspace). A picked workspace was carried in?list=until a record opened.Change
core-agentdeleteddiagnosticErrorandredactDiagnosticsmove intopackages/app-vscode/src/utils/redact.ts, with their test. The extension still builds (bun run buildinpackages/app-vscode).docs/agent/was core-agent's guidance and is deleted too, except the note on what ACP's messages mean, nowdocs/acp-language.md.package.json(test:agent), the PR labeler, the comment-length check's exemptions and the layering-rule baseline no longer name it.File Explorer follows the open file. When a file in the tree opens from anywhere else, such as the graph or a link, the folders above it open, so its row and the box show. A folder closed afterwards stays closed until another file below it opens (
foldersAboveinexplorers.tsx).Filters behind a search button
/paths), so it finds a file in a folder not yet opened, and lists the matches with their folders. At most 200 are drawn, and a line says how many match out of how many files./pathslink template. The listing now links each path's file with an RFC 6570 template,file: { href: ".../file/{+path}", templated: true }, so the page opens a match without building the address itself.Workspace-scoped app
GET /workspacelists the workspaces, each addressed by its own index, with no index above it./collections/workspacestays for other API clients./workspace. A request test checks that the landing view asks for nothing under/collections./app/workspace/<slug>.?list=).?list=is left out when it would name the workspace's own collections.?list=, such as/app/?list=/workspace/alpha/question, is rewritten to/app/workspace/alpha?list=/workspace/alpha/question./workspacefollowed by a query.Controls
Verification
bun run check: exit 0, 1104 pass, 0 fail.bun run e2ewithE2E_PORT_API=9019 E2E_PORT_DEV=8970 E2E_PORT_BUILT=8971: 173 passed, 11 skipped (the dev-only tests, in the built bundle).bun run buildinpackages/app-vscode: builtextension.cjs.tests/file-tree.test.ts: the folders above a file, and none outside the tree.tests/api.test.ts:/workspaceand/workspace/list alpha and beta, with no index link.tests/git-api.test.ts:/pathslinks its file template.packages/app-vscode/src/utils/redact.test.ts: the redaction test, moved from core-agent./collections.?list=addresses are rewritten to their path forms.notes/plan.mdfrom a link opensnotesin File Explorer and marks the row.notes/plan.md, which was not loaded, as 1 match, and opens it.Linked issues
None. This follows #672.
🤖 Generated with Claude Code