Commit Graph
3380 Commits
Author SHA1 Message Date
weichen f0bcbe018d Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=bc5a1194984433c4098f1961f5280b3d9ee20995.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-15 17:31:29 +00:00
weichen 11973f5244 Require CLI provenance without constraining agent reasoning
Why: Agents must use configured CLIs for implementation and testing, while remaining free to inspect, plan, test, and iterate within bounded scope.

Evidence: Task-card contract tests and the full 430-test governance discovery pass with 19 existing skips; diff-check passes.

Impact: Defines three safe attempts per normal CLI, one emergency Codex attempt, fail-stop terminals, and mandatory apply/admit integration.

Refs: feature/agent-cli-enforcement
2026-10-15 17:24:58 +00:00
weichen 8b30353c4d Enforce execution-agent provenance at integration
Why: Implementation changes must be mechanically tied to a successful CLI transport instead of relying on agents to follow prose.

Evidence: Admission tests went RED without apply/admit; 10 admission, 41 agent-exec, and 62 task tests now pass with exact staged-content matching.

Impact: Adds validated transport fast-forwarding and rejects unproven implementation commits while exempting task cards and approved plan/spec paths.

Refs: feature/agent-cli-enforcement
2026-10-15 17:13:05 +00:00
weichen 2a994ca768 Exercise emergency routing through the Codex adapter
Why: Parser hardening requires the emergency fixture to use the real Codex adapter contract instead of a custom adapter.

Evidence: Agent-exec and config suites pass 58 executions with one opt-in probe skipped; validate and diff-check pass.

Impact: Test fixture only; production validation remains strict.

Refs: feature/agent-cli-enforcement
2026-10-15 16:54:23 +00:00
weichen d54306b65e Harden Codex emergency profile configuration
Why: Normal execution roles must exclude Codex while a single enabled Codex adapter remains available for emergency routing and review.

Evidence: Parser invalid-case tests were RED before validation; all 17 config tests and agent_exec validate now pass.

Impact: Enables three attempts per normal profile, stable Cursor routing, and a validated emergency Codex profile.

Refs: feature/agent-cli-enforcement
2026-10-15 16:45:14 +00:00
weichen 71fd4486f5 Route exhausted work through emergency Codex
Why: Codex CLI is permitted only after every normal execution profile exhausts three safe attempts, with no host implementation fallback.

Evidence: The emergency RED test lacked the fourth Codex attempt before implementation; 32 controller/history executions now pass.

Impact: Adds one emergency attempt for implementation, repair, and test roles while preserving fail-stop statuses and review isolation.

Refs: feature/agent-cli-enforcement
2026-10-15 16:36:50 +00:00
weichen bc5a119498 Merge pull request 'Close merged task cards (feature/card-close-20261015-161718Z)' (#571) from feature/card-close-20261015-161718Z into main
ci / svc-realcombo (push) Successful in 2m1s
ci / test (push) Successful in 5m44s
ci / test-pg (push) Successful in 7m31s
2026-10-15 16:29:38 +00:00
weichen df0cc2d0ac Specify the Codex emergency routing contract
Why: Codex CLI must run only after every regular profile exhausts its three safe attempts.

Evidence: The focused test records three regular failed-clean attempts and fails because no emergency Codex attempt is launched.

Impact: Adds a RED controller contract test and test helper support only.

Refs: feature/agent-cli-enforcement
2026-10-15 16:28:17 +00:00
weichen 09ca1c6ebe Retry recoverable execution profiles
Why: Each non-Codex execution profile must receive three safe attempts before routing advances.

Evidence: The focused RED test observed one retryme launch before implementation; the controller and history suites now pass 31 executions.

Impact: Retries only unavailable and failed-clean outcomes; existing fail-stop statuses remain immediate.

Refs: feature/agent-cli-enforcement
2026-10-15 16:23:06 +00:00
weichen bd531e2981 Close 2 merged task card(s) and archive them
ci / svc-realcombo (pull_request) Successful in 2m12s
ci / test (pull_request) Successful in 6m16s
ci / test-pg (pull_request) Successful in 7m43s
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-duty-matrix.md(PR#566) fix-model-key-secret-overlay.md(PR#569) — merges verified via git log --merges plus Gitea API squash lookup against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
2026-10-15 16:17:18 +00:00
weichen cefd95b307 Specify per-profile retry ordering
Why: The routing controller must retry each safe failed profile three times before advancing.

Evidence: The focused test fails with observed order retryme,thenok instead of three retryme attempts, proving current behavior lacks retries.

Impact: Adds a RED controller contract test only; production behavior is unchanged.

Refs: feature/agent-cli-enforcement
2026-10-15 16:08:20 +00:00
weichen dd3140b391 Add execution retry and emergency profile settings
Why: Routing needs an explicit per-profile attempt limit and a named Codex emergency profile before controller enforcement can be implemented.

Evidence: The new parser test failed on unknown keys before implementation; all 15 config test executions now pass and git diff --check is clean.

Impact: Adds backward-compatible optional configuration fields only; routing behavior is unchanged in this commit.

Refs: feature/agent-cli-enforcement
2026-10-15 15:22:51 +00:00
weichen 343a56e2b6 Record the task card for feature-agent-cli-enforcement
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/feature-agent-cli-enforcement.md; R0=04acb027f6678d9a7a1fbdd3cdacb105d8fbd3ee.

Impact: task metadata only; the feature workspace starts at 04acb027f6.

Refs: .task/feature-agent-cli-enforcement.md
2026-10-15 14:48:10 +00:00
weichen 04acb027f6 Merge pull request 'Wire layered Python environments into service startup'
ci / svc-realcombo (push) Successful in 1m56s
ci / test (push) Successful in 6m50s
ci / test-pg (push) Successful in 9m24s
Review: interpreter path, immutable layers, approval, and startup mounting match the plan. CI test, test-pg, and svc-realcombo succeeded on 9c7fa27.
2026-10-15 14:24:56 +00:00
weichenandCursor 9c7fa2730e Keep service start from downloading the Python base layer
ci / svc-realcombo (pull_request) Successful in 2m2s
ci / test (pull_request) Successful in 5m49s
ci / test-pg (pull_request) Successful in 8m54s
Why: env ensure downloads an interpreter and wheels. The real-combination start test allows 120 seconds, and that download made rc1 start time out.
Evidence: CI job 5184 timed out in test_U3_real_agent_identity_lifecycle_sqlite on scripts/svc.sh rc1 start.
Impact: Start only mounts a base layer that already exists. The first build is an explicit env ensure, run outside start.
Refs: Agent-System-Dev pull 570
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 14:14:48 +00:00
weichenandCursor bd18e11836 Allow the exec env package in the architecture baseline
ci / test-pg (pull_request) Failing after 1m26s
ci / svc-realcombo (pull_request) Failing after 4m8s
ci / test (pull_request) Successful in 5m47s
Why: app, server, and tools now call the layered Python environment. The dependency ratchet rejects those edges until they are recorded.
Evidence: CI job 5179 failed test-boundaries on exactly these three edges. scripts/lint-architecture.sh passes locally after the update.
Impact: The allowlist grows by three edges. No other package may import execenv until it is added the same way.
Refs: Agent-System-Dev pull 570
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 14:08:55 +00:00
weichenandCursor f4cba944af Point the backend gitlink at the storage migration fix
ci / test (pull_request) Failing after 3m51s
ci / svc-realcombo (pull_request) Failing after 4m8s
ci / test-pg (pull_request) Failing after 9m43s
Why: The combination build has to include the exec env tables in the SQLite-to-Postgres copy list, or backend CI and the Dev suite both reject the candidate.
Evidence: Backend ab12fea follows the storage-migrate test that CI run 3343 failed.
Impact: Only the backend gitlink moves.
Refs: Agent-System-Backend pull 206
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 14:04:09 +00:00
weichenandCursor f88cc7fb37 Sync layered-env gitlinks with current component mains
ci / test-pg (pull_request) Failing after 1m26s
ci / test (pull_request) Failing after 3m49s
ci / svc-realcombo (pull_request) Failing after 3m57s
Why: Backend, frontend, and documents each gained one commit on main after this branch was cut. The feature commits have to contain those mains so the pull requests can merge.
Evidence: git merge origin/main in each submodule completed with the ort strategy and no conflicts.
Impact: Gitlinks move to the merge commits. The layered environment changes themselves are unchanged.
Refs: .task/feature-layered-python-env.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 14:01:33 +00:00
weichenandCursor 3d6de0c4ac Wire the layered Python environment into service startup
Why: The dependency layer already existed in the backend, but service startup never passed it, so the sandbox could not import the packages the host already had.
Evidence: SELF go tests recorded on the backend commit. svc.sh only exports the env root after env ensure leaves a current base layer, and a failed download does not block startup.
Impact: Instances share runtime/envs. Existing exec= lines are left as stored. Proposal, backend, and frontend gitlinks move to this branch.
Refs: .task/feature-layered-python-env.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 13:53:00 +00:00
weichen 64a50cf532 Merge pull request 'Warn when a seeded model key does not become active' (#569) from fix/model-key-secret-overlay into main
ci / svc-realcombo (push) Successful in 1m48s
ci / test-pg (push) Failing after 2m0s
ci / test (push) Successful in 6m21s
Why: seeding a new model key left the old secret row in force.
Evidence: CI run 3341 jobs test, test-pg, and svc-realcombo succeeded on 34152f740f. Backend #205 is 11c337d3.
Impact: seed warns on fingerprint mismatch; backend gitlink keeps the adoption fix.
Refs: fix/model-key-secret-overlay
2026-10-15 11:52:25 +00:00
weichenandCursor 34152f740f Record the local suite result
ci / svc-realcombo (pull_request) Successful in 1m49s
ci / test (pull_request) Successful in 5m37s
ci / test-pg (pull_request) Successful in 7m26s
Why: The full local suite exited 2, and the card has to keep that receipt instead of implying a pass.
Evidence: make evidence for make test, exit 2, receipt 11513cd3. The two errors are agent-exec redaction of a 3-digit TOKEN, and CI on fc29206 is the gate.
Impact: Task card only.
Refs: fix/model-key-secret-overlay
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 11:29:42 +00:00
weichenandCursor fc2920686a Record the pull requests and review
ci / svc-realcombo (pull_request) Successful in 1m40s
ci / test (pull_request) Successful in 5m30s
ci / test-pg (pull_request) Successful in 8m44s
Why: The card is the main record, and the review has to name the objects it read.
Evidence: Backend PR 205 and Dev PR 569 exist; review 68215ca8 found no blocking defect.
Impact: Task card only.
Refs: fix/model-key-secret-overlay
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 11:07:02 +00:00
weichenandCursor e895c4b64a Record the secret-key regression evidence
ci / svc-realcombo (pull_request) Successful in 1m49s
ci / test (pull_request) Successful in 5m35s
ci / test-pg (pull_request) Successful in 7m29s
Why: The sync checkpoint landed after the first local tests, so the card needs a rerun against the merged head.
Evidence: make evidence for the settings/runtime tests and the seed fingerprint tests, both exit 0 (SELF).
Impact: Task card only.
Refs: fix/model-key-secret-overlay
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 10:35:14 +00:00
weichen cf8d86c22c Record the sync checkpoint
Why: bind the task validation checkpoint to the integration baseline.

Evidence: SELF recursive component checks; sync_base=dc86a023605d00fccca1b9679b4cdad96373bdee; before_record=6b2173b9dc33fb8ad4fe72bac1838266ef8f8371.

Impact: task metadata only.

Refs: .task/fix-model-key-secret-overlay.md
2026-10-15 10:34:28 +00:00
weichen 6b2173b9dc Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=dc86a023605d00fccca1b9679b4cdad96373bdee.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-15 10:33:58 +00:00
weichenandCursor 265bcdcbba Warn when a seeded model key does not become active
Why: Settings plaintext loses to secret_keys, so replacing the env key did not change the key a conversation actually sent.
Evidence: python3 -m unittest tests.test_svc.SvcDbRecoveryTests.test_seed_replaces_old_system_secret tests.test_svc.SvcDbRecoveryTests.test_seed_warns_when_old_secret_stays_active tests.test_svc.SvcDbRecoveryTests.test_seed_puts_without_credentials_when_auth_off (SELF).
Impact: Embedded databases now compare the active system secret fingerprint after seeding, and the backend gitlink carries the adoption fix.
Refs: fix/model-key-secret-overlay
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 10:33:28 +00:00
weichen dc86a02360 Merge pull request 'Point project settings at the duty matrix' (#566) from feature/rdm-duty-matrix into main
ci / svc-realcombo (push) Successful in 1m47s
ci / test (push) Successful in 5m56s
ci / test-pg (push) Successful in 7m41s
2026-10-15 09:43:29 +00:00
weichenandCursor bae71d39ff Record the sync after the goal card was archived
ci / svc-realcombo (pull_request) Successful in 2m7s
ci / test (pull_request) Successful in 5m55s
ci / test-pg (pull_request) Successful in 8m11s
Why: origin/main archived a task card after the combo test, and the branch has to contain that main.
Evidence: SELF make task-sync exit 0, sync_base=efa8f2b3322490c8c1a49707ed3f7a3970927cf8, changed=1, and the merge only archived a task card.
Impact: no product pin or duty code changed.
Refs: .task/feature-rdm-duty-matrix.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 09:33:30 +00:00
weichen e1fb4d1dfb Record the sync checkpoint
Why: bind the task validation checkpoint to the integration baseline.

Evidence: SELF recursive component checks; sync_base=efa8f2b3322490c8c1a49707ed3f7a3970927cf8; before_record=f515b416f81698dc299ace433b532f31c89eb657.

Impact: task metadata only.

Refs: .task/feature-rdm-duty-matrix.md
2026-10-15 09:33:21 +00:00
weichen f515b416f8 Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=efa8f2b3322490c8c1a49707ed3f7a3970927cf8.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-15 09:32:58 +00:00
weichenandCursor dd5c84d3f5 Record the combo test after goal-first delivery
Why: merging origin/main changed governance tests, so the combo had to be run again.
Evidence: SELF make test and make build exited 0 on 87a4559e0f after unsetting a local telemetry variable that corrupted one receipt.
Impact: the task card stores the pass and the earlier failure; duty pins are unchanged.
Refs: .task/feature-rdm-duty-matrix.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 09:32:55 +00:00
weichen efa8f2b332 Merge pull request 'Close the goal-first delivery task card' (#568) from feature/card-close-goal-first-delivery into main
ci / svc-realcombo (push) Successful in 1m47s
ci / test (push) Successful in 5m49s
ci / test-pg (push) Successful in 7m53s
2026-10-15 09:30:52 +00:00
weichen ba56534a19 Close the goal-first delivery task card
ci / svc-realcombo (pull_request) Successful in 2m1s
ci / test (pull_request) Successful in 5m43s
ci / test-pg (pull_request) Successful in 7m45s
Why: PR #567 is merged and its task card must be backfilled and archived without touching other pending cards.

Evidence: Exact HEAD 3ffd641 passed test, test-pg, and svc-realcombo; merge d51828a has the same tree as the candidate; task-finish recycled the task worktree and branches.

Impact: Moves only feature-goal-first-delivery.md to .task/archive and records final delivery evidence.

Refs: #567, #518
2026-10-15 09:22:42 +00:00
weichenandCursor 87a4559e0f Record the sync after goal-first delivery landed
Why: origin/main moved and the duty branch has to contain it before merge.
Evidence: SELF make task-sync exit 0, sync_base=d51828a73aaebd15a52da7dc5f6b63ad7188ad9a, changed=1.
Impact: the branch includes the goal-first delivery scripts; duty pins are unchanged.
Refs: .task/feature-rdm-duty-matrix.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 09:21:32 +00:00
weichen ef15243f8a Record the sync checkpoint
Why: bind the task validation checkpoint to the integration baseline.

Evidence: SELF recursive component checks; sync_base=d51828a73aaebd15a52da7dc5f6b63ad7188ad9a; before_record=adaca1c9bad441d944e203de22f7b1a6d6b128c5.

Impact: task metadata only.

Refs: .task/feature-rdm-duty-matrix.md
2026-10-15 09:21:09 +00:00
weichen adaca1c9ba Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=d51828a73aaebd15a52da7dc5f6b63ad7188ad9a.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-15 09:20:39 +00:00
weichenandCursor a8b921c7de Record verification of the final duty matrix pins
Why: the combo test has to cover the frontend and documents commits that contain origin/main.
Evidence: SELF make test and make build exited 0 on 92e809c6dd.
Impact: the task card stores those receipts; product pins are unchanged.
Refs: .task/feature-rdm-duty-matrix.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 09:20:35 +00:00
weichen d51828a73a Merge pull request 'Make delivery goal-first and route execution through project CLIs' (#567) from feature/goal-first-delivery into main
ci / svc-realcombo (push) Successful in 2m10s
ci / test (push) Successful in 6m3s
ci / test-pg (push) Successful in 8m21s
2026-10-15 09:19:33 +00:00
weichen 92e809c6dd Pin the duty matrix branches that contain main
Why: frontend and documents were updated so their heads contain origin/main before merge.
Evidence: SELF frontend vitest 293 passed on 04269ee; both pull requests merged.
Impact: modules/frontend is 04269ee and modules/documents is 5f41149.
Refs: .task/feature-rdm-duty-matrix.md
2026-10-15 09:15:19 +00:00
weichenandCursor 404834f536 Record the final duty matrix sync receipt
ci / svc-realcombo (pull_request) Successful in 2m10s
ci / test (pull_request) Successful in 5m33s
ci / test-pg (pull_request) Successful in 8m26s
Why: the branch must contain origin/main before it can be merged.
Evidence: SELF make task-sync exit 0, sync_base=919f75cf7b39ca357e212a08a0ba5ba3d9a79b51, tested_head=ba1bdfb3c7a8a7ddf042c5915ec4f2db685a3e95, changed=0.
Impact: the task card stores the sync receipt; product pins are unchanged.
Refs: .task/feature-rdm-duty-matrix.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 09:13:36 +00:00
weichenandCursor ba1bdfb3c7 Record combo test and build receipts
Why: the pin for the duty draft recovery needs evidence written by the evidence tool.
Evidence: SELF make test and make build both exited 0 on 692b7a0239.
Impact: the task card stores those receipts; product pins are unchanged.
Refs: .task/feature-rdm-duty-matrix.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 09:13:02 +00:00
weichen 3ffd641755 Treat zombie workers as terminated in tests
ci / svc-realcombo (pull_request) Successful in 1m51s
ci / test (pull_request) Successful in 6m4s
ci / test-pg (pull_request) Successful in 8m12s
Why: Gitea containers may leave SIGKILLed children as zombies until PID 1 reaps them, while kill -0 still reports success.

Evidence: Both timeout tests and the full AgentExecControllerTests suite pass; git diff --check passes.

Impact: Changes test liveness detection only; genuinely running child processes still fail the assertions.

Refs: #567
2026-10-15 09:10:24 +00:00
weichenandCursor 692b7a0239 Pin the duty draft recovery in frontend
Why: the combo has to build the frontend that drops a dirty duty draft when a save result is unknown.
Evidence: SELF frontend vitest, tsc, knip, and Playwright passed on 985fc0f.
Impact: modules/frontend moves from 6093beb to 985fc0f.
Refs: .task/feature-rdm-duty-matrix.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 09:06:30 +00:00
weichen 29e7cf185e Make transport commits independent of Git identity
ci / svc-realcombo (pull_request) Successful in 2m1s
ci / test (pull_request) Failing after 3m50s
ci / test-pg (pull_request) Successful in 7m56s
Why: PR #567 CI runs without a global Git user identity, causing every successful agent transport commit to fail with exit 128.

Evidence: The focused no-identity regression plus AgentExecControllerTests and AgentExecHistoryTests pass (30 executions total); git diff --check passes.

Impact: Supplies a deterministic non-secret identity only to git commit-tree; routing, receipts, and transport validation are unchanged.

Refs: #567
2026-10-15 08:59:17 +00:00
weichenandCursor a8402af3fb Record duty matrix verification receipts
ci / svc-realcombo (pull_request) Successful in 2m1s
ci / test (pull_request) Successful in 5m31s
ci / test-pg (pull_request) Successful in 7m58s
Why: acceptance evidence has to be produced by the evidence tool after the branch contains origin/main.
Evidence: SELF make test, make build, RDM package tests, a fresh PostgreSQL legacy migration, and three Playwright duty flows all exited 0.
Impact: the task card stores those receipts; product code is unchanged.
Refs: .task/feature-rdm-duty-matrix.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 08:59:07 +00:00
weichen e5994cd8ae Record the task card for fix-model-key-secret-overlay
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/fix-model-key-secret-overlay.md; R0=919f75cf7b39ca357e212a08a0ba5ba3d9a79b51.

Impact: task metadata only; the feature workspace starts at 919f75cf7b.

Refs: .task/fix-model-key-secret-overlay.md
2026-10-15 08:56:32 +00:00
weichen b4139a56d2 Link the delivery pull request
ci / svc-realcombo (pull_request) Successful in 2m14s
ci / test (pull_request) Failing after 4m0s
ci / test-pg (pull_request) Successful in 8m4s
Why: Make PR #567 the task card primary delivery record before CI and merge.

Evidence: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/567

Impact: Updates only task metadata; implementation behavior is unchanged.

Refs: #567
2026-10-15 08:43:23 +00:00
weichen 8184275cd2 Record independent delivery review
ci / svc-realcombo (pull_request) Successful in 2m13s
ci / test (pull_request) Failing after 3m58s
ci / test-pg (pull_request) Successful in 8m16s
Why: Record the fixed-candidate validation and independent fresh-session review before opening the delivery PR.

Evidence: PI MiniMax-M3 session 01a13eb4-5e25-70e9-95ae-2342ec525fac reported NO_FINDINGS for fec42e0320c458a8aa060ce9295f332a3ec6d58d; make test and make build passed.

Impact: Updates only delivery metadata; implementation behavior is unchanged.

Refs: feature/goal-first-delivery
2026-10-15 08:41:57 +00:00
weichenandCursor 1d8f1a5173 Record the duty matrix sync receipt
Why: acceptance needs a task-sync receipt taken after origin/main is contained.
Evidence: SELF make task-sync exit 0, sync_base=919f75cf7b39ca357e212a08a0ba5ba3d9a79b51, tested_head=4163e2291818b5689afdf9ce651542e9680d973d, changed=0.
Impact: the task card stores the sync receipt; product pins are unchanged.
Refs: .task/feature-rdm-duty-matrix.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 08:40:04 +00:00
weichenandCursor 4163e22918 Merge origin/main into the duty matrix branch
Why: acceptance has to include the current main, including newer backend, core, and UI pins, while the duties page stays assignment-only.
Evidence: SELF frontend vitest 292 passed after merging the duties conflict; the earlier task-sync receipt records the submodule conflict that this commit resolves.
Impact: frontend pin is 6093beb; backend, core, and UI follow origin/main.
Refs: .task/feature-rdm-duty-matrix.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 08:39:25 +00:00