Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/decisions.md
Original file line number Diff line number Diff line change
Expand Up @@ -557,3 +557,6 @@ result files when the documentation was cleaned up on 2026-10-17.
| d570 | 2026-10-23 | DECISION | infra | tokio 1.54.1 (PR 224, merge 7ba065c, commit d8911b1; `Cargo.lock` only): RUSTSEC-2026-0386 (the `AsyncFd` constructors accept any raw fd, unix only; fixed in tokio 1.53.3 and later) failed the cargo-deny advisories check on every PR, so the lock moves to 1.54.1. | d8911b1 (PR 224; merge 7ba065c) |
| d571 | 2026-10-23 | DECISION | process | Rule change in `docs/development/documentation.md` rule 10: the append-only log `docs/decisions.md` is exempt from the line target (the target `log <= 300` is removed; the log is 551 lines at 6d6a9bb, and moving old entries to an archive would break the frozen ids that are cited everywhere). README, guide and roadmap targets are unchanged. | cleanup S2a |
| d572 | 2026-10-23 | DECISION | lsp | N123 (from the K11b-5 review) is done: the lsp-cost report labels the version-probe row with the probe each adapter runs (`gopls version`; the python probe is skipped) and no longer claims a 5000 ms bound the code does not impose. Recorded so the id stays traceable after its roadmap row left in cleanup S2a. | ef9bf71 (PR 219); d557 |
| d573 | 2026-10-24 | DECISION | process | The docs and code cleanup of 2026-10-23/24 is finished. Docs: the roadmap is trimmed 333 -> 252 lines (PR 226); README 370 -> 227 lines, with the reference guides `docs/reference/mcp-and-rest.md`, `docs/reference/cli.md`, `docs/reference/retrieval.md` and `docs/development/module-boundaries.md` (PR 228; the Rust help and OpenAPI strings that named moved README sections are repointed, PR 229); every statement a docs-vs-code audit found to disagree with the code is fixed, and `docs/architecture.md` 360 -> 238 lines, with `docs/lsp-channel.md` and `docs/traverse-flow.md` (PR 230). Process: the PR-closing workflow for the Copilot bot is removed (PR 227); 122 remote and 13 local branches are deleted, each proven merged first (a merged PR whose head SHA is the branch tip, and the tip an ancestor of main). Code, behaviour-preserving with new pins: PRs 231, 232 and 233 (d574). Each docs PR (226, 228, 230) passed a token-inventory compare (ids, numbers, dates, statuses, conditions, negations) and a separate loss review. | merges b642599 (PR 226), cff615f (227), 09da959 (228), 3c3092f (229), 4fd0e72 (230); d574 |
| d574 | 2026-10-24 | DECISION | process | d487 amended: two of its "not taken" items were taken in the cleanup. The LSP `initialize_params` dedupe (PR 231): `initialize_params_for` with `InitializeVariant` builds the `initialize` request of python, go, clangd and java (`Base`), markdown (`DocumentSymbol`) and typescript (`PublishDiagnostics`); rust and csharp keep their own `initializationOptions`; an exact-JSON pin per adapter, written against the old code first. The SCIP map boilerplate (PR 233): `scip_ranked_hits` in `lci-maps/src/edge.rs` holds the `query` skeleton of `ImpactMap`, `ImplementsMap` and `TestedByMap`, with the note, rank, score, evidence, dedupe and truncation pinned per map. Also: `app::traverse::search` takes a `TraverseRequest` (PR 232) and loses its `too_many_arguments` allow. Still not taken: the multilingual acceptance table and a shared per-language acceptance runner, which only a live acceptance run proves (N127). Found in review, left for a later output change: N126. | merges bb3e071 (PR 231), ffdeeff (232), a60923c (233); d487 |
| d575 | 2026-10-24 | FINDING | process | Rescued before the cleanup removed three local work items that had no decision id. An evaluation worktree at bfaff44 carried an uncommitted `.lciignore` variant that drops the `.agents/**` and `.github/instructions/**` lines (kept outside the repository as a diff that applies cleanly). An evaluation worktree at f1d401d was clean and is reproducible from that SHA. Branch `feat/live-grep-lockfiles` (tip 39aff96: the lockfile-skip default that d393 dropped) is superseded: main keeps the skip opt-in (`GrepOptions::skip_files`, empty by default); its patch is kept outside the repository. | cleanup S1c, S4 (work area, not in this repository) |
4 changes: 3 additions & 1 deletion docs/development/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ that document and is not a roadmap id.

## Now and next

Cycle 1 implementation is complete (finish line d422): the last feature merges were K39b (d564) and K12a-2 (d533); M2 closed 2026-10-23 without K11b-6, whose release-build measurement failed, so per-language `places = "auto"` moves to cycle 2 with mixed-tree surfacing (d562). On main: the cleanup PRs land on top of PR 225 (2026-10-23); the closing cleanup PR refreshes this line. A cleanup of docs and code is running. Next: the cycle 1 report went to the owner on 2026-10-23; the owner's cut (asked 2026-10-23) and the answers to the report's questions follow, then cycle 2. Waiting on the cut: sanity 20 (d563) recommends K12b-2 and K31 move to cycle 2 and K12b-1 stay parked on its branch (nothing merges before the tsgo facts check and the lsp-cost pair, d537), and the placement of the K20c rust and K26 value windows (each needs a release quiet window with no cargo; the arbitration stays off until the K20c measurement passes), which sanity 20 proposes for cycle 2. K7b-3b and K11d-2b stay open (their rows), and ASYNC-2 C stays parked. Per the autonomy rule the coordinator waits for the owner's word after the report. Only docs PRs and the coordinator rewrite this section; a feature PR leaves it alone so parallel PRs do not conflict (d476). The live state is the coordinator's run checkpoint.
Cycle 1 implementation is complete (finish line d422): the last feature merges were K39b (d564) and K12a-2 (d533); M2 closed 2026-10-23 without K11b-6, whose release-build measurement failed, so per-language `places = "auto"` moves to cycle 2 with mixed-tree surfacing (d562). On main: the docs and code cleanup (PRs 226 onward, finished 2026-10-24, d573) on top of PR 225. Next: the cycle 1 report went to the owner on 2026-10-23; the owner's cut (asked 2026-10-23) and the answers to the report's questions follow, then cycle 2. Waiting on the cut: sanity 20 (d563) recommends K12b-2 and K31 move to cycle 2 and K12b-1 stay parked on its branch (nothing merges before the tsgo facts check and the lsp-cost pair, d537), and the placement of the K20c rust and K26 value windows (each needs a release quiet window with no cargo; the arbitration stays off until the K20c measurement passes), which sanity 20 proposes for cycle 2. K7b-3b and K11d-2b stay open (their rows), and ASYNC-2 C stays parked. Per the autonomy rule the coordinator waits for the owner's word after the report. Only docs PRs and the coordinator rewrite this section; a feature PR leaves it alone so parallel PRs do not conflict (d476). The live state is the coordinator's run checkpoint.

## Cycle 1

Expand Down Expand Up @@ -135,6 +135,7 @@ P3 umbrella research. Rows are open items only. Item text names symbols, never l
| N121 | If the detached start task of a session panics before it publishes an outcome, `failed()` stays false and the session is never idle-swept; a panic during priming leaves the ready client set with `primed` false. No normal server failure takes either path. Fix: publish `Err` when the task ends (a drop guard) and treat a priming panic as settled. From the K11b-4 Sol re-check | ready, low | XS | N117 |
| N124 | `open_split` partial-failure visibility: when one provider's probe fails and another passes, the walk shows the drop only per node ("no language server is available for python"). Add one note per failed provider (`lsp.live: <provider> unavailable: <error>`). Also from the K11b-5 Sol review: a broken pyright shim passes the start probe (`/ready` green), and an initialize inactivity timeout opens no breaker window. Deferred from K11b-5 commit 2 | ready, low | XS | K11b-5 |
| N125 | Under per-language `places = "auto"` (K11b-6, cycle 2), a direct symbol seed in an unindexed language gets no `lsp.live` expansion until its file is reached and outlined (the `lsp_live.rs` ask returns without `place_of`); file and chunk expansions do outline. Option: outline the seed's file first. From the K11b-6 Sol review; not the cause of the K11b-6 failure (its python seed was a chunk) | blocked(K11b-6, cycle 2), low | XS | K11b-6 |
| N126 | `ImpactMap` and `ImplementsMap` (`scip_ranked_hits`): the Partial note quotes the configured `cap` while `edges_of` applies `cap.min(EXPAND_LIMIT)` (256), so a configured cap above 256 makes the note state the wrong cap. Latent: the app always uses the default cap 64; only a caller that sets `cap` above 256 sees it. Predates PR 233. Fix: quote the applied cap (an intended output change; update the per-map note pins). From the cleanup S5 review (d574) | ready, low | XS | - |
| N14 | Lexical matches credited to the first chunk of a path-suffix match: tag only (see Earlier items outside cycle 1, row 10) (roadmap@bbd3292 N14) | paused | S | - |

Items marked `cloud-ok` in older notes may run in a cloud agent; items marked `local` need the owner's machine.
Expand Down Expand Up @@ -197,6 +198,7 @@ Umbrella items: split each into S/M slices with acceptance criteria, and show a
| M4 | Matryoshka dimension truncation (`embedding_dimensions`) and int8/binary storage with rescoring; a storage item, search is 60 ms here (roadmap@bbd3292 M4) | research, paused | M | - |
| A5 | Availability and safety extras: lexical results while the first index builds, secret redaction on returned text, agent-supplied `annotate` summaries keyed by chunk hash, optional bearer token on the loopback HTTP surface (roadmap@bbd3292 A5) | research | M each | A1 |
| P1 | Packaging: cargo-dist installers (shell, PowerShell, MSI, Homebrew) and `service install|uninstall|start|stop` via the `service-manager` crate (roadmap@bbd3292 P1) | research | M + M | - |
| N127 | Acceptance coordinator dedupe: table-drive the `assert_search` calls of `xtask/src/acceptance/multilingual.rs`, and share one runner for the per-language `*_lsp` and `*_recovery` modules; evidence names stay verbatim. Only a live acceptance run proves it (no automated gate). From the cleanup S1e audit (d574) | ready | M | - |

### Investigations

Expand Down
Loading