Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -13,8 +13,8 @@
|
|||||||
**Tasks.**
|
**Tasks.**
|
||||||
- **#80** [EPIC] LSP validation gate — real per-stage gate + terminal typecheck replacement. Design finalized in the task body; break into the 5 sub-tasks listed there. Container for the work below.
|
- **#80** [EPIC] LSP validation gate — real per-stage gate + terminal typecheck replacement. Design finalized in the task body; break into the 5 sub-tasks listed there. Container for the work below.
|
||||||
- **#310** ✅ LSP diagnostics runner: anchor read on server readiness, not the 750ms timer (kills phantom unresolved-import).
|
- **#310** ✅ LSP diagnostics runner: anchor read on server readiness, not the 750ms timer (kills phantom unresolved-import).
|
||||||
- **#311** LSP gate: lint-class diagnostics (unused/deprecated) must not fail the run — classify by `DiagnosticTag`, not severity.
|
- **#311** ✅ LSP gate: lint-class diagnostics (unused/deprecated) must not fail the run — classify by `DiagnosticTag`, not severity.
|
||||||
- **#263** Auto build-gate never fires on real freestyle scaffold — promotion attaches to no reachable stage. Blocks the terminal safety net #80 doesn't replace.
|
- **#263** ✅ Auto build-gate never fires on real freestyle scaffold — promotion attaches to no reachable stage. Blocks the terminal safety net #80 doesn't replace.
|
||||||
- **#267** Verify build-gate actually fires + re-scope #40 (LSP obsoletes the typecheck alias) — one live run settles both. Acceptance gate for the whole goal; do last.
|
- **#267** Verify build-gate actually fires + re-scope #40 (LSP obsoletes the typecheck alias) — one live run settles both. Acceptance gate for the whole goal; do last.
|
||||||
|
|
||||||
**Exit.** One live freestyle run where every write stage gets LSP diagnostics scoped to its write blast-radius, terminal build-gate fires, and a stranded-scaffold case goes to recovery instead of `WorkflowFailed`.
|
**Exit.** One live freestyle run where every write stage gets LSP diagnostics scoped to its write blast-radius, terminal build-gate fires, and a stranded-scaffold case goes to recovery instead of `WorkflowFailed`.
|
||||||
@@ -78,6 +78,32 @@
|
|||||||
| 2 W | #80 sub4 — blast-radius filter | #305 + #306 — ACR external + sticky hint | #304 + #309 — recovery runaway |
|
| 2 W | #80 sub4 — blast-radius filter | #305 + #306 — ACR external + sticky hint | #304 + #309 — recovery runaway |
|
||||||
| 2 F | #310, #311, #267 — readiness anchor + tag class + acceptance run | — | — |
|
| 2 F | #310, #311, #267 — readiness anchor + tag class + acceptance run | — | — |
|
||||||
|
|
||||||
|
### Goal 1 progress — 2026-07-26
|
||||||
|
|
||||||
|
- **#310 ✅** (commit `a95475be`). `awaitDiagnostics` waits for one push per URI then a *quiescent*
|
||||||
|
period anchored to the last server publication (`awaitAll` + `awaitQuiet`), not a 750ms timer
|
||||||
|
started at `didOpen`. Kills the half-loaded-project phantom unresolved-import.
|
||||||
|
- **#311 ✅** (commit `f61864ff`). `LspDiagnostic.tags` (lowercased `DiagnosticTag` names) is carried
|
||||||
|
from LSP4J through the event; `SessionOrchestratorGates2` gates on `severity == error && !isLint`.
|
||||||
|
A `noUnusedLocals` tsconfig promoting TS6133 to *error* no longer hard-fails a run that no rewrite
|
||||||
|
could clear. Lint diagnostics stay recorded and visible, just non-gating. Classification by
|
||||||
|
protocol tag, not a TS-code whitelist. Test: `core/events/.../LspDiagnosticTest.kt`.
|
||||||
|
- **#263 ✅** (commit `867e99d1`). Two findings on trace:
|
||||||
|
- The *reported* selection bug was already fixed by `159b3f1e` (#277) — `autoGateStages` is every
|
||||||
|
write-declaring stage **plus** `terminalStageId(plan)`, so a non-writing review terminal is
|
||||||
|
gated and `runExecutionGate` promotes it to PROJECT off the real `FileWritten` manifest. The
|
||||||
|
2026-07-18 evidence was stale.
|
||||||
|
- The hole that remained: any stage declaring `build_expectation: project|tests` zeroed the whole
|
||||||
|
auto-gate set, so a plan building at stage 3 of 9 had nothing verifying the six stages written
|
||||||
|
after it. A declared build now suppresses only the redundant *per-writing-stage* gates; the
|
||||||
|
terminal floor always stays.
|
||||||
|
- Left deliberately: the gate chain still short-circuits before the execution gate when the
|
||||||
|
contract gate fails. The stage fails either way — cheap gates first, no COMPLETE-lie.
|
||||||
|
|
||||||
|
**Goal 1 remaining: #267 only** — the acceptance live run. Needs the #191 `setup = "npm ci"` alias
|
||||||
|
first, or the now-firing gate fails on absent `node_modules` rather than on real code. Fold the
|
||||||
|
unverified #312/#313 trailing-mandate check into the same run.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Landed out-of-band — context message-type sweep (#312, #313)
|
## Landed out-of-band — context message-type sweep (#312, #313)
|
||||||
|
|||||||
Reference in New Issue
Block a user