Money cleared cold path returns 503 and queues foreign or missing Budgets #1566

Closed
opened 2026-10-10 22:04:41 +00:00 by kayg · 13 comments
Owner

Blocking finding from merge round #1561. The same focused XUser replay on merged release code and production 4ebeba0b8 returns HTTP 503/503 for User B with both User A’s transaction ID and a missing transaction ID on PUT /api/v1/money/budgets/{budget_id}/transactions/{transaction_id}/cleared. These are HTTP responses, not transport timeouts. Five identity comparisons ran on each build; the failure is User B’s cold case. No cross-User data or state change was reported.

Reproduce: XUSER_REPLAY_OPERATION=money_set_cleared XUSER_MATRIX_ONLY=1 tests/adversarial/run-split.sh with the real release server selected through ADVERSARIAL_SERVER_BIN. The selector retains all identity, denial and post-state checks for that operation.

Source evidence: set_cleared in crates/plugins/money/src/routes.rs calls cached_register, then when no retained partial source exists, calls enqueue_register_build_with_policy(..., true) and returns register_build_busy(). That queue path lacks the bounded money.find_folder ownership check used by enqueue_owned_register_build. The read path’s register_for already rejects missing/foreign Budgets before admission (#1554). Apply that ownership guard to the cleared cold/stale path and add a real-db handler regression proving 404 and no queued work for missing/foreign Budgets.

This source is unchanged by the two #1561 merges. The brief explicitly makes 5xx a defensive blocker, so this remains blocking despite reproducing on production. No existing test expectation was changed and no Money behavior was changed by merge39.

Blocking finding from merge round #1561. The same focused XUser replay on merged release code and production 4ebeba0b8 returns HTTP 503/503 for User B with both User A’s transaction ID and a missing transaction ID on PUT /api/v1/money/budgets/{budget_id}/transactions/{transaction_id}/cleared. These are HTTP responses, not transport timeouts. Five identity comparisons ran on each build; the failure is User B’s cold case. No cross-User data or state change was reported. Reproduce: `XUSER_REPLAY_OPERATION=money_set_cleared XUSER_MATRIX_ONLY=1 tests/adversarial/run-split.sh` with the real release server selected through ADVERSARIAL_SERVER_BIN. The selector retains all identity, denial and post-state checks for that operation. Source evidence: set_cleared in crates/plugins/money/src/routes.rs calls cached_register, then when no retained partial source exists, calls enqueue_register_build_with_policy(..., true) and returns register_build_busy(). That queue path lacks the bounded money.find_folder ownership check used by enqueue_owned_register_build. The read path’s register_for already rejects missing/foreign Budgets before admission (#1554). Apply that ownership guard to the cleared cold/stale path and add a real-db handler regression proving 404 and no queued work for missing/foreign Budgets. This source is unchanged by the two #1561 merges. The brief explicitly makes 5xx a defensive blocker, so this remains blocking despite reproducing on production. No existing test expectation was changed and no Money behavior was changed by merge39.
Author
Owner

Started on job/fix1566 at base 5efdab060e (merge39). Auditing Money ownership checks before register queue admission and adding real-Index handler regressions. No push or deployment.

Started on job/fix1566 at base 5efdab060e4af761a6d58c81c7a8b73349f1174a (merge39). Auditing Money ownership checks before register queue admission and adding real-Index handler regressions. No push or deployment.
Author
Owner

Finding: enqueue_register_build_with_policy has two production callers: the cold-read wrapper (accounts and transactions through register_for) and the stale/cold set_cleared branch. Only the wrapper checked money.find_folder. The fix places that bounded owner-scoped header lookup in enqueue_register_build_with_policy before queue failures, pending keys, capacity checks, or channel sends. Import preview admission creates a new Budget under the authenticated User; import confirmation checks pending preview ownership and replacement publication resolves money.find before writing. No additional unguarded Budget queue path was found. Added a real-Index set_cleared regression for both Users, missing/foreign Budget IDs, existing/missing transaction IDs, empty/full queue, identical 404 bodies and no channel sends; the owned cold case retains 503 then succeeds after worker publication.

Finding: enqueue_register_build_with_policy has two production callers: the cold-read wrapper (accounts and transactions through register_for) and the stale/cold set_cleared branch. Only the wrapper checked money.find_folder. The fix places that bounded owner-scoped header lookup in enqueue_register_build_with_policy before queue failures, pending keys, capacity checks, or channel sends. Import preview admission creates a new Budget under the authenticated User; import confirmation checks pending preview ownership and replacement publication resolves money.find before writing. No additional unguarded Budget queue path was found. Added a real-Index set_cleared regression for both Users, missing/foreign Budget IDs, existing/missing transaction IDs, empty/full queue, identical 404 bodies and no channel sends; the owned cold case retains 503 then succeeds after worker publication.
Author
Owner

Committed the fix and real-Index regressions as 820a6816b5, after the required origin/dev integration (6bfe97dba; upstream added performance records only). cargo fmt --check: exit=0. Money Clippy: Finished dev profile [unoptimized + debuginfo] target(s) in 2m 01s; exit=0. The new cold-cleared handler regression passed (1 passed; 184 filtered out; exit=0). Existing queue-capacity and stale-mark-repair regressions also passed individually with unchanged expectations. The broader Money suites are running. Decisions: put the ownership guard at the common queue boundary rather than duplicate it in handlers; queue-capacity fixtures now create real owned Budget headers. Warm retained-register paths are unchanged; cold admission resolves at most 200 headers, with no Month history read.

Committed the fix and real-Index regressions as 820a6816b516b6810b56d5d27a18506078ea3680, after the required origin/dev integration (6bfe97dba; upstream added performance records only). cargo fmt --check: exit=0. Money Clippy: Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 01s; exit=0. The new cold-cleared handler regression passed (1 passed; 184 filtered out; exit=0). Existing queue-capacity and stale-mark-repair regressions also passed individually with unchanged expectations. The broader Money suites are running. Decisions: put the ownership guard at the common queue boundary rather than duplicate it in handlers; queue-capacity fixtures now create real owned Budget headers. Warm retained-register paths are unchanged; cold admission resolves at most 200 headers, with no Month history read.
Author
Owner

Additional audit finding: create_transaction acquires create_slots and pushes into the per-User FIFO before write_transaction_batch resolves money.find. This can admit a missing or foreign Budget and wait behind owned writes. Correcting the earlier audit conclusion: the register paths were guarded, but the create FIFO also needs the bounded ownership lookup before admission. Added money.find_folder under a short read lock before acquiring a create slot, with the existing write-time lookup retained. Extended the real-Index regression to both handlers with blocked FIFO consumption and all create slots occupied, proving identical 404 bodies, unchanged permits, empty pending FIFO and later owned creation success. No duplicated ownership implementation.

Additional audit finding: create_transaction acquires create_slots and pushes into the per-User FIFO before write_transaction_batch resolves money.find. This can admit a missing or foreign Budget and wait behind owned writes. Correcting the earlier audit conclusion: the register paths were guarded, but the create FIFO also needs the bounded ownership lookup before admission. Added money.find_folder under a short read lock before acquiring a create slot, with the existing write-time lookup retained. Extended the real-Index regression to both handlers with blocked FIFO consumption and all create slots occupied, proving identical 404 bodies, unchanged permits, empty pending FIFO and later owned creation success. No duplicated ownership implementation.
Author
Owner

Second atomic fix committed as 25ab01511d: transaction creation now resolves owned Budget headers before taking a FIFO permit. The expanded real-Index regression passed: test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 184 filtered out; finished in 2.00s; exit=0. Final per-crate Clippy includes calternal-money, calternal-plugin-money and calternal-server: Finished dev profile [unoptimized + debuginfo] target(s) in 1m 09s; exit=0. Formatting: exit=0. Earlier broader verification was stopped when the additional admission path was found; final Money tests, a release server build and the required full workspace test are now running on the complete fix. No existing expectation changed.

Second atomic fix committed as 25ab01511d2ccdc77cd8ea12c7d1471209b31c38: transaction creation now resolves owned Budget headers before taking a FIFO permit. The expanded real-Index regression passed: test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 184 filtered out; finished in 2.00s; exit=0. Final per-crate Clippy includes calternal-money, calternal-plugin-money and calternal-server: Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 09s; exit=0. Formatting: exit=0. Earlier broader verification was stopped when the additional admission path was found; final Money tests, a release server build and the required full workspace test are now running on the complete fix. No existing expectation changed.
Author
Owner

Committed the required exact performance pin refresh. The moved ownership lookup changed two exception locations/hashes; create_transaction changed its mutation hash; 16 existing bounded queue-call bindings needed the new enclosing function hash. Call hashes, capabilities, tests, owners, reasons, expiries, limits and the 22128-entry ratchet are unchanged. These are small public contract metadata changes needed for the server performance guard, not new exceptions or a weaker policy. Source guard output verbatim: perf-lint: PASS; 0 violations; 22128 scoped exceptions; exit=0. Rust source is unchanged since 25ab01511. Full Money and workspace tests and the release build continue.

Committed the required exact performance pin refresh. The moved ownership lookup changed two exception locations/hashes; create_transaction changed its mutation hash; 16 existing bounded queue-call bindings needed the new enclosing function hash. Call hashes, capabilities, tests, owners, reasons, expiries, limits and the 22128-entry ratchet are unchanged. These are small public contract metadata changes needed for the server performance guard, not new exceptions or a weaker policy. Source guard output verbatim: perf-lint: PASS; 0 violations; 22128 scoped exceptions; exit=0. Rust source is unchanged since 25ab01511. Full Money and workspace tests and the release build continue.
Author
Owner

Release server build completed on the committed fix. Verbatim build result: Finished release profile [optimized] target(s) in 27m 57s; exit=0. Started the required focused money_set_cleared XUser replay, then the full XUser matrix, with ADVERSARIAL_SERVER_BIN pointing to this job release binary and the existing successful production web build. The long Card batch comparison passed in the final Money suite. Full workspace test compilation remains active; its exit code will be captured explicitly.

Release server build completed on the committed fix. Verbatim build result: Finished `release` profile [optimized] target(s) in 27m 57s; exit=0. Started the required focused money_set_cleared XUser replay, then the full XUser matrix, with ADVERSARIAL_SERVER_BIN pointing to this job release binary and the existing successful production web build. The long Card batch comparison passed in the final Money suite. Full workspace test compilation remains active; its exit code will be captured explicitly.
Author
Owner

Focused release-server replay passed with ADVERSARIAL_SERVER_BIN selecting the fixed job binary. Verbatim output: Two-User OpenAPI matrix: 438 operations classified; 1 operations replayed; 5 A-ID vs missing-ID comparisons across B, C, D and anonymous; 18 #1402 non-private identifier routes reviewed by their own authority class; median absolute timing delta 2.6 ms. Job/Mail/quota ownership checks: 0 comparisons; 0 denial failures. exit=0. The full XUser matrix has started. The full workspace cargo test is executing suites, and the exact cargo clippy --all-targets -- -D warnings command requested in the brief is also running.

Focused release-server replay passed with ADVERSARIAL_SERVER_BIN selecting the fixed job binary. Verbatim output: Two-User OpenAPI matrix: 438 operations classified; 1 operations replayed; 5 A-ID vs missing-ID comparisons across B, C, D and anonymous; 18 #1402 non-private identifier routes reviewed by their own authority class; median absolute timing delta 2.6 ms. Job/Mail/quota ownership checks: 0 comparisons; 0 denial failures. exit=0. The full XUser matrix has started. The full workspace cargo test is executing suites, and the exact cargo clippy --all-targets -- -D warnings command requested in the brief is also running.
Author
Owner

Full release-server XUser matrix passed. Verbatim output: Two-User OpenAPI matrix: 438 operations classified; 227 operations replayed; 1058 A-ID vs missing-ID comparisons across B, C, D and anonymous; 18 #1402 non-private identifier routes reviewed by their own authority class; median absolute timing delta 0.3 ms. Job/Mail/quota ownership checks: 127 comparisons; 0 denial failures. exit=0. Exact workspace Clippy also passed: Finished dev profile [unoptimized + debuginfo] target(s) in 5m 34s; exit=0. Full workspace tests are continuing. In the separate Money run, both batch comparison tests passed; its remaining projection property test is still doing real IO (the sampled thread was waiting for a filesystem journal commit, with continuing read/write counters), not stalled on queue admission.

Full release-server XUser matrix passed. Verbatim output: Two-User OpenAPI matrix: 438 operations classified; 227 operations replayed; 1058 A-ID vs missing-ID comparisons across B, C, D and anonymous; 18 #1402 non-private identifier routes reviewed by their own authority class; median absolute timing delta 0.3 ms. Job/Mail/quota ownership checks: 127 comparisons; 0 denial failures. exit=0. Exact workspace Clippy also passed: Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 34s; exit=0. Full workspace tests are continuing. In the separate Money run, both batch comparison tests passed; its remaining projection property test is still doing real IO (the sampled thread was waiting for a filesystem journal commit, with continuing read/write counters), not stalled on queue admission.
Author
Owner

Complete Money crate gates passed. Verbatim main plugin result: test result: ok. 182 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 2573.55s. Integration results: test result: ok. 29 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 6.86s. test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.98s. exit=0. All calternal-money result blocks also passed. The NLP latency check passed in the full workspace run and in the requested isolated rerun (1 passed; 588 filtered; 0.16s; exit=0; largest sample 933 microseconds). No latency assertion failed and no existing expectation was changed. Waiting for the full workspace final exit code before cleanup and READY.

Complete Money crate gates passed. Verbatim main plugin result: test result: ok. 182 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 2573.55s. Integration results: test result: ok. 29 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 6.86s. test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.98s. exit=0. All calternal-money result blocks also passed. The NLP latency check passed in the full workspace run and in the requested isolated rerun (1 passed; 588 filtered; 0.16s; exit=0; largest sample 933 microseconds). No latency assertion failed and no existing expectation was changed. Waiting for the full workspace final exit code before cleanup and READY.
Author
Owner

Full workspace cargo test -- --test-threads=4 completed with exit=101. Money suites passed (182 main tests, 29 register/contract tests); the only failing parent was wire::tests::live_apps_run_in_separate_processes, whose child startup_serves_http_while_upgrade_backfills_wait exceeded its existing 90-second background-backfill bound. Exact workspace-binary isolated replay, with the normal 8 MiB worker stack, passed: test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 288 filtered out; finished in 9.46s, exit=0. No expectation or timeout changed. The process-isolation wrapper is now running alone to cover its remaining children. Full workspace exit and isolated results will both be quoted in the final report.

Full workspace `cargo test -- --test-threads=4` completed with `exit=101`. Money suites passed (182 main tests, 29 register/contract tests); the only failing parent was `wire::tests::live_apps_run_in_separate_processes`, whose child `startup_serves_http_while_upgrade_backfills_wait` exceeded its existing 90-second background-backfill bound. Exact workspace-binary isolated replay, with the normal 8 MiB worker stack, passed: `test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 288 filtered out; finished in 9.46s`, `exit=0`. No expectation or timeout changed. The process-isolation wrapper is now running alone to cover its remaining children. Full workspace exit and isolated results will both be quoted in the final report.
Author
Owner

fix1566 — Money admission ownership

Built: the shared register-build admission function now checks the authenticated User's bounded Budget headers before changing queue state. Cleared-mark cold/stale repair therefore returns 404 for absent or foreign Budgets without queued work. The admission audit also found transaction creation could enter or wait for its FIFO before ownership resolution; it now checks the same existing ownership helper first, releases the read lock before waiting, and retains write-time resolution.

Files: crates/plugins/money/src/routes.rs, crates/plugins/money/src/register_contract_tests.rs, contracts/perf/exceptions.json, contracts/perf/registry.json.

Head: 5bb674ef9458c4cc311aa8d81121b2eba9e607cd.

Regression: real filesystem and SQLite Index handlers cover missing/foreign Budgets for cleared marks and creates, empty/full register queues and exhausted create permits, identical 404 bodies, zero new work, and the owner's cold 503 followed by successful marks and creates. Existing expectations remain unchanged.

Decisions: put register ownership in the common admission function; reuse UserMoney::find_folder for the separate create FIFO. Expected admission cost is at most 200 Budget headers, independent of Month history. Warm register reads are unchanged. Exact source-guard hashes were refreshed; capability lists, call counts, limits and the 22128-entry ratchet were unchanged.

UX gaps closed/left: not applicable; no UI change. Known gaps: full workspace gate exits 101 in the server startup backfill wrapper. Filed #1569; no server behavior or expectation was changed. Cargo stopped at this failure, so later workspace targets were not certified by this run. No dependencies or migrations changed. No push, deploy, issue close or macOS VM use.

Validation output (verbatim result lines; full logs remain in artifacts/fix1566):

cargo fmt --check

exit=0

cargo clippy --all-targets -- -D warnings

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 34s
exit=0

cargo test -p calternal-money -p calternal-plugin-money -- --test-threads=4

    Finished `test` profile [unoptimized + debuginfo] target(s) in 7.74s
test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.31s
test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.56s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 4 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 3.76s
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.55s
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.52s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 184 filtered out; finished in 57.00s
test result: ok. 182 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 2573.55s
test result: ok. 29 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 6.86s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.98s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
exit=0

Focused real-Index admission regression

    Finished `test` profile [unoptimized + debuginfo] target(s) in 38.47s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 184 filtered out; finished in 2.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 32 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s
exit=0

Isolated timing-sensitive NLP check

    Finished `test` profile [unoptimized + debuginfo] target(s) in 32.52s
test nlp::tests::parse_and_classify_are_fast ... [perf] typical: parse_task_input=78µs  parse_entry_input=101µs
[perf] long: parse_task_input=70µs  parse_entry_input=261µs
[perf] patho: parse_task_input=641µs  parse_entry_input=933µs
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 588 filtered out; finished in 0.16s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 12 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 19 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.02s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 12 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
exit=0

Release server build

    Finished `release` profile [optimized] target(s) in 27m 57s
exit=0

Web install and production build


Source performance guard

perf-lint: PASS; 0 violations; 22128 scoped exceptions
exit=0

Focused release-server XUser cleared replay

Calendar subscription ownership matrix: 3 mutation rows, 15 owned-ID/missing-ID comparisons; A's settings and fetch state unchanged
Two-User OpenAPI matrix: 438 operations classified; 1 operations replayed; 5 A-ID vs missing-ID comparisons across B, C, D and anonymous; 18 #1402 non-private identifier routes reviewed by their own authority class; median absolute timing delta 2.6 ms
Job/Mail/quota ownership checks: 0 comparisons; 0 denial failures
exit=0

Full release-server XUser matrix

Calendar subscription ownership matrix: 3 mutation rows, 15 owned-ID/missing-ID comparisons; A's settings and fetch state unchanged
Two-User OpenAPI matrix: 438 operations classified; 227 operations replayed; 1058 A-ID vs missing-ID comparisons across B, C, D and anonymous; 18 #1402 non-private identifier routes reviewed by their own authority class; median absolute timing delta 0.3 ms
Job/Mail/quota ownership checks: 127 comparisons; 0 denial failures
exit=0

The NLP timing check passed both in the workspace run and alone. A separate server startup/backfill timeout occurred; details follow.

Full workspace cargo test -- --test-threads=4 (CARGO_BUILD_JOBS=4)

test result: ok. 23 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.11s
test result: ok. 141 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 122.88s
test result: ok. 52 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.03s
test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.76s
test result: ok. 141 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 228.22s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.22s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.18s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.48s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 43.24s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.92s
test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.19s
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.14s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.20s
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.39s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.01s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.80s
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 33.72s
test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.87s
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 19.47s
test result: ok. 63 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.09s
test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.20s
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.28s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s
test result: ok. 22 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.14s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
test result: ok. 43 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 29.13s
test result: ok. 107 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 25.32s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.21s
test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 276.43s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.80s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.06s
test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.14s
test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.57s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 4 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 3.33s
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.35s
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s
test result: ok. 589 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.41s
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.46s
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 63 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.66s
test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.18s
test result: ok. 34 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.48s
test result: ok. 106 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 12.39s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
test result: ok. 281 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 179.23s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 0.03s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 0.03s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 0.12s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 0.03s
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.58s
test result: ok. 172 passed; 0 failed; 10 ignored; 0 measured; 0 filtered out; finished in 20.39s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 184 filtered out; finished in 29.50s
test result: ok. 182 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 1612.03s
test result: ok. 29 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 6.19s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.19s
test result: ok. 326 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 260.20s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.81s
test result: ok. 45 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.24s
test result: ok. 60 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 5.63s
test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
test result: ok. 61 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 14.81s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.04s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 297.64s
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 1 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 2.28s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
background backfills did not finish: Elapsed(())
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 288 filtered out; finished in 95.61s
test result: FAILED. 276 passed; 1 failed; 12 ignored; 0 measured; 0 filtered out; finished in 129.37s
error: test failed, to rerun pass `-p calternal-server --bin calternal-server`
exit=101

Exact workspace-binary startup/backfill test alone

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 288 filtered out; finished in 9.46s
exit=0

Exact workspace-binary process-isolation wrapper alone

background backfills did not finish: Elapsed(())
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 288 filtered out; finished in 96.38s
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 288 filtered out; finished in 123.16s
exit=101

The startup child passed alone in 9.46s, but the wrapper reproduced the timeout. This does not clear the failed full gate. For the merge round: resolve #1569 and run cargo test -- --test-threads=4 with CARGO_BUILD_JOBS=4 and the production web build present. No repeated full-suite run was performed.

Cleanup (verbatim):

Removed 32584 files, 30.6GiB total
exit=0

Generated web build, SvelteKit, renderer build, canvas font copies and temporary test files were removed. Worktree is clean. Three atomic implementation/metadata commits are present; origin/dev was fetched and merged once before final gates.

NOT READY — full workspace cargo test exits 101; server startup backfill wrapper failure tracked in #1569.

# fix1566 — Money admission ownership Built: the shared register-build admission function now checks the authenticated User's bounded Budget headers before changing queue state. Cleared-mark cold/stale repair therefore returns 404 for absent or foreign Budgets without queued work. The admission audit also found transaction creation could enter or wait for its FIFO before ownership resolution; it now checks the same existing ownership helper first, releases the read lock before waiting, and retains write-time resolution. Files: `crates/plugins/money/src/routes.rs`, `crates/plugins/money/src/register_contract_tests.rs`, `contracts/perf/exceptions.json`, `contracts/perf/registry.json`. Head: `5bb674ef9458c4cc311aa8d81121b2eba9e607cd`. Regression: real filesystem and SQLite Index handlers cover missing/foreign Budgets for cleared marks and creates, empty/full register queues and exhausted create permits, identical 404 bodies, zero new work, and the owner's cold 503 followed by successful marks and creates. Existing expectations remain unchanged. Decisions: put register ownership in the common admission function; reuse `UserMoney::find_folder` for the separate create FIFO. Expected admission cost is at most 200 Budget headers, independent of Month history. Warm register reads are unchanged. Exact source-guard hashes were refreshed; capability lists, call counts, limits and the 22128-entry ratchet were unchanged. UX gaps closed/left: not applicable; no UI change. Known gaps: full workspace gate exits 101 in the server startup backfill wrapper. Filed [#1569](https://git.kayg.org/kayg/calternal/issues/1569); no server behavior or expectation was changed. Cargo stopped at this failure, so later workspace targets were not certified by this run. No dependencies or migrations changed. No push, deploy, issue close or macOS VM use. Validation output (verbatim result lines; full logs remain in `artifacts/fix1566`): cargo fmt --check ```text exit=0 ``` cargo clippy --all-targets -- -D warnings ```text Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 34s exit=0 ``` cargo test -p calternal-money -p calternal-plugin-money -- --test-threads=4 ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 7.74s test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.31s test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.56s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s test result: ok. 4 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 3.76s test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.55s test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.52s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 184 filtered out; finished in 57.00s test result: ok. 182 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 2573.55s test result: ok. 29 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 6.86s test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.98s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s exit=0 ``` Focused real-Index admission regression ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 38.47s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 184 filtered out; finished in 2.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 32 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s exit=0 ``` Isolated timing-sensitive NLP check ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 32.52s test nlp::tests::parse_and_classify_are_fast ... [perf] typical: parse_task_input=78µs parse_entry_input=101µs [perf] long: parse_task_input=70µs parse_entry_input=261µs [perf] patho: parse_task_input=641µs parse_entry_input=933µs test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 588 filtered out; finished in 0.16s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 12 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 19 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.02s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 12 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s exit=0 ``` Release server build ```text Finished `release` profile [optimized] target(s) in 27m 57s exit=0 ``` Web install and production build ```text ``` Source performance guard ```text perf-lint: PASS; 0 violations; 22128 scoped exceptions exit=0 ``` Focused release-server XUser cleared replay ```text Calendar subscription ownership matrix: 3 mutation rows, 15 owned-ID/missing-ID comparisons; A's settings and fetch state unchanged Two-User OpenAPI matrix: 438 operations classified; 1 operations replayed; 5 A-ID vs missing-ID comparisons across B, C, D and anonymous; 18 #1402 non-private identifier routes reviewed by their own authority class; median absolute timing delta 2.6 ms Job/Mail/quota ownership checks: 0 comparisons; 0 denial failures exit=0 ``` Full release-server XUser matrix ```text Calendar subscription ownership matrix: 3 mutation rows, 15 owned-ID/missing-ID comparisons; A's settings and fetch state unchanged Two-User OpenAPI matrix: 438 operations classified; 227 operations replayed; 1058 A-ID vs missing-ID comparisons across B, C, D and anonymous; 18 #1402 non-private identifier routes reviewed by their own authority class; median absolute timing delta 0.3 ms Job/Mail/quota ownership checks: 127 comparisons; 0 denial failures exit=0 ``` The NLP timing check passed both in the workspace run and alone. A separate server startup/backfill timeout occurred; details follow. Full workspace cargo test -- --test-threads=4 (CARGO_BUILD_JOBS=4) ```text test result: ok. 23 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.11s test result: ok. 141 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 122.88s test result: ok. 52 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.03s test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.76s test result: ok. 141 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 228.22s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.22s test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.18s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.48s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 43.24s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.92s test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.19s test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.14s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.20s test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.39s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.01s test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.80s test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 33.72s test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.87s test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 19.47s test result: ok. 63 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.09s test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.20s test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.28s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s test result: ok. 22 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.14s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s test result: ok. 43 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 29.13s test result: ok. 107 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 25.32s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.21s test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 276.43s test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.80s test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.06s test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.14s test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.57s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s test result: ok. 4 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 3.33s test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.35s test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s test result: ok. 589 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.41s test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.46s test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s test result: ok. 63 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.66s test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.18s test result: ok. 34 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.48s test result: ok. 106 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 12.39s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s test result: ok. 281 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 179.23s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 0.03s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 0.03s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 0.12s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 0.03s test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.58s test result: ok. 172 passed; 0 failed; 10 ignored; 0 measured; 0 filtered out; finished in 20.39s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 184 filtered out; finished in 29.50s test result: ok. 182 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 1612.03s test result: ok. 29 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 6.19s test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.19s test result: ok. 326 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 260.20s test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.81s test result: ok. 45 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.24s test result: ok. 60 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 5.63s test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s test result: ok. 61 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 14.81s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.04s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 297.64s test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s test result: ok. 1 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 2.28s test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s background backfills did not finish: Elapsed(()) test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 288 filtered out; finished in 95.61s test result: FAILED. 276 passed; 1 failed; 12 ignored; 0 measured; 0 filtered out; finished in 129.37s error: test failed, to rerun pass `-p calternal-server --bin calternal-server` exit=101 ``` Exact workspace-binary startup/backfill test alone ```text test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 288 filtered out; finished in 9.46s exit=0 ``` Exact workspace-binary process-isolation wrapper alone ```text background backfills did not finish: Elapsed(()) test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 288 filtered out; finished in 96.38s test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 288 filtered out; finished in 123.16s exit=101 ``` The startup child passed alone in 9.46s, but the wrapper reproduced the timeout. This does not clear the failed full gate. For the merge round: resolve #1569 and run `cargo test -- --test-threads=4` with `CARGO_BUILD_JOBS=4` and the production web build present. No repeated full-suite run was performed. Cleanup (verbatim): ```text Removed 32584 files, 30.6GiB total exit=0 ``` Generated web build, SvelteKit, renderer build, canvas font copies and temporary test files were removed. Worktree is clean. Three atomic implementation/metadata commits are present; origin/dev was fetched and merged once before final gates. NOT READY — full workspace cargo test exits 101; server startup backfill wrapper failure tracked in #1569.
Author
Owner

Deployed to calternal.cloud in merge round 40 (build c0f8da461, 01:38 IST 2026-10-12). Health state ok, /readyz 200, served-page check passed. Pre-deploy backup taken.

Deployed to calternal.cloud in merge round 40 (build c0f8da461, 01:38 IST 2026-10-12). Health state ok, /readyz 200, served-page check passed. Pre-deploy backup taken.
kayg closed this issue 2026-10-11 20:08:41 +00:00
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal-v0#1566
No description provided.