Repository navigation
Issue sweep — 2026-10-01 #778
Description
Issue sweep 2026-10-01: 25 judged, 11 classified, 1 closed, 3 draft pull requests, 0 did not complete.
4 issues flagged, and 9 proposals need an answer.
This run judged 25 of the 54 open issues it could pick up. It took every unclassified issue except 12 of the 24 new devbook-drift issues, and it re-judged 8 refactor issues that earlier sweeps had already classified. It closed one issue that is already fixed on main. It then resolved three refactors one at a time. Every draft below builds with 0 warnings, and the full suite is green.
① Draft pull requests
Every pull request is a draft. The What could not be proved section of each body is the full list; the column below gives the part to check by hand.
| Issue | Pull request | What to validate by hand |
|---|---|---|
| #754 Duplicated Infrastructure helpers | #902 | The change is proved by unit tests only. It rewrites how every local SQLite repository opens backlog.db, through the new SqliteSchema.OpenAsync (the WAL pragma now runs as its own command before the DDL). To validate: start the harness on an existing workspace, open Tasks, Inbox and Roadmap, and check the data is there. Four criteria are properties of the diff, not tests: one TrimForMessage, one ReplicaRoutes, SqliteRegistration.cs untouched, and no new Rfc3339 copy. The issue's "once per process per path" DDL cache was deliberately left out. The review found nothing. |
| #755 Duplicated test doubles | #904 | Test-only: 69 files and 44 copies gone. Two double behaviours changed. InMemoryTaskRepository is now Dictionary-backed, so re-saving a task keeps its position. FakeTimeProvider defaults to UTC where some FixedClock copies used the machine zone. No test depends on either. One minor review finding is open: two SharedTestDoubleTests guards assert source text. Left for later: SettingsRenderContext, the two StubHttpMessageHandler copies, UnusedGitHubClient/UnusedProbe. |
| #763 Stale pointers in agent context files | #906 | Governance text: read the CLAUDE.md diff. The PR names all four backlog-tools skills and adds one sentence, repeated in context-loading.md, that routes plugins/, tools/, build/, .github/ and .claude/ through flow-code. The review caught a draft clause that would have exempted backlog-answer-notes from flow-spec, and the sweep removed it. That question is now proposal ②2. Item 4 is left open, so the PR does not close #763. |
Carried drafts from 2026-09-30, still open:
- refactor(desktop): share one composition between the MAUI head and harness #864 (Share one desktop composition between the MAUI head and the web harness #742, shared desktop composition): runtime diff of the MAUI head registrations.
- refactor(mcp): read devbook notes under one chapter spelling #857 (Fix inconsistent devbook annotation chapter paths #574, one annotation spelling): a bare
adr/x.mdkey would no longer be found.
Merge order:
- refactor(desktop): share one composition between the MAUI head and harness #864 first, then test: share the duplicated test doubles under tests/Shared #904. They share
tests/Backlog.HostComposition.UnitTests/Backlog.HostComposition.UnitTests.csproj, where test: share the duplicated test doubles under tests/Shared #904 adds one link item. - test: share the duplicated test doubles under tests/Shared #904 and feat(inbox): give Capture sources their own tab in the Inbox pane #900 both edit
InboxAddPersistsAnItemTests.cs. test: share the duplicated test doubles under tests/Shared #904 only deletes that file's private doubles. - refactor(infra): share the duplicated Infrastructure helpers #902 and docs(agents): fix the stale pointers in the agent context files #906 overlap nothing.
② Proposals awaiting an answer
-
The four auto-merge issues (Add auto-merge workflow to devbook #860–Add auto-merge workflow to finance #863) need a person. See ③. If they are your own suggested tasks, remove nothing: add
triagedby hand, and the next sweep judges them for relevance. The change belongs infinance,Project-Guidelines-MCP,ai-pluginsanddevbookrespectively, not here. Backlog's own copy landed in Merge a pull request once every other check on it is green #872. -
Does
backlog-answer-notesgo throughflow-spec? It writes onlyannotationfences under.devbook/, throughannotations.mjs. docs(agents): fix the stale pointers in the agent context files #906 describes that behaviour but takes no side. Put your answer in both gate copies:CLAUDE.mdand.agents/rules/context-loading.md. -
Fix the stale pointers in the agent context files #763 item 4. The five vendored
.agents/skills/aspire*skills (928 lines) are unwrapped and unreferenced: wrap them or delete them..claude/design/multi-account-settings.mdis an orphan: move it into.devbook/arc42/as a proposal throughflow-spec, or delete it. -
Drift conflicts that need a person to pick the model before anything can be written:
- [Devbook drift] .devbook/domain/sessions/features.md#session-inventory #878 Sessions features #session-inventory. The chapter says session sync has "a switch of its own"; the code gates on the single
syncswitch (SessionSyncWorker.ShouldRun, withFormerKeysincludingsession-sync). Triage returned it as the only ready issue, but the sweep did not resolve it, because it is a spec/code decision. It also found a small side defect: theAppFeatures.csUI string says the session title never travels, butSessionRecordMapping.cssends it. - [Devbook drift] .devbook/domain/roadmap/features.md#laying-out-imported-plans #877 Roadmap features #laying-out-imported-plans, below
high, so not labelled. The chapter and the code disagree on six points of "Placing a plan in time". It also collides with uncommitted work in theversion-number-display-9fdeacandrepository-review-034303worktrees. Proposed:documentation, plus aneeds-decisionlabel the repository lacks. - [Devbook drift] .devbook/arc42/05-building-block-view.md#ide-extensions #884 building-block view #ide-extensions, medium confidence, so no
needs-infocomment was posted. The questions:- Is the intended IDE path IDE → desktop (local API or MCP), or IDE → cloud sync API? The VS Code extension calls
/api/sync/inboxdirectly, with no Authorization header, against aPairedDevicepolicy. That is likely a real bug if the chapter is right. - Is the Visual Studio (WPF) extension still planned?
- Is the intended IDE path IDE → desktop (local API or MCP), or IDE → cloud sync API? The VS Code extension calls
- [Devbook drift] .devbook/domain/sessions/features.md#session-inventory #878 Sessions features #session-inventory. The chapter says session sync has "a switch of its own"; the code gates on the single
-
The code-ahead drift issues go through
flow-spec, not the code sweep. Each one isdevbook:capture-specsinto a chapter edit:- [Devbook drift] .devbook/domain/sessions/domain.md#run-attachment #874, [Devbook drift] .devbook/domain/sessions/domain.md#session-view #875, [Devbook drift] .devbook/domain/sessions/domain.md#session-grouping #876 (Sessions domain)
- [Devbook drift] .devbook/domain/sessions/features.md#honest-partial-answers #879, [Devbook drift] .devbook/domain/sessions/features.md#delivery-runs-beside-their-sessions #880, [Devbook drift] .devbook/domain/sessions/features.md#turn-the-area-off #881 (Sessions features)
- [Devbook drift] .devbook/arc42/05-building-block-view.md#container-view #882, [Devbook drift] .devbook/arc42/05-building-block-view.md#desktop-app #883, [Devbook drift] .devbook/arc42/05-building-block-view.md#cloud-service #885 (building-block view)
[Devbook drift] .devbook/domain/sessions/domain.md#run-attachment #874 also names one stale XML summary in
DeliveryRuns.cs:530. Triage returns all of these as "nothing to change" because no code kind fits. -
Carried from 2026-09-30:
- Fix Dashboard takeover closing itself on first open #557 needs a product decision. It is still
sweep-failed. A fresh load restoresLastSurface=Dashboard, so the first click correctly closes it. Either close it as not a defect, or decide a fresh load should not restore a takeover. needs-infois still unanswered on Fix the VS Code extension getting 401 from the Sync API #718 and Stop nightly desktop releases being marked latest #751 (since 2026-09-27) and on Investigate DeviceIdentityStore minting under contention #526 (since 2026-09-28).- Devbook-only issues, each for its own
flow-specsession: Update roadmap features.md for past weeks and forecast #770, Bring the arc42 building-block view level with the solution #767, Write technical debt records for the open items D1 and D5 #764, Add the Sync bounded context to the domain model #762, Correct the deployment view on Azure provisioning #716, Refresh stale Local Offline Store tech chapter #690, Record deliberate bulk-selection entry in .design #367. needs-architectureissues, each needing a decision record first: Decide and document how GitHub, Claude and Azure Foundry keys are stored at rest #753, Add architecture rules that a module UI does no IO and that Infrastructure stays acyclic #741, Remove the Infrastructure.Mcp dependency on the Blazor component library #725, Stop committing generated archify diagram renders #752.- Partial fixes left open on purpose: Split Settings.razor into per-module settings sections #743 (more Settings sections) and Add job timeouts, coverage collection and a parallel test run to CI #748 (coverage and lock files, through
flow-update-packages). - Follow-ups:
- The Arc42
sameChapterfix left open by fix(devbook): keep only the latest chapter read in three panels #856. .devbook/arc42/05-building-block-view.mdshould nameBacklog.Desktop.Compositionif refactor(desktop): share one composition between the MAUI head and harness #864 merges.- One stale Archify artifact,
05-building-block-view.mdAdd .domain, .arc42, and .backlog knowledge folder structure #4. - The follow-ups listed in refactor(devpc): move the tools adapter into Infrastructure.DevPc #804, refactor(settings): let modules register their own settings page #805, build: add a root analyzer and warning policy and pin the SDK #807, ci: add job timeouts, a nightly parallel run and one Node version #808, ci(codeql): scan C# and TypeScript as well as actions #809 and ci(dependabot): watch NuGet and the VS Code extension's npm root #810.
- The Arc42
- Fix Dashboard takeover closing itself on first open #557 needs a product decision. It is still
-
The triage workflow still sets refactors aside as "nothing to change". This run it did so to Consolidate the duplicated helpers across Infrastructure projects #754, Move the duplicated test doubles into tests/Shared #755, Fix the stale pointers in the agent context files #763 and Settle the empty-state title convention and sweep the 22 sites #758. The sweep resolved the first three as
new-functionalityby hand. The delivery-schedule plugin should add a refactorchangeKind. -
Settle the empty-state title convention and sweep the 22 sites #758 is ready apart from one decision. The empty-state title punctuation convention is still unsettled, and nothing in the sweep can make that choice. It also needs a
.devbook/design/interaction-guidelines.mdsentence throughflow-spec. Once the convention is chosen, the 22-site sweep is mechanical. -
Labels the repository lacks. Proposed, not created:
- Severity:
critical,high,medium,low. This run judged [Devbook drift] .devbook/domain/sessions/domain.md#run-attachment #874, [Devbook drift] .devbook/domain/sessions/features.md#session-inventory #878, [Devbook drift] .devbook/domain/sessions/features.md#honest-partial-answers #879, [Devbook drift] .devbook/arc42/05-building-block-view.md#container-view #882 and [Devbook drift] .devbook/arc42/05-building-block-view.md#desktop-app #883low. devbook(2),cross-repo(3),ci(2),needs-decision(2).- Carried:
refactor,tech-debt,architecture,flaky-test,tooling,area:*.
- Severity:
③ Flagged
Four issues were excluded from every write, from closure and from resolution, because their bodies are step-by-step instructions addressed to an agent. They are not labelled triaged, so they come back every sweep until a person acts:
- Add auto-merge workflow to finance #863 Add auto-merge workflow to finance
- Add auto-merge workflow to Project-Guidelines-MCP #862 Add auto-merge workflow to Project-Guidelines-MCP
- Add auto-merge workflow to ai-plugins #861 Add auto-merge workflow to ai-plugins
- Add auto-merge workflow to devbook #860 Add auto-merge workflow to devbook
All four carry the same text:
"1. Work in your own worktree on a new branch off an up-to-date
main. Make sureghis on the JSdotNet account (gh auth switch -u JSdotNet). … 3. Create.github/workflows/auto-merge.ymlwith EXACTLY the content in the block below … 5. Commit, push, and — only after the user approves — open the PR as a draft."
Each ends "Filed automatically from a Claude Code suggested task", so they are very likely your own. The flag stands anyway: nothing here can verify who wrote them. See ②1.
④ Did not complete
None this run. #557 (from 2026-09-28) is still sweep-failed; see ②6.
⑤ Closed
- Record the 1.13.0 stack in the AI tech chapters #871 Record the 1.13.0 stack in the AI tech chapters. Closed as
completed: PR docs(devbook): record the 1.13.0 stack and the run procedure #899 (c28bdef, on main) did it..devbook/tech/ai-development.mdnow says 1.13.0 and contract 24, and no "contract 19" is left under.devbook/techor.devbook/ai.
⑥ Triaged and deferred
- Classifications written. 11 issues got
documentationandtriaged: Record the 1.13.0 stack in the AI tech chapters #871, [Devbook drift] .devbook/domain/sessions/domain.md#run-attachment #874, [Devbook drift] .devbook/domain/sessions/domain.md#session-view #875, [Devbook drift] .devbook/domain/sessions/domain.md#session-grouping #876, [Devbook drift] .devbook/domain/sessions/features.md#session-inventory #878, [Devbook drift] .devbook/domain/sessions/features.md#honest-partial-answers #879, [Devbook drift] .devbook/domain/sessions/features.md#delivery-runs-beside-their-sessions #880, [Devbook drift] .devbook/domain/sessions/features.md#turn-the-area-off #881, [Devbook drift] .devbook/arc42/05-building-block-view.md#container-view #882, [Devbook drift] .devbook/arc42/05-building-block-view.md#desktop-app #883, [Devbook drift] .devbook/arc42/05-building-block-view.md#cloud-service #885. - Excluded before triage:
- The briefs: Devbook verify — 2026-09-30 #898, Weekly update — 2026-09-30 #868, Morning brief — 2026-09-30 #866, Change report — 2026-09-30 #865, Devbook validate — 2026-09-30 #851, and Issue sweep — 2026-10-01 #778 (this issue).
- Re-author the deployment view's Archify spec #363 (
in-progress) and Fix Dashboard takeover closing itself on first open #557 (sweep-failed). - Share one desktop composition between the MAUI head and the web harness #742, Extract the Devbook module's stores and registration out of its UI project #738 and Fix inconsistent devbook annotation chapter paths #574, which open drafts refactor(desktop): share one composition between the MAUI head and harness #864 and refactor(mcp): read devbook notes under one chapter spelling #857 reference.
- Conflicts at triage:
- Fold the duplicate and contradictory selectors in app.css and components.css #760 and Move each module's screen CSS out of the desktop head into its UI project #759 collide with feat(inbox): give Capture sources their own tab in the Inbox pane #900 and with uncommitted
app.css/components.cssedits in four sibling worktrees. - Align the Devbook, Inbox and Tasks UI namespaces with their project names #756 collides with feat(inbox): give Capture sources their own tab in the Inbox pane #900 (Inbox UI) and the
tasks-filter-fused-chipsworktree (Tasks UI). - Split TasksDesktopState and TasksPane by responsibility #744 collides with the
tasks-filter-fused-chipsworktree's uncommittedTasksPane.razor. - [Devbook drift] .devbook/domain/roadmap/features.md#laying-out-imported-plans #877: see ②4.
- Fold the duplicate and contradictory selectors in app.css and components.css #760 and Move each module's screen CSS out of the desktop head into its UI project #759 collide with feat(inbox): give Capture sources their own tab in the Inbox pane #900 and with uncommitted
- Surplus past maxResolve 3: Settle the empty-state title convention and sweep the 22 sites #758 (see ②8), and [Devbook drift] .devbook/domain/sessions/features.md#session-inventory #878 (see ②4).
- Not triaged this pass (cap of 25). 12 new drift issues: [Devbook drift] .devbook/design/component-libraries.md#key-finding-tokens-are-the-shared-layer #886–[Devbook drift] .devbook/design/component-libraries.md#materialization #892 (component-libraries), [Devbook drift] .devbook/domain/roadmap/context.md #893 (roadmap context), [Devbook drift] .devbook/domain/devbook/context.md #894 (devbook context), [Devbook drift] .devbook/domain/sessions/context.md #895 (sessions context), [Devbook drift] .devbook/domain/ #896 (domain settings), [Devbook drift] .devbook/domain/capture/context.md #897 (capture context). The run chose to spend 8 of the 25 slots re-judging the refactors, so that the three drafts above could be picked. The next sweep classifies these 12 first.
- Already classified and not re-judged this pass: Update roadmap features.md for past weeks and forecast #770, Bring the arc42 building-block view level with the solution #767, Write technical debt records for the open items D1 and D5 #764, Add the Sync bounded context to the domain model #762, Decide and document how GitHub, Claude and Azure Foundry keys are stored at rest #753, Stop committing generated archify diagram renders #752, Stop nightly desktop releases being marked latest #751, Add job timeouts, coverage collection and a parallel test run to CI #748, Split the Desktop.UI.UnitTests mega-project into per-module and per-infrastructure test projects #745, Split Settings.razor into per-module settings sections #743, Add architecture rules that a module UI does no IO and that Infrastructure stays acyclic #741, Remove the Infrastructure.Mcp dependency on the Blazor component library #725, Fix the VS Code extension getting 401 from the Sync API #718, Correct the deployment view on Azure provisioning #716, Refresh stale Local Offline Store tech chapter #690, Investigate DeviceIdentityStore minting under contention #526, Record deliberate bulk-selection entry in .design #367.
This brief was opened by an unattended run of delivery-schedule:schedule-issue-sweep (delivery-schedule@1.13.0). It replaces the 2026-09-30 brief, and the rows still unresolved from that one are folded into ②6.
Activity
[-]Issue sweep — 2026-09-27[/-][+]Issue sweep — 2026-09-28[/+][-]Issue sweep — 2026-09-28[/-][+]Issue sweep — 2026-09-30[/+][-]Issue sweep — 2026-09-30[/-][+]Issue sweep — 2026-10-01[/+]