Commit Graph
2159 Commits
Author SHA1 Message Date
weichen be50859c43 Pin the U6 component set (backend #163, frontend #62) 2026-10-12 02:17:16 +00:00
weichen 5972d5636f Record the task card for feature-generative-ui-u6
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/feature-generative-ui-u6.md; R0=a1ac948155eb8957a87f37d8da4a9feb870dd532.

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

Refs: .task/feature-generative-ui-u6.md
2026-10-12 02:05:42 +00:00
weichen a1ac948155 Merge pull request 'Deliver the approved service restart and recovery plan (documents pin + task card)' (#403) from feature/service-restart-recovery-plan into main
ci / test-pg (push) Successful in 1m5s
ci / test (push) Successful in 2m42s
Reviewed-on: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/403
2026-10-12 02:02:24 +00:00
weichen fee25043ed Record the delivery PRs in the task card
ci / test-pg (pull_request) Successful in 1m19s
ci / test (pull_request) Successful in 2m50s
Why: the card is the single master record and must carry the PR links once created.

Evidence: SELF - Documents PR #75 and Dev PR #403 created via API; merge order #75 then #403.

Impact: task card only.

Refs: PR #75 #403
2026-10-12 01:44:30 +00:00
weichen 8493a19487 Record the push grant and the pins evidence before opening PRs
ci / test-pg (pull_request) Successful in 1m7s
ci / test (pull_request) Successful in 2m47s
Why: the user granted push/PR authorization on 2026-10-12; the card must reflect it and carry the test-segment receipt before requesting review.

Evidence: SELF - make test-pins receipt exit 0 (pins ok; nested development-guidelines warns are pre-existing); precheck and task-sync receipts already in card.

Impact: task card only.

Refs: AGENTS.md 完成声明三段输出
2026-10-12 01:43:45 +00:00
weichen dbbd26be49 Record the sync checkpoint
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=89174a0f5c28ff7f49c794f37ea7e9528f9b526e; candidate=ce31529cbe43f75d9944b61024b281792e7c8bf1.

Impact: task metadata only.

Refs: .task/feature-service-restart-recovery-plan.md
2026-10-12 01:30:08 +00:00
weichen ce31529cbe Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=89174a0f5c28ff7f49c794f37ea7e9528f9b526e.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-12 01:29:42 +00:00
weichen e751b83083 Update the next-task tracking after the svc-autorecover merge
Why: U2's first slice landed via main (PR #396/#401); the plan card's next-task line must point at the remaining U2 delta instead of the closed task.

Evidence: SELF - documents gitlink advanced; merged main range 555fb2162f..c622372 (96 commits) inspected.

Impact: task metadata and submodule pointer only.

Refs: .task/archive/feature-svc-autorecover.md
2026-10-12 01:29:31 +00:00
weichen 89174a0f5c Merge pull request 'Close merged task cards (feature/card-close-20261011-142628Z)' (#366) from feature/card-close-20261011-142628Z into main
ci / test-pg (push) Successful in 1m5s
ci / test (push) Successful in 2m43s
Reviewed-on: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/366
2026-10-12 01:28:10 +00:00
weichen d6d857bb5b Record the approval outcome in the task card and pin documents
Why: stage-review table, phase line and next-task line must carry the 2026-10-12 approval and vehicle decision.

Evidence: SELF - user decision; documents gitlink advanced to the approval-record commit.

Impact: task metadata and submodule pointer only.

Refs: modules/documents/docs/records/2026-10-12-service-restart-data-recovery-review.md
2026-10-12 01:26:50 +00:00
weichen 4ab64263a6 Merge authoritative main into the card-close branch
ci / test-pg (pull_request) Successful in 1m9s
ci / test (pull_request) Successful in 2m37s
2026-10-12 01:23:55 +00:00
weichen c622372443 Merge pull request 'Close merged task card: feature-svc-autorecover (PR #396/#400/#401)' (#402) from feature/card-close-20261011-222438Z into main
ci / test-pg (push) Successful in 1m0s
ci / test (push) Successful in 2m34s
2026-10-11 22:27:21 +00:00
weichen a2d8d6ed09 Close 1 merged task card(s) and archive them
ci / test-pg (pull_request) Successful in 59s
ci / test (pull_request) Successful in 2m34s
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-autorecover.md(PR#401) — merges verified via git log --merges 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-11 22:24:38 +00:00
weichen d99482fcaa Merge pull request 'Keep recovered services alive when the watchdog oneshot exits (KillMode=process)' (#401) from feature/svc-autorecover into main
ci / test-pg (push) Successful in 1m0s
ci / test (push) Successful in 2m30s
2026-10-11 22:21:27 +00:00
weichen 35802214e3 Record the sync checkpoint
ci / test-pg (pull_request) Failing after 58s
ci / test (pull_request) Successful in 2m38s
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=77391479a0645f06b631bc64ac9e55554f7e4f4e; candidate=c08cf35abaf651e8373abfc51ffaba65abc546d2.

Impact: task metadata only.

Refs: .task/feature-svc-autorecover.md
2026-10-11 22:19:56 +00:00
weichen c08cf35aba Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=77391479a0645f06b631bc64ac9e55554f7e4f4e.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-11 22:19:29 +00:00
weichen 5e9083cff4 Keep recovered services alive when the watchdog oneshot exits
ci / test-pg (pull_request) Successful in 1m1s
ci / test (pull_request) Successful in 2m34s
Why: systemd's default KillMode=control-group kills every process in
the unit's cgroup when the oneshot finishes -- the daemon recover just
started died seconds after the recover ok event (observed live on the
host: revived at 22:13:40, gone by 22:13:42).

Evidence: unit text now carries KillMode=process (asserted in
test_watchdog_print_plan); suite 10/10 and make test-governance rerun
recorded on the card; live re-demo on the host after merge.

Impact: scripts/svc.sh wd_service_text only.

Refs: .task/feature-svc-autorecover.md
2026-10-11 22:15:31 +00:00
weichen 77391479a0 Merge pull request 'Backfill the svc-autorecover task card (PR link, verification summary)' (#400) from feature/svc-autorecover into main
ci / test-pg (push) Successful in 59s
ci / test (push) Successful in 2m32s
2026-10-11 22:15:11 +00:00
weichen b86cf8a5f2 Record the sync checkpoint
ci / test-pg (pull_request) Successful in 57s
ci / test (pull_request) Successful in 2m35s
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=bbce8db9054b67fd8bacf3935ceb65b205682e63; candidate=6fe00a3a5c180df716f10d1c10d01d405c5362e7.

Impact: task metadata only.

Refs: .task/feature-svc-autorecover.md
2026-10-11 22:12:03 +00:00
weichen 6fe00a3a5c Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=bbce8db9054b67fd8bacf3935ceb65b205682e63.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-11 22:11:36 +00:00
weichen c40fd61af6 Backfill the task card with the PR link and verification summary
ci / test-pg (pull_request) Successful in 1m3s
ci / test (pull_request) Successful in 2m31s
Why: closing the card requires the merged PR reference and honest
verification lines per the anti-debt gate.

Evidence: PR #396 merged at main (CI GATE green on e0b49d1); evidence
table rows written by make evidence.

Impact: task metadata only.

Refs: .task/feature-svc-autorecover.md
2026-10-11 22:07:52 +00:00
weichen bbce8db905 Merge pull request 'Add svc auto-recovery: autostart desired-state, recover, watchdog' (#396) from feature/svc-autorecover into main
ci / test-pg (push) Successful in 1m0s
ci / test (push) Failing after 1m4s
2026-10-11 22:07:39 +00:00
weichen e0b49d1b90 Record the sync checkpoint
ci / test-pg (pull_request) Successful in 1m1s
ci / test (pull_request) Successful in 2m39s
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=3de5791e0841e9c7c40c3dc236be6d95b3969827; candidate=c514bc4f4d8f3236d6d001fe9046fc2a6a72705a.

Impact: task metadata only.

Refs: .task/feature-svc-autorecover.md
2026-10-11 21:56:41 +00:00
weichen c514bc4f4d Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=3de5791e0841e9c7c40c3dc236be6d95b3969827.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-11 21:56:13 +00:00
weichen e08ceebb95 Guard start paths with the ss-free port probe too
ci / test-pg (pull_request) Successful in 1m1s
ci / test (pull_request) Successful in 2m34s
Why: check_port_free consulted port_owner (ss -ltnp) only, so the
/dev/tcp fallback added to port_listening never ran on the start path;
CI (no iproute2) still started onto a thief-held port.

Evidence: no-ss simulation refuses a bound port and passes a free one;
full suite 10/10 and make test-governance rerun recorded on the card;
CI on the new head is authoritative.

Impact: scripts/svc.sh check_port_free only.

Refs: .task/feature-svc-autorecover.md
2026-10-11 21:34:12 +00:00
weichen 9b5ecd57a2 Detect listening ports without ss via /dev/tcp fallback
ci / test-pg (pull_request) Successful in 1m0s
ci / test (pull_request) Failing after 1m6s
Why: the CI runner container has no iproute2, so port_listening went
blind: recover started a service onto a thief-held port and the health
probe hit the thief (HTTP 200), reporting a bogus start success.

Evidence: no-ss PATH simulation shows the fallback detects a bound port
and passes free ports; make test-governance rerun recorded on the task
card; CI on the new head is authoritative.

Impact: scripts/svc.sh port_listening only (ss stays primary when
present).

Refs: .task/feature-svc-autorecover.md
2026-10-11 21:12:16 +00:00
weichen 3de5791e08 Merge pull request 'Close merged task card: feature-svc-rdm-source (PR #398)' (#399) from feature/card-close-20261011-205051Z into main
ci / test-pg (push) Successful in 1m8s
ci / test (push) Successful in 2m33s
2026-10-11 20:51:01 +00:00
weichen 84d862cdcd Close 1 merged task card(s) and archive them
ci / test-pg (pull_request) Successful in 1m6s
ci / test (pull_request) Successful in 2m35s
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-rdm-source.md(PR#398) — merges verified via git log --merges 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-11 20:50:51 +00:00
weichen c936174bed Merge pull request 'Add an rdm deploy source to svc (downstream composite binary)' (#398) from feature/svc-rdm-source into main
ci / test-pg (push) Successful in 1m5s
ci / test (push) Successful in 2m33s
2026-10-11 20:49:57 +00:00
weichen b12e94dcd9 Wait for the port thief to bind before recovering
ci / test-pg (pull_request) Successful in 1m0s
ci / test (pull_request) Failing after 1m3s
Why: Popen returns before python http.server finishes binding, so on
slower CI runners recover won the race and started the service, turning
the port-stolen case into a flake.

Evidence: single-case rerun OK locally; make test-governance rerun
recorded on the task card; CI on the new head is authoritative.

Impact: test synchronization only.

Refs: .task/feature-svc-autorecover.md
2026-10-11 20:49:50 +00:00
weichen cc4ea0e357 Record the sync and test evidence in the task card
ci / test-pg (pull_request) Successful in 1m1s
ci / test (pull_request) Successful in 2m27s
2026-10-11 20:46:40 +00:00
weichen 9b707c3f6a Record the sync checkpoint
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=6933ec3979fef58e94461f3b80bb79fca3874c99; candidate=2d723b2a3c5883b32443ad5a731a34db41206f80.

Impact: task metadata only.

Refs: .task/feature-svc-rdm-source.md
2026-10-11 20:46:32 +00:00
weichen 2d723b2a3c Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=6933ec3979fef58e94461f3b80bb79fca3874c99.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-11 20:46:06 +00:00
weichen 419380187d Add an rdm deploy source to svc (downstream composite binary)
Why: RDM capabilities (two-trees-one-net, rdm.* trace-audit command face)
only exist in the downstream Agent-System-RDM composite binary; svc's three
existing sources all produce the Dev binary, so none of it could be deployed
or lifecycle-managed. This adds --from rdm[@<sha>] with the same isolated
source-repo semantics as the dev source.

Evidence: make test-governance 138/138 (two new stub cases: deploy E2E and
commits/update track); real deployment rdm@2aef3fc recorded in the task card
(pins materialized, pure-Go build, web workbench to htdocs, serve health OK,
rdm.ping/rdm.inspect.capabilities committed, update --check reports latest);
make test full suite exit=0. All segments written by make evidence.

Impact: scripts/svc.sh (rdm source resolution/materialization/deploy/update/
commits, probe timeouts, rdm seed skip, ELF env-DSN evidence fallback),
docs/svc.md 5.4, tests/test_svc.py. RDM-side CLI alignment landed as RDM
PR #228; no base submodules touched.

Refs: task card .task/feature-svc-rdm-source.md; RDM PR #228/#229.
2026-10-11 20:46:03 +00:00
weichen cd43a62a87 Treat SIGKILL zombies as dead in recover tests
ci / test-pg (pull_request) Successful in 59s
ci / test (pull_request) Failing after 1m2s
Why: CI containers run a PID 1 that does not reap orphans, so the
killed stub lingers as a zombie and os.kill(pid, 0) keeps succeeding;
local dev machines reap instantly, which hid the difference.

Evidence: tests/test_svc_recover 10/10 after the fix; make
test-governance re-run recorded on the task card; CI on the new head
is the authoritative gate.

Impact: test helper only (svc.sh already treats zombies as dead via
empty-cmdline pidcheck).

Refs: .task/feature-svc-autorecover.md
2026-10-11 20:37:40 +00:00
weichen 6933ec3979 Merge pull request 'Close merged task cards (feature/card-close-20261011-203254Z)' (#397) from feature/card-close-20261011-203254Z into main
ci / test-pg (push) Successful in 1m0s
ci / test (push) Failing after 1m54s
2026-10-11 20:33:03 +00:00
weichen da33b13089 Close 1 merged task card(s) and archive them
ci / test-pg (pull_request) Successful in 1m1s
ci / test (pull_request) Successful in 2m27s
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-collab-storage-u6-vector.md(PR#395) — merges verified via git log --merges 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-11 20:32:54 +00:00
weichen e7900e1bc7 Merge pull request 'U6 slice 3: model identity and in-database vector top-k via pgvector (pin #159)' (#395) from feature/collab-storage-u6-vector into main
ci / test-pg (push) Successful in 1m10s
ci / test (push) Successful in 2m27s
2026-10-11 20:25:41 +00:00
weichen effb4edfcd Record the task card for feature-svc-rdm-source
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/feature-svc-rdm-source.md; R0=acc8bf124c04b89ed05093467ebce865934bdddc.

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

Refs: .task/feature-svc-rdm-source.md
2026-10-11 20:25:27 +00:00
weichen fe4027c46c Record post-sync governance rerun and sync checkpoint
ci / test-pg (pull_request) Failing after 1m13s
ci / test (pull_request) Failing after 1m29s
Why: task-sync advanced the base; key checks re-run at the merged head per the evidence gate.

Evidence: make evidence appended the post-sync make test-governance run (146/146 OK); sync row recorded by task-sync.

Impact: task metadata only.

Refs: .task/feature-svc-autorecover.md
2026-10-11 20:23:22 +00:00
weichen 687214ac3b Merge authoritative main into the task branch
ci / test-pg (pull_request) Successful in 1m15s
ci / test (pull_request) Successful in 2m41s
2026-10-11 20:22:48 +00:00
weichen fe93b28c3a Record the U6 vector delivery state and evidence in the task card
ci / test-pg (pull_request) Successful in 1m1s
ci / test (pull_request) Successful in 2m45s
Why: stage review needs results and evidence in the card before the PR merges.

Evidence: make test / test-backend-pg (real pgvector) / make build exit 0 via the evidence tool.

Impact: task metadata only.

Refs: backend PR #159; Dev PR #395.
2026-10-11 20:22:23 +00:00
weichen ab39c796ea Record the sync checkpoint
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=acc8bf124c04b89ed05093467ebce865934bdddc; candidate=59109e589c8a942628d2eac88e57faeddae7e882.

Impact: task metadata only.

Refs: .task/feature-svc-autorecover.md
2026-10-11 20:22:09 +00:00
weichen ba2dad17f5 Record the U6 vector delivery state and evidence in the task card
ci / test-pg (pull_request) Successful in 1m14s
ci / test (pull_request) Successful in 2m39s
Why: stage review needs results and evidence in the card before the PR.

Evidence: make test / test-backend-pg (real pgvector) / make build exit 0 via the evidence tool.

Impact: task metadata only.

Refs: backend PR #159.
2026-10-11 20:21:45 +00:00
weichen 59109e589c Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=acc8bf124c04b89ed05093467ebce865934bdddc.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-11 20:21:43 +00:00
weichen 9bb7eb579a Record governance test evidence on the task card
Why: the completion claim needs tool-written evidence per the evidence gate.

Evidence: make evidence wrote the make test-governance run (146/146 OK) into the card.

Impact: task metadata only.

Refs: .task/feature-svc-autorecover.md
2026-10-11 20:21:41 +00:00
weichen eda942523c Add svc auto-recovery: autostart desired-state, recover, watchdog
Why: svc services are bare nohup'd processes with persisted registration
but no supervision -- a crash, an OOM kill, or a reboot left them dead
until manual restart (2026-10-11 outage: dev service lost, runtime/ also
wiped by hand, nothing brought services back).

Evidence: tests/test_svc_recover.py 10 cases green (start records
autostart, stop clears it incl. dead-process stop, SIGKILL then recover
revives with persisted exec=, lock-held skips, port-stolen fails with
recover fail event, watchdog unit text via --print); make test-governance
146/146 OK locally; real-machine watchdog install + kill -9 revival to be
recorded on the task card.

Impact: svc.sh gains autostart key in svc.env, `recover [name]
[--quiet]` (postgres-first, per-service .start.lock, recover history
events), `watchdog install|remove|status` (systemd user timer, cron
fallback hint), lifecycle lock across start/stop/restart/deploy/update;
spawned services no longer inherit the lock fd (9>&-), and lock release
no longer clobbers script stderr. Makefile adds svc-recover/svc-watchdog;
docs/svc.md documents semantics and boundaries.

Refs: task card .task/feature-svc-autorecover.md; docs/svc.md 6.5/6.6;
parallel planning card feature/service-restart-recovery-plan (same
problem space, plan-stage).
2026-10-11 20:20:27 +00:00
weichen 57bf591f7b Record the sync checkpoint
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=dc97048556caebd03168866075d959f0f55d02a7; candidate=9caa8ec8e65ff919c139ff522a5d13f8e882a375.

Impact: task metadata only.

Refs: .task/feature-collab-storage-u6-vector.md
2026-10-11 20:19:02 +00:00
weichen acc8bf124c Merge pull request 'Close merged task card: feature-rdm-e2e-acceptance (PR #393)' (#394) from feature/card-close-20261011-182001Z into main
ci / test-pg (push) Successful in 1m9s
ci / test (push) Successful in 2m35s
Reviewed-on: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/394
2026-10-11 20:18:52 +00:00
weichen 9caa8ec8e6 Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=dc97048556caebd03168866075d959f0f55d02a7.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-11 20:18:41 +00:00