Commit Graph
2134 Commits
Author SHA1 Message Date
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
weichen 0e8f0944cd Pin the backend U6 vector merge (PR #159, now on e49f165)
Why: the parent must pin the merged component SHA for combined build and CI.

Evidence: backend origin-main tip e49f165 (includes #159 and later merges) fetched post-recovery; internal core pin 89f3906 matches Dev modules/core.

Impact: gitlink only.

Refs: backend PR #159.
2026-10-11 20:18:39 +00:00
weichen dc97048556 Merge pull request 'Close merged task card: feature-base-ext-admin-project (PR #385)' (#386) from feature/card-close-20261011-164629Z into main
ci / test-pg (push) Successful in 1m0s
ci / test (push) Successful in 2m36s
Reviewed-on: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/386
2026-10-11 20:18:23 +00:00
weichen 546f499645 Close 1 merged task card(s) and archive them
ci / test-pg (pull_request) Successful in 1m1s
ci / test (pull_request) Failing after 1m52s
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-e2e-acceptance.md(PR#393) — 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 18:20:01 +00:00
weichen 43722052eb Merge pull request 'U4 browser acceptance: Playwright harness, seed pipeline, and audit-workspace fixes (frontend pin bump)' (#393) from feature/rdm-e2e-acceptance into main
ci / test-pg (push) Successful in 1m3s
ci / test (push) Successful in 2m29s
2026-10-11 18:17:39 +00:00
weichen 0316efe91d Record the sync checkpoint
ci / test-pg (pull_request) Successful in 1m13s
ci / test (pull_request) Successful in 2m29s
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=660f581d81bb54c9868920df07e0b8fdbec8e036; candidate=d50b52fd62e625e2f8c524c5362eaae0d150f479.

Impact: task metadata only.

Refs: .task/feature-rdm-e2e-acceptance.md
2026-10-11 18:14:10 +00:00
weichen d50b52fd62 Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=660f581d81bb54c9868920df07e0b8fdbec8e036.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-11 18:13:51 +00:00
weichen 43f06a0215 Record the final E2E evidence in the task card
ci / test (pull_request) Successful in 2m34s
ci / test-pg (pull_request) Successful in 1m11s
2026-10-11 18:09:33 +00:00
weichen e67f026827 Build the seeding CLI from the RDM-pinned backend
Why: task-sync advanced the Dev backend gitlink past the RDM pin; a newer-schema user-create CLI migrates the fresh store beyond what the RDM binary (schema ceiling of its pin) can open.

Evidence: reproduce on 20261011-180439 run (v25 store vs v24 binary); rerun green recorded after this change.

Impact: scripts/e2e.sh only; seeding and serving now share one base version.
2026-10-11 18:05:30 +00:00
weichen 3100411981 Re-record the E2E evidence on the committed tree 2026-10-11 18:04:54 +00:00
weichen 97dacffb7e Re-record the suite evidence on the committed tree 2026-10-11 18:04:38 +00:00
weichen f4e0c77b9a Record the sync checkpoint
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=aa1f87602471cc567afd5756326e994315984fc8; candidate=fe2cd1920c559240ff083cdb8e1509ee087839ea.

Impact: task metadata only.

Refs: .task/feature-rdm-e2e-acceptance.md
2026-10-11 18:03:15 +00:00
weichen 660f581d81 Merge pull request 'Close task card: feature/material-intake-flow (merged via #390/#391)' (#392) from feature/card-close-20261011-180005Z into main
ci / test-pg (push) Successful in 1m0s
ci / test (push) Successful in 2m33s
2026-10-11 18:03:12 +00:00
weichen fe2cd1920c Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=aa1f87602471cc567afd5756326e994315984fc8.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-11 18:02:55 +00:00