Run database integration pool for migration and test PRs #804

Open
toasterson wants to merge 6 commits from ci/db-integration-policy-20261019 into main
Owner

Current exact head: f088e66c0b481e1a348ded756f9a14dead8eebcd. Current main b083a89ad8224c844a3db37e38167e21184aa163 merged normally, with no history rewrite. Focused main repair #805 is a dependency, addressing only introduced Q1/Q2 fixture lifecycle calls and the Q4 denial expectation. Human order: #805 → #802 → #803 → #804.

Local final-head cargo check -p anima-server --lib, shell syntax and all8 policy/profile/shallow-history tests PASS. Production policy is unchanged in the main/dependency refresh. A test-only normal follow-up adds the captured fallback reason to shallow-fixture failures and prevents generated bytecode from dirtying the checkout. One initial local shallow fixture fell back to ALL; bounded instrumented diagnostics did not reproduce it, and no code/infrastructure root cause is asserted. The original failed receipt is retained as pr-804-first-refresh-exact.log.receipt.json. Final exact-head8 policy tests pass. All validated CI jobs are preserved; scheduled/explicit nightly defaults remain6 and libtest defaults, with reduced configurable2/1 profile only on policy-promoted commits.

Measured promoted-profile full-series nightly8f262bca: pool5213s and5303s (86m53s /88m23s); runner6083.530548s and6123.978662s (101m23.5s /102m04.0s). Runner wall time is measured from embedded runner-start to workflow-failed timestamps; success-only job.sh wall-time output was not reached. These are completed failed runs, not ongoing heartbeat durations. Each pool passed57/64 categories, failing7 files already attributed by exact pre-series/current-main runtime comparison. All new series PG categories passed. None of the42 uncovered-file inventory ran in these pools; the inventory above is retained, with no silent activation or bulk repair.

Local receipt log SHA256 de979c85ca37c8c9452f7cc33708f8acf3658c1186e29f5ee4238f3140346dfb. Exact-head remote CI/review remains a distinct operator gate. No merge/deployment/live recovery by this agent.

PRs that change a migration or a path under tests/ now run the existing PostgreSQL/Docker integration pool in nightly mode through the regular CI test job. Previously commit-mode green proved unit tests only, even for database changes. The policy uses the full PR merge-base diff rather than event.before, so a later source-only push cannot silently drop integration coverage. Unknown history selects integration; explicit operator mode overrides remain available.

This adds no extra workflow or fleet slot. Scheduled, tagged and explicit nightly runs retain the existing six-binary default and libtest default threads. Only a commit run promoted by this policy uses the smaller integration-pool profile (default two binaries, one libtest thread). SOLSTICE_PROMOTED_TEST_JOBS and SOLSTICE_PROMOTED_RUST_TEST_THREADS configure those defaults; the latter accepts default to leave libtest unchanged. Explicit SOLSTICE_TEST_JOBS and RUST_TEST_THREADS overrides win in either profile; six and other positive binary counts remain supported with no upper hard cap. Profile selection is logged. Existing timeouts, heartbeats and isolated databases/containers remain. The regular CI workflow runs job.sh only, so automatic integration does not invoke the Nightly workflow's image publication jobs.

Shallow-history recovery fetches the checked-out tip plus main with --deepen=50, then --deepen=200, before falling back. Each fetch has a 20-second timeout; no unbounded history loop or all-branches fetch. Diagnostics identify the missing-history/fetch failure, successful recovery, or final ALL fallback, on stderr without changing the policy's machine-readable stdout.

Validation: eight Python/shell policy tests pass, including a real shallow file:// clone of a diverged source-only branch, bounded timed-out fetches with a visible fallback reason, full-PR test coverage after source-only follow-ups, scheduled/explicit concurrency defaults, configurable promoted defaults and explicit six-binary overrides. Shell syntax and diff checks pass. No local Cargo build is needed or performed for this follow-up. Current exact-head CI remains pending after the normal follow-up push.

The all-nine validation-v2 merged-tree nightly receipt requested by CoS will be recorded in patches-anima.md and linked here once it actually executes, with job ids, category results, overall wall time and pool wall time. job.sh now emits an overall wall-time line alongside its existing pool and phase durations; no measured final nightly duration exists yet. No main merge or deployment is performed.

Coverage inventory at #802 reviewed head839423cee5554ead340136aadeed8065ce113226:74 server integration files use TestContext/require_docker;32 have both a compiled target and a nightly add_job; the following42 are never executed by either CI mode. This PR records that pre-existing debt without adding all42 to the fleet. Inventory is also checked in at .solstice/uncovered-docker-tests.txt. Named PostgreSQL/Docker suites now become PR runtime gates when their PR touches schema/tests; the unlisted42 remain unlisted.

  • crates/anima-server/tests/auth_test.rs
  • crates/anima-server/tests/burst_over_assignment_test.rs
  • crates/anima-server/tests/cancel_session_test.rs
  • crates/anima-server/tests/companion_e2e_test.rs
  • crates/anima-server/tests/context_assembly_test.rs
  • crates/anima-server/tests/dashboard_active_session_test.rs
  • crates/anima-server/tests/delegation_reporting_test.rs
  • crates/anima-server/tests/direct_chat_registration.rs
  • crates/anima-server/tests/dispatch_priority_test.rs
  • crates/anima-server/tests/document_deliverable_test.rs
  • crates/anima-server/tests/document_flow_test.rs
  • crates/anima-server/tests/double_gate_test.rs
  • crates/anima-server/tests/external_merge_reconciliation_test.rs
  • crates/anima-server/tests/forgejo_delivery_authority_test.rs
  • crates/anima-server/tests/global_listing_test.rs
  • crates/anima-server/tests/in_flight_clock_test.rs
  • crates/anima-server/tests/local_workflow_test.rs
  • crates/anima-server/tests/mention_test.rs
  • crates/anima-server/tests/operator_scheduling_test.rs
  • crates/anima-server/tests/phase_kind_dispatch_test.rs
  • crates/anima-server/tests/phase_rollback_test.rs
  • crates/anima-server/tests/pr_identity_repair_test.rs
  • crates/anima-server/tests/project_test.rs
  • crates/anima-server/tests/rbac_test.rs
  • crates/anima-server/tests/reviewer_only_test.rs
  • crates/anima-server/tests/seed_convergence_test.rs
  • crates/anima-server/tests/self_advancement_test.rs
  • crates/anima-server/tests/session_leak_test.rs
  • crates/anima-server/tests/session_rebind_test.rs
  • crates/anima-server/tests/session_reconciliation_test.rs
  • crates/anima-server/tests/slice_progress_test.rs
  • crates/anima-server/tests/subthread_test.rs
  • crates/anima-server/tests/thread_list_test.rs
  • crates/anima-server/tests/thread_mention_roster.rs
  • crates/anima-server/tests/turn_failure_test.rs
  • crates/anima-server/tests/upload_transcript_seshat_test.rs
  • crates/anima-server/tests/wi_509_live_graph_rewire_test.rs
  • crates/anima-server/tests/wi_753_dependency_delivery_test.rs
  • crates/anima-server/tests/wi_executor_resolution_test.rs
  • crates/anima-server/tests/workflow_selection_test.rs
  • crates/anima-server/tests/workflow_stage_test.rs
  • crates/anima-server/tests/workitem_dependency_test.rs

Integration refresh (2026-10-19): normal main/dependency merge commits, no force push. Main is 8d3eb5855f. This PR head is unchanged and merges cleanly. Its existing CI-policy commit is already an ancestor of the full #803 validation tree, as required to run that nightly pool. Shell/Rust syntax and diff checks pass; the existing exact-head commit/conflict Solstice receipts at3938abb3 remain current because this head did not change.

<!-- cos-final-train:start --> Current exact head: `f088e66c0b481e1a348ded756f9a14dead8eebcd`. Current main `b083a89ad8224c844a3db37e38167e21184aa163` merged normally, with no history rewrite. Focused main repair #805 is a dependency, addressing only introduced Q1/Q2 fixture lifecycle calls and the Q4 denial expectation. Human order: #805 → #802 → #803 → #804. Local final-head cargo check -p anima-server --lib, shell syntax and all8 policy/profile/shallow-history tests PASS. Production policy is unchanged in the main/dependency refresh. A test-only normal follow-up adds the captured fallback reason to shallow-fixture failures and prevents generated bytecode from dirtying the checkout. One initial local shallow fixture fell back to __ALL__; bounded instrumented diagnostics did not reproduce it, and no code/infrastructure root cause is asserted. The original failed receipt is retained as pr-804-first-refresh-exact.log.receipt.json. Final exact-head8 policy tests pass. All validated CI jobs are preserved; scheduled/explicit nightly defaults remain6 and libtest defaults, with reduced configurable2/1 profile only on policy-promoted commits. Measured promoted-profile full-series nightly8f262bca: pool5213s and5303s (86m53s /88m23s); runner6083.530548s and6123.978662s (101m23.5s /102m04.0s). Runner wall time is measured from embedded runner-start to workflow-failed timestamps; success-only job.sh wall-time output was not reached. These are completed failed runs, not ongoing heartbeat durations. Each pool passed57/64 categories, failing7 files already attributed by exact pre-series/current-main runtime comparison. All new series PG categories passed. None of the42 uncovered-file inventory ran in these pools; the inventory above is retained, with no silent activation or bulk repair. Local receipt log SHA256 `de979c85ca37c8c9452f7cc33708f8acf3658c1186e29f5ee4238f3140346dfb`. Exact-head remote CI/review remains a distinct operator gate. No merge/deployment/live recovery by this agent. <!-- cos-final-train:end --> PRs that change a migration or a path under tests/ now run the existing PostgreSQL/Docker integration pool in nightly mode through the regular CI test job. Previously commit-mode green proved unit tests only, even for database changes. The policy uses the full PR merge-base diff rather than event.before, so a later source-only push cannot silently drop integration coverage. Unknown history selects integration; explicit operator mode overrides remain available. This adds no extra workflow or fleet slot. Scheduled, tagged and explicit nightly runs retain the existing six-binary default and libtest default threads. Only a commit run promoted by this policy uses the smaller integration-pool profile (default two binaries, one libtest thread). SOLSTICE_PROMOTED_TEST_JOBS and SOLSTICE_PROMOTED_RUST_TEST_THREADS configure those defaults; the latter accepts `default` to leave libtest unchanged. Explicit SOLSTICE_TEST_JOBS and RUST_TEST_THREADS overrides win in either profile; six and other positive binary counts remain supported with no upper hard cap. Profile selection is logged. Existing timeouts, heartbeats and isolated databases/containers remain. The regular CI workflow runs job.sh only, so automatic integration does not invoke the Nightly workflow's image publication jobs. Shallow-history recovery fetches the checked-out tip plus main with --deepen=50, then --deepen=200, before falling back. Each fetch has a 20-second timeout; no unbounded history loop or all-branches fetch. Diagnostics identify the missing-history/fetch failure, successful recovery, or final __ALL__ fallback, on stderr without changing the policy's machine-readable stdout. Validation: eight Python/shell policy tests pass, including a real shallow file:// clone of a diverged source-only branch, bounded timed-out fetches with a visible fallback reason, full-PR test coverage after source-only follow-ups, scheduled/explicit concurrency defaults, configurable promoted defaults and explicit six-binary overrides. Shell syntax and diff checks pass. No local Cargo build is needed or performed for this follow-up. Current exact-head CI remains pending after the normal follow-up push. The all-nine validation-v2 merged-tree nightly receipt requested by CoS will be recorded in patches-anima.md and linked here once it actually executes, with job ids, category results, overall wall time and pool wall time. job.sh now emits an overall wall-time line alongside its existing pool and phase durations; no measured final nightly duration exists yet. No main merge or deployment is performed. Coverage inventory at #802 reviewed head839423cee5554ead340136aadeed8065ce113226:74 server integration files use TestContext/require_docker;32 have both a compiled target and a nightly add_job; the following42 are never executed by either CI mode. This PR records that pre-existing debt without adding all42 to the fleet. Inventory is also checked in at .solstice/uncovered-docker-tests.txt. Named PostgreSQL/Docker suites now become PR runtime gates when their PR touches schema/tests; the unlisted42 remain unlisted. - `crates/anima-server/tests/auth_test.rs` - `crates/anima-server/tests/burst_over_assignment_test.rs` - `crates/anima-server/tests/cancel_session_test.rs` - `crates/anima-server/tests/companion_e2e_test.rs` - `crates/anima-server/tests/context_assembly_test.rs` - `crates/anima-server/tests/dashboard_active_session_test.rs` - `crates/anima-server/tests/delegation_reporting_test.rs` - `crates/anima-server/tests/direct_chat_registration.rs` - `crates/anima-server/tests/dispatch_priority_test.rs` - `crates/anima-server/tests/document_deliverable_test.rs` - `crates/anima-server/tests/document_flow_test.rs` - `crates/anima-server/tests/double_gate_test.rs` - `crates/anima-server/tests/external_merge_reconciliation_test.rs` - `crates/anima-server/tests/forgejo_delivery_authority_test.rs` - `crates/anima-server/tests/global_listing_test.rs` - `crates/anima-server/tests/in_flight_clock_test.rs` - `crates/anima-server/tests/local_workflow_test.rs` - `crates/anima-server/tests/mention_test.rs` - `crates/anima-server/tests/operator_scheduling_test.rs` - `crates/anima-server/tests/phase_kind_dispatch_test.rs` - `crates/anima-server/tests/phase_rollback_test.rs` - `crates/anima-server/tests/pr_identity_repair_test.rs` - `crates/anima-server/tests/project_test.rs` - `crates/anima-server/tests/rbac_test.rs` - `crates/anima-server/tests/reviewer_only_test.rs` - `crates/anima-server/tests/seed_convergence_test.rs` - `crates/anima-server/tests/self_advancement_test.rs` - `crates/anima-server/tests/session_leak_test.rs` - `crates/anima-server/tests/session_rebind_test.rs` - `crates/anima-server/tests/session_reconciliation_test.rs` - `crates/anima-server/tests/slice_progress_test.rs` - `crates/anima-server/tests/subthread_test.rs` - `crates/anima-server/tests/thread_list_test.rs` - `crates/anima-server/tests/thread_mention_roster.rs` - `crates/anima-server/tests/turn_failure_test.rs` - `crates/anima-server/tests/upload_transcript_seshat_test.rs` - `crates/anima-server/tests/wi_509_live_graph_rewire_test.rs` - `crates/anima-server/tests/wi_753_dependency_delivery_test.rs` - `crates/anima-server/tests/wi_executor_resolution_test.rs` - `crates/anima-server/tests/workflow_selection_test.rs` - `crates/anima-server/tests/workflow_stage_test.rs` - `crates/anima-server/tests/workitem_dependency_test.rs` <!-- anima-main-refresh-20261019:begin --> Integration refresh (2026-10-19): normal main/dependency merge commits, no force push. Main is 8d3eb5855f74c616d176b788e2ca881d2f933e3f. This PR head is unchanged and merges cleanly. Its existing CI-policy commit is already an ancestor of the full #803 validation tree, as required to run that nightly pool. Shell/Rust syntax and diff checks pass; the existing exact-head commit/conflict Solstice receipts at3938abb3 remain current because this head did not change. <!-- anima-main-refresh-20261019:end -->
Select integration CI from complete migration and test PR diffs
All checks were successful
CI / conflict-check (push) Successful in 5m35s
CI / test (push) Successful in 6m55s
3f7c647aab
Scope integration limits to promoted commits and deepen shallow PR history
All checks were successful
CI / conflict-check (push) Successful in 1m23s
CI / test (push) Successful in 6m47s
3938abb3f3
Merge remote-tracking branch 'origin/main' into ci/db-integration-policy-20261019
Some checks failed
CI / conflict-check (push) Has been cancelled
CI / test (push) Has been cancelled
be73ff37e6
Fix Q1 and Q4 integration fixtures after the merge train
Some checks failed
CI / test (push) Has been cancelled
CI / conflict-check (push) Has been cancelled
7e39db1076
Bind the limit fixture to the canonical graph phase instance
Some checks failed
CI / conflict-check (push) Has been cancelled
CI / test (push) Has been cancelled
a022fdeb1d
Use canonical lifecycle setup for the Q2 dispatch fixture too
All checks were successful
CI / conflict-check (push) Successful in 39s
CI / test (push) Successful in 10m12s
378d9e154a
Merge branch 'fix/qseries-merged-integration-fixtures-20261019' into ci/db-integration-policy-20261019
Some checks failed
CI / conflict-check (push) Has been cancelled
CI / test (push) Has been cancelled
5cf998de9d
Keep policy fixtures clean and report shallow fallback diagnostics
All checks were successful
CI / conflict-check (push) Successful in 3m47s
CI / test (push) Successful in 27m0s
f088e66c0b
All checks were successful
CI / conflict-check (push) Successful in 3m47s
CI / test (push) Successful in 27m0s
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin ci/db-integration-policy-20261019:ci/db-integration-policy-20261019
git switch ci/db-integration-policy-20261019

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff ci/db-integration-policy-20261019
git switch ci/db-integration-policy-20261019
git rebase main
git switch main
git merge --ff-only ci/db-integration-policy-20261019
git switch ci/db-integration-policy-20261019
git rebase main
git switch main
git merge --no-ff ci/db-integration-policy-20261019
git switch main
git merge --squash ci/db-integration-policy-20261019
git switch main
git merge --ff-only ci/db-integration-policy-20261019
git switch main
git merge ci/db-integration-policy-20261019
git push origin main
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
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
toasterson/Anima!804
No description provided.