Files
yoi/docs/report/T-743-T748-composition.md

135 lines
8.5 KiB
Markdown

> Historical evidence: the user withdrew composition/wait instructions below.
> Current standalone correction and fresh validation/review evidence:
> `T-743-standalone-correction.md`. The original body is retained, not a T-748 return gate.
# T-743 / T-748 composition: execution-boundary evidence
## Source and status
T-743 continues on `work/T-743-ticket-public-surfaces`, MR
`01a12d19-b61b-79a2-baca-89241fd3c3d3` → `develop`. The published T-748
source `66bb9d0b825d72e20923003b273b787007f3aed8` was normally fetched and
merged into that same source branch, without conflicts, replacement selectors,
force push, or a copied execution facade. The composition commit carrying this
report also connects the added callers below. Its exact published hash is in the
Ticket handoff and provider-resolved MR source.
**This is a validated intermediate composition, not final independent approval.**
T-748 MR `01a12d3f-e90c-7b02-9ed9-cf3bd2e822a1` seq3 requests changes on this
upstream source. Its two major findings are not fixed by the new assignment
caller work: `T748-DB-NETWORK-LANE` (Subjektiv mixed Runtime/DB placement) and
`T748-ASYNC-PROTOCOL-SIGNING` (cold protocol observation source signing).
That authoritative verdict was checked again after the combined full suite;
no newer published upstream source or verdict was present. The T-748 owner was
informed through its Ticket of the composition and requested to provide the
normally advanced validated fix source. Do not interpret a green suite as proof
that those untested boundaries are safe. Normal-merge that fix into this same
T-743 source, revalidate, and independently review the exact combined source.
## Caller placement
- Canonical and Browser assignment pages and sanitized diagnostics share one
implementation. Workspace scope, Ticket reference resolution and each whole
synchronous Store read run on the shared bounded DB owner. None is left as a
synchronous pre-call on a Tokio request thread.
- Typed Ticket query, including principal/handling/current-closure filtering
before pagination, retains T-748's whole authority/read/enrichment DB job.
The regression holds the **authority's actual candidate connection**, not the
separate API Store connection used by only some enrichment paths. This also
proves the empty-result path and wrong-principal filters offload correctly.
- Account assignment answers derive attribution from Backend-authenticated
context inside the owned DB closure. Runtime answers preserve the live current
Orchestrator discovery check on the finite Host lane, because Runtime worker
lookup can perform remote HTTP. The DB closure derives Runtime attribution
without I/O and the unchanged answer helper validates current singleton and
live binding **again under its IMMEDIATE write transaction**, including replay.
Target principal and request-body prose never supply author authority.
- The same answer helper keeps source authority, actionable-assignment gate,
assignment/event CAS, full operation fingerprint/replay, body, audit, receipt
and commit together. There is no await within that transaction and no automatic
mutation retry.
- The accepted SQL job admits the existing finite Host attention continuation
**after commit and before returning its result**. It inherits the request
lifecycle source, owns lookup/Runtime dispatch independently of the waiter and
does not wait on Runtime/network on the sole DB worker. A live HTTP waiter
observes best-effort notification completion; losing the waiter does not
cancel accepted SQL or accepted publication. Rejected Host publication retains
the existing saved-input scan/recovery and diagnostic behavior, not rollback
or a synthetic successful delivery.
- Normal Tools/WIP still converge on the canonical HTTP contracts. No second
ledger, query adapter, source authority, read pool or delivery implementation
was added. Existing T-748 set/clear/start/delivery boundaries remain intact.
## New regression proof
`crates/workspace-server/src/server_assignment_db_execution_tests.rs` contains
10 tests on fixture-owned bounded DB/Host owners, temporary databases and explicit
observable gates. Parent inspected the child's committed tool output, the actual
new test code and then the combined default-parallel suite, rather than treating
an end notification as proof. The child's delegated file scope was released.
The regressions prove:
1. Assignment/diagnostic read and Ticket reference resolution wait off the
current-thread executor on their actual Store connection mutex.
2. Typed principal/handling/closure query matrices, including empty results,
hold the candidate connection and filter before the page limit.
3. A real second SQLite connection's IMMEDIATE writer reaches the answer's owned
busy observer while the same Tokio runtime's timer and independent control
progress; one transaction preserves the answer/event/audit/receipt.
4. Saturated DB admission returns HTTP 503 and does not accept an answer.
5. Cancelling an accepted answer waiter retains its actual job slot/lifecycle
through SQL and Host publication; body/audit/receipt persist, dispatch is once,
and actual cleanup releases all observed leases.
6. Successful HTTP answer waits for its admitted publication without occupying
the DB worker; an independent DB callback can progress during publication.
7. Account and Browser receipt replay, stale CAS, operation mismatch and bad
cursor/error mapping retain their domain meanings.
8. Real signed non-Orchestrator source and signed proof replay are denied with
no answer/receipt; signed current Orchestrator canonical/Browser replay shares
one source-bound receipt, and another source cannot replay it.
9. Saturated **2-worker/16-queued Host** live-discovery rejects canonical/Browser
Runtime answers before SQL admission, without receipt/audit/publication or
retained lifecycle, while independent DB callbacks progress. This last test
injects authenticated context at generated handlers to isolate discovery
admission; the preceding tests exercise actual signed-proof middleware.
Read/query contention intentionally uses the actual connection mutex; answer
contention uses a separate real SQLite writer. Neither is described as a full
remote Runtime latency benchmark. No fixed completion sleeps, mutation retry,
parallelism reduction, process-global fixture budgets or new ignored tests were
introduced. Fixtures drain accepted Host/cleanup jobs, shut down projection
producers, then drain DB jobs before ending their original Tokio driver. Owned
busy-handler userdata and SQLite locks unregister/release through RAII.
## Validation on this composition
- Root `cargo check`: passed, normal default-member compile closure.
- `cargo test -p yoi-workspace-server --lib assignment_db_execution_tests`:
**10 passed, 0 failed**, 2.63s (child committed output). Parent reran the first
nine after separating Runtime discovery and included all ten in the full suite.
- `cargo test -p yoi-workspace-server`: original default parallelism,
**985 library passed, 0 failed, 1 pre-existing ignored**, 176.60s;
**11 binary passed**, doc tests passed. Log:
`target/t743-combined-server-suite.log`.
- `cargo test -p workdir`: **153 passed** across library/integration targets;
`cargo test -p workdir --features http-client`: **156 passed**, doc tests passed.
Logs: `target/t743-combined-workdir.log`, `target/t743-combined-workdir-http.log`.
- Combined Web check: **0 errors, 0 warnings**; static production build passed
with the existing chunk-size advisory. Web tests **613 passed**, components
**318 passed**, Chromium Ticket/principal browser tests **7 passed**.
Logs: `target/t743-combined-{web-check,web-build,web-tests,components,browser}.log`.
The last change is Server execution placement/test code, not a UI change.
- All six server-api TypeScript generator `--check` commands passed: ticket,
repository OpenAPI, runtime, workdir, Worker launch and companion.
- `cargo fmt --all -- --check`, `git diff --check HEAD` and
`env -u LD_LIBRARY_PATH deno run --allow-read --allow-run=git tools/check-state-contract-names.ts`
passed; naming: **558 matching lines, 0 unapproved, 0 stale exceptions**.
Earlier T-743 public-surface, five-crate, Prompt/Tool, visual and real-Worker
fixture evidence is retained in `T-743-public-surface-validation.md`. Scripted
model/loopback browser fixtures do not attest real model judgment or all T-744
live paths. Target integration, Ticket/MR conclusion, live update and retained
Worker/Workdir cleanup were not performed. Fresh independent combined-source
review remains pending the upstream fixes, not silently waived.