4820 Commits
Author SHA1 Message Date
weichen 4c04396a70 Record review-fix evidence on the chat-process-split-r1 task card
Why: the card and PR description are one document; the 2026-09-30 review
fixes (symlink untrack, per-turn live interleaving, artifact process mark)
need to appear on it.

Evidence: card lists frontend 22a8723/754ce83, backend ae8e5d0, Dev
596d02c with the verification outputs (vitest 27/27, go test ./... ok,
make test exit 0).

Impact: .task documentation only.

Refs: feature/chat-process-split-r1
2026-09-30 15:37:23 +00:00
weichen dd41a6b69b Record chat-process-split-r1 task card evidence
Why: 任务主记录承载结果与验证证据。
Evidence: backend 0e76f59 / frontend 642299d;make test 组合全绿(见卡片)。
Impact: 仅 .task 文档。
Refs: feature/chat-process-split-r1。
2026-09-30 15:35:05 +00:00
weichen 596d02ce38 Bump frontend and backend for review fixes on chat-process-split-r1
Why: the review of feature/chat-process-split-r1 required untracking the
frontend node_modules symlink, per-turn interleaving of live parts with
tool-call-driven process marking, a long-reply excerpt, and marking
artifact_ref parts as process in the backend.

Evidence: frontend 22a8723 (untrack symlink) + 754ce83 (interleave and
mark); backend ae8e5d0 (artifact process). make test green: frontend
27/27, ui 35/35, backend go test ./... ok.

Impact: parent task branch now points at the reviewed submodule commits;
ready for PR.

Refs: code review of feature/chat-process-split-r1 (2026-09-30)
2026-09-30 15:34:44 +00:00
weichen 0654e03543 Merge pull request 'Close merged task cards (feature/card-close-20260930-153333Z)' (#70) from feature/card-close-20260930-153333Z into main
ci / test (push) Failing after 1m31s
2026-09-30 15:34:17 +00:00
weichen 42c1e1a921 Close 1 merged task card(s) and archive them
ci / test (pull_request) Failing after 1m54s
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-task-start-rootfix.md(PR#69) — 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-09-30 15:33:33 +00:00
weichen 84b6ab084e Merge pull request 'Fix task worktree path derivation to anchor on the main checkout' (#69) from feature/task-start-rootfix into main
ci / test (push) Failing after 1m35s
2026-09-30 15:32:24 +00:00
weichen a4d4a13742 Fill task card objectives and verification evidence
ci / test (pull_request) Failing after 2m17s
Why: the task card and PR description are one document; objectives, results and verification evidence must be on the record before requesting review.
Evidence: card filled with smoke A/B results (sibling-path assertions both PASS) and sync row 7fab8feaf7/aecaa52e6b.
Impact: .task/feature-task-start-rootfix.md only; no code change.
Refs: feature-task-start-rootfix
2026-09-30 15:29:40 +00:00
weichen c9f27bc163 Record the sync checkpoint 2026-09-30 15:28:27 +00:00
weichen aecaa52e6b Merge remote-tracking branch 'origin/main' into feature/task-start-rootfix 2026-09-30 15:28:27 +00:00
weichen 7fab8feaf7 Merge pull request 'Close the cross-session reading task card (PR #67 merged)' (#68) from feature/card-close-20260930-152815Z into main
ci / test (push) Failing after 1m35s
2026-09-30 15:28:26 +00:00
weichen 833827221c Close 1 merged task card(s) and archive them
ci / test (pull_request) Failing after 11m46s
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-cross-session-reading.md(PR#67) — 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-09-30 15:28:15 +00:00
weichen d3893609b7 Fix task worktree path derivation to anchor on the main checkout
Why: cmd_start derived the worktree location from $PWD, so running task.sh start from a repository subdirectory (or inside a task worktree) placed the new worktree at the wrong spot — e.g. scripts-wt-<slug> nested inside the repo.
Evidence: bash -n clean; functional smoke of the patched script from both the main checkout scripts/ subdir and the repo root created ../Agent-System-Dev-wt-<slug> as a sibling of the main checkout (paths asserted; pre-fix subdir run would nest inside the repo); git rev-parse --git-common-dir resolves to the main checkout from both locations (relative ../.git vs absolute).
Impact: scripts/task.sh cmd_start only; from the main checkout root the derived path is identical to before; new worktrees now always land as siblings of the main checkout regardless of invocation directory.
Refs: .task/feature-task-start-rootfix.md
2026-09-30 15:28:14 +00:00
weichen 816b40e8f7 Merge pull request 'Deliver layered cross-session reading and pin the five module PRs' (#67) from feature/cross-session-reading into main
ci / test (push) Failing after 2m10s
2026-09-30 15:27:41 +00:00
weichen 835e3ce187 Correct the pre-merge sync row on the task card
ci / test (pull_request) Failing after 1m36s
2026-09-30 15:27:28 +00:00
weichen f121e9aee2 Record the sync checkpoint 2026-09-30 15:26:30 +00:00
weichen e6c5cd99df Merge remote-tracking branch 'origin/main' into feature/cross-session-reading 2026-09-30 15:26:30 +00:00
weichen 9bde62cc44 Record the cross-session reading delivery on the task card 2026-09-30 15:26:30 +00:00
weichen cffb80f762 Pin the UI contracts mirror sync for cross-session flags
Why: make contracts regenerates modules/ui/src/contracts.ts from Core
as authority; the mirror commit (UI PR #15) must be pinned or the
combined tree stays dirty after make test.

Evidence: UI PR #15 merged on ui main; make test re-run on this tree
below.

Impact: gitlink-only change.

Refs: Core PR #6; UI PR #15; Dev task feature/cross-session-reading.
2026-09-30 15:25:39 +00:00
weichen ca84888345 Merge pull request 'Close the svc-auto-update task card (PR #65 merged)' (#66) from feature/card-close-20260930-152301Z into main
ci / test (push) Failing after 1m37s
2026-09-30 15:23:14 +00:00
weichen a372b1d6db Close 1 merged task card(s) and archive them
ci / test (pull_request) Failing after 1m37s
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-auto-update.md(PR#65) — 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-09-30 15:23:01 +00:00
weichen 4ae98489fa Merge pull request 'Add svc.sh update command: auto-detect repo advances and refresh services' (#65) from feature/svc-auto-update into main
ci / test (push) Failing after 1m33s
2026-09-30 15:22:53 +00:00
weichen 19452ba7ca Record the task card for feature-task-start-rootfix 2026-09-30 15:22:51 +00:00
weichen 88b2089023 Record the sync checkpoint
ci / test (pull_request) Failing after 1m35s
2026-09-30 15:22:40 +00:00
weichen 072d62be56 Pin cross-session reading delivery across four modules
Why: integrate the approved cross-session reading feature (proposal +
core contract + backend gate/tools/UI) into the Dev composition.

Evidence: subrepo PRs all merged on their mains — Documents #21
(bf0988b), Core #6 (fd44179), Backend #18 (cb7f79d), Frontend #16
(9c87953); combined make test to follow on this exact tree before the
Dev PR is requested.

Impact: gitlink-only change plus task card; no Dev-repo code touched.

Refs: modules/documents/docs/proposals/2026-09-30-cross-session-reading.md;
task card .task/feature-cross-session-reading.md.
2026-09-30 15:22:39 +00:00
weichen ac8db54ecb Add svc.sh update command: auto-detect repo advances and refresh services
Why:
After the repository moves forward, updating a running service meant
manually figuring out the new commit, rebuilding and redeploying by hand;
the user asked for the tool to detect and update automatically.

Evidence:
- "update [name...] [--check] [--all] [--no-fetch]": fetches origin,
  compares each service's registered source against the latest (Dev repo
  origin/main for local@/dev@ sources, newest Releases version for
  release@), prints a per-service table (current / latest / state), and
  without --check refreshes outdated running services by reusing the full
  deploy pipeline (stop → build/verify → start → health check; persisted
  exec= config and tags survive; update events appended to history).
- local@ services: auto git pull --ff-only origin main + make sync before
  rebuilding, guarded three ways (current branch == main, clean worktree,
  ff-only) — dirty trees or non-main branches are skipped with a warning,
  never touching uncommitted work.
- dev@ sources go straight to the remote main commit via an isolated
  worktree; release@ sources deploy the newest Releases version with
  sha256 verification; postgres and static --dir services are reported as
  not applicable; sources that diverged from or lead the remote are never
  force-updated.
- Verified end to end with five test services: dev@73b2802 → dev@ffda6d3
  (real isolated build, HTTP 200, tag/port preserved, worktree recycled),
  non-main-branch skip, stopped-service warning vs --all, release
  sha256-verified update, --check read-only (svc.env checksums unchanged),
  unregistered name exits 2.
- Fixed en route: a latent bug from the v2 refactor — materialize_dev_commit
  leaked submodule/make stdout into the captured worktree path, breaking
  every real dev@sha deploy since (cp: File name too long); build output
  now goes to stderr. Also fixed an unbound-variable crash in the update
  loop (local statement self-reference under set -u).

Impact:
New read-mostly operational command; no behavior change to existing
commands except dev@sha deploys now actually working end to end.
Makefile gains svc-update; --help and docs/svc.md document the command.

Refs: .task/feature-svc-auto-update.md(任务卡=PR 描述)
2026-09-30 15:22:33 +00:00
weichen f467e49c58 Record the task card for feature-svc-auto-update 2026-09-30 15:02:15 +00:00
weichen 032085a690 Record the task card for feature-cross-session-reading 2026-09-30 14:55:34 +00:00
weichen 7353e5c405 Record the task card for feature-chat-process-split-r1 2026-09-30 14:43:43 +00:00
weichen ffda6d33ea Merge pull request 'Close the svc-docs-help task card (PR #63 merged)' (#64) from feature/card-close-20260930-143042Z into main
ci / test (push) Failing after 1m57s
2026-09-30 14:30:52 +00:00
weichen 7818dfbe85 Close 1 merged task card(s) and archive them
ci / test (pull_request) Failing after 1m38s
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-docs-help.md(PR#63) — 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-09-30 14:30:42 +00:00
weichen 404079dc98 Merge pull request 'Document svc.sh comprehensively and layer its help system' (#63) from feature/svc-docs-help into main
ci / test (push) Failing after 1m37s
2026-09-30 14:30:34 +00:00
weichen 6d5d7a6263 Record the sync checkpoint
ci / test (pull_request) Failing after 30s
2026-09-30 14:29:40 +00:00
weichen 314de91df3 Merge remote-tracking branch 'origin/main' into feature/svc-docs-help 2026-09-30 14:29:40 +00:00
weichen 2c7f55bfe8 Document svc.sh comprehensively and layer its help system
Why:
svc.sh grew into a three-kind service manager with database operations,
but its only documentation was a flat --help wall of text; the user asked
for a complete usage document and a better help experience.

Evidence:
- docs/svc.md: 14-section manual (prerequisites, quick start, concepts
  and directory layout, per-command reference for service/global/db
  commands, deploy sources, database operations handbook, configuration
  layering, registry fields and event types, safety boundaries, exit
  codes, troubleshooting table, recipe index) — every claim cross-checked
  against the implementation from the previous two rounds.
- Help layering: no-args and -h print a one-screen overview; --help
  renders the header comment reorganized into 7 labeled sections; the new
  "help [topic]" command deep-dives eight topics (model, deploy,
  lifecycle, db, dbops, config, examples, safety); usage errors now show
  the short overview plus a pointer to --help / help / docs/svc.md.
  All topics verified to render; unknown topic exits 2.
- No runtime behavior changed: end-to-end db lifecycle regression
  (create → start → backup → status → stop → rm --purge) passes after the
  refactor.
- Makefile help and README's documentation section point to docs/svc.md.

Impact:
Documentation-only plus display-layer changes; command semantics,
exit codes and file formats are untouched. Maintenance note: behavior
changes must now update both --help and docs/svc.md.

Refs: .task/feature-svc-docs-help.md(任务卡=PR 描述)
2026-09-30 14:29:39 +00:00
weichen 7db242792a Merge pull request 'Close the ui-capability-platform task card (PR link + archive)' (#62) from feature/card-close-20260930-142354Z into main
ci / test (push) Failing after 30s
2026-09-30 14:24:22 +00:00
weichen 883cb929f3 Close 1 merged task card(s) and archive them
ci / test (pull_request) Failing after 31s
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ui-capability-platform.md(PR#61) — 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-09-30 14:23:54 +00:00
weichen 58f191189b Merge pull request 'UI capability platform: gitlinks + .gitignore + task card' (#61) from feature/ui-capability-platform into main
ci / test (push) Failing after 31s
2026-09-30 14:23:41 +00:00
weichen 0bf2f9becc Advance pins to merged platform heads
ci / test (pull_request) Failing after 1m50s
2026-09-30 14:23:38 +00:00
weichen ec48bb49b7 Advance pins to rebased capability heads 2026-09-30 14:22:59 +00:00
weichen 4908405814 Advance core pin to rebased avatar head 2026-09-30 14:22:26 +00:00
weichen 339d671409 Record the sync checkpoint 2026-09-30 14:19:33 +00:00
weichen 6cd8cf1d0d Merge remote-tracking branch 'origin/main' into feature/ui-capability-platform 2026-09-30 14:19:33 +00:00
weichen 8793bc97d5 Land the UI capability platform across repos (gitlinks + housekeeping)
Why: R-platform spans core/ui/frontend/documents; also honors the
agreed housekeeping item — .env.dev must be gitignored (it holds live
API keys).

Evidence: make test full suite green on this head (exit 0); headless
walk on the real binary: avatar columns, settings shell with badges,
admin-row avatars, zero console errors.

Impact: capability layer only, no behavior changes. Merge order:
core -> ui -> frontend -> documents -> this PR.

Refs: proposal 2026-09-30-ui-redesign-and-auth.md (capability platform)
2026-09-30 14:19:32 +00:00
weichen 96dfac6bc4 Record the task card for feature-svc-docs-help 2026-09-30 14:17:54 +00:00
weichen 22d14db80c Merge pull request 'Close the svc-db-ops task card (PR #59 merged)' (#60) from feature/card-close-20260930-141213Z into main
ci / test (push) Failing after 1m31s
2026-09-30 14:12:32 +00:00
weichen dc24d6d612 Close 1 merged task card(s) and archive them
ci / test (pull_request) Failing after 1m37s
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-db-ops.md(PR#59) — 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-09-30 14:12:13 +00:00
weichen 30a09686ea Merge pull request 'Add db ops to svc.sh: port change, backup, restore, clone, cross-instance copy' (#59) from feature/svc-db-ops into main
ci / test (push) Failing after 1m38s
2026-09-30 14:12:07 +00:00
weichen 9bbbdf22ac Record the sync checkpoint
ci / test (pull_request) Failing after 1m40s
2026-09-30 14:11:30 +00:00
weichen 69871136e5 Add db ops to svc.sh: port change, backup, restore, clone, cross-instance copy
Why:
The service manager could create and run postgres instances but had no
way to retarget a port explicitly, back data up, clone an instance to
another port, or move a database between instances — the user asked for
exactly these operations.

Evidence:
- "set <name> [--port N] [--host H] [--apply] [--tag T...]": explicit
  registration change; running postgres requires --apply (stop → rewrite
  registration → start); port availability checked against both
  registrations and live listeners. Verified: 8890→8895 with data intact
  and DSN updated, old port freed; refusal without --apply.
- "db backup <name> [--db X] [--out F]": pg_dump -Fc into
  runtime/<name>/backups/ (0600) with pg_restore --list self-check;
  "db backups" lists them.
- "db restore <name> --file F [--db X] [--force]": restores into a new db
  or refuses on a non-empty target unless --force (drop with FORCE +
  recreate + restore), reporting table counts afterwards. Verified all
  three paths.
- "db clone <src> <dst> [--port P] [--password PW] [--tag] [--online]":
  default physical clone (brief source stop, cp -a of pgdata minus
  postmaster files, new registration, source restarted on its own port);
  --online copies via dump/restore without stopping the source (verified
  source pid unchanged). Clone lands on the requested or derived port.
- "db copy <src> <dst> [--db X] [--force]": single-database logical move
  between two running instances with the same non-empty-target guard.
  "db ls <name>" lists databases.
- Fixed during verification: clone/copy leaked the CLI --port into the
  source restart path (source briefly came up on the clone's port); the
  address overrides are now cleared inside those commands.

Impact:
All operations stay inside runtime/<name>/, append to history.jsonl, and
reuse the existing safety constraints (own-process stop, port conflicts
reported not seized, secrets in 0600 files). Overwriting a non-empty
database requires an explicit --force everywhere. Makefile help line
mentions the new db subcommands.

Refs: .task/feature-svc-db-ops.md(任务卡=PR 描述)
2026-09-30 14:11:30 +00:00
weichen d6b9c2e07a Record the task card for feature-svc-db-ops 2026-09-30 14:01:04 +00:00