提交歷史

作者 SHA1 備註 提交日期
  clanker d46cc3426c r1: twin guards removed (P3.3, sequenced last) — the one-pending render guard on the goal page and answer_block's twin-answer sweep die: fresh DBs cannot hold pre-dedupe twins and the raise-side cross-dedupe (4884259) keeps them single; their tests now pin the raise-side single-row invariant (a redelivered review-kind push adopts the pending row, the verdict leaves zero pending completion-family rows). 1 月之前
  clanker 40508b0fa9 r1: current_work_view + direct display_map_for — SaddleService.current_work_view owns the current-task/goal resolution the dashboard's saddle cards and the saddles page duplicated; the goal page's task rows consume TaskService.display_map_for + the batch yeehaw set directly (the GoalTaskDisplay intermediate map and its double list_tasks_for_goal pass die). 1 月之前
  clanker 4ac6ab1368 r1: is_valid_mode — the three identical TASK_MODES loops (edit_task, the daemon's task-create callback, the queue create action) collapse into the one validator beside TASK_MODES. 1 月之前
  clanker 375d0957f9 r1: one time-format util — src/Format.vala's format_stamp owns the '%Y-%m-%d %H:%M' display shape; the four per-entrypoint format_stamp/format_time copies and the saddles/rules/projects inline formats collapse onto it (StatePulse keeps its second-precision pulse stamp); the clock domain is uniform now_local (PushService's VAPID exp was the lone now_utc, and to_unix is timezone-independent anyway). 1 月之前
  clanker 533278fa51 r1: delete_task/delete_task_rows dedup + terminal/park stamping centralised — the five-loop row teardown lives once in delete_task_rows (the human Delete and the goal cascade's quiet delete share it); mark_terminal owns the complete/fail/cancel status flip, completed_at stamp and summary precedence; set_parked owns the suspended+suspended_at stamp (the daemon's 'suspended' push calls it directly), all semantics byte-identical to the three inline copies. 1 月之前
  clanker 8d254a3426 r1: ONE goal_branches parser — GoalService.parse_goal_branches (typed repo/branch/pushed rows, the array shape the daemon emits, strict boolean push flags) feeds BOTH the completion-accept gate and the goal page's chips; the gate's objects/arrays-are-TRUE truthiness and the chips' objects/arrays-are-FALSE copy die together with the legacy object form the daemon never sent, killing the latent gate-vs-chips divergence (arch item behind the F9 gate). 1 月之前
  clanker 34f58415c3 r1: one JSON-entry reading surface — src/Json.vala grows EntryJson (string_member/optional_string_member/get_string_or/string_array_member/parse_iso/parse_string_array); SaddleService's four private statics, SaddleApi's get_string_or/parse_iso/string_options and TaskService.parse_block_options all collapse into it, three string-array parsers down to one, behaviour byte-identical (the malformed-options warning keeps each call site's wording). 1 月之前
  clanker 12de25e747 r1: one block-kind vocabulary — the GOAL_BLOCK_* duplicates die; every raise/adopt/render/narrative path (GoalService, SaddleService's ensure_block + rfc fallback, GoalDetailEntrypoint, GoalActions, PushService) reads the single BLOCK_QUESTION/RFC/REVIEW/PLAN/COMPLETION set from TaskService, including the raw 'review'/'completion' literals the completion-review detection leaned on. 1 月之前
  clanker 37508060cf r1: dead code deletion — has_yeehaw (the batch yeehaw_task_ids/yeehaw_feed own every surface), SaddleService snippet_text + generate_token (mint_saddle_token is the live minter), the Saddle.container_id column (entity + flattened M0001, tear-down convention), the never-set 'recovering' branch of unreachable_task_ids, TaskDetailPublic plan/auto_approve/toggle_auto_approve, the duplicated hideQuoteUi in main.html (the activeHandler-clearing definition wins), and the malformed/duplicated docblocks (TaskService nested /**, the orphaned list_tasks header, the SaddleService /status orphan, the TasksEntrypoint double header). fail_goal's empty cascaded-if dies with the counter, the shared cascade_goal_tasks helper owning the cancel/fail task sweep. 1 月之前
  clanker 7db4cac172 s5: UI polish — mechanical rows ('session context restored', 'parked until') filtered from every user-facing timeline (write-side filtering on the daemon-ingest path, the web's restore comment removed, read-side filters on the goal narrative/task thread/dashboard so legacy rows vanish too; the raw terminal keeps everything), label reconciliation (a goal in completion review reads 'awaiting your review', the run-task status card agrees via display_map_for/display_of_detail — no bare 'blocked' for review parks), and verdict-shaped blocks pinned to their explicit accept/reject + free-text forms with NULL-options questions staying question-shaped. 1 月之前
  clanker 2b251e6521 s4: terminal-text single representation — the failure path stops writing the duplicate agent comment and retry stops copying summary→comment (tasks.summary is the terminal cache, the narrative renders summary_lead, the task page renders the card); human comments keep their ONE writer (the web's user-comment row — tests pin the single-row invariant; the daemon-side USER_COMMENT echo suppression is D's item). 1 月之前
  clanker 0d1f6a97f4 s3: delta resume notices — take_resume_notice emits ONE-LINE task statuses (status + the summary's first line) with full bodies only for NEW completions each exactly once; the statuses/reports double embedding is dead, so the notice size is constant per event instead of cumulative with every parked round. 1 月之前
  clanker f3e779df22 s2: reject-flow fixed and verdict wording server-owned — submitPlanRemarks resolves the block from the actual [data-plan-review] container (any open block, not just goal.plan_pending_block — the completion-review reject button), remark-less rejection allowed when the feedback textarea has content, and the goal page posts verdict markers / raw feedback while the SERVER wraps the stable per-kind prefixes (hidden-input constants removed from every template; approvals byte-identical, goal feedback keeps the prefix + blank-line shape, task feedback its single-newline shape). 1 月之前
  clanker 4b13a1ea1f s1: canonical-on-accept — goals.completion_report is written ONLY by the accept verdict (the winning block's body); submit_completion stops writing it at submission (the pending report lives only in its block), reject/revise leaves the goal row clean, and fail_goal's failure report keeps its goal-side home. Tests pin all four directions incl. the accept-gated goals.plan column. 1 月之前
  clanker 4884259da9 fix: at most ONE pending completion-family block renders (stale pre-dedupe twins hidden), and the verdict answers every pending twin — the review shows once, the report card only after acceptance 1 月之前
  clanker 253551bba2 ui: the completion review renders as the rich attention block while pending (highlight-remarks queue shared with the plan review, push chips + compare above the report, accept gate server-side) and the Completion review card becomes the terminal summary 1 月之前
  clanker 89d58b1a8c fix: the completion review is one row — review-family cross-dedupe in raise_run_block (the daemon's done-park review block adopts the web's completion row instead of raising a twin that double-rendered the goal page review and pinned the dashboard); compare-changes link on the goal status head 1 月之前
  clanker 2d429de3b1 qa: load-marginal wait windows widened + two read-act gaps closed — the capability-wait/affine-wake/plan-review waits move to 90-120s (each fired once when external load tripled shard walls to 90-150s); the queue-row waiting/unreachable flags become short polls (stable states, once sampled before the pulse settled); goalui's requeue_run acts on the SAME state that satisfied the wait (a second read raced the scripted daemon's ask reviving the saddle and the conditionally-authored action vanished between reads) 1 月之前
  clanker 66a0fb85c4 qa: 'system' entry ingestion + integration_test.py re-baselined on the consolidated goal world — the daemon's harness-authored rows (session-restore footnote, goal park notice) ride the wire typed 'system' and author system comment rows on the ONE thread (never agent); the harness's arc now covers: commentary-only and trailing-comment rounds fed verbatim with their receipts reaching the model, the degenerate repetition validator-caught cross-binary (one rejected entry, never executed, clean resend completes), the terminal watermark advancing past the worker's transition, the derived narrative's system rows, live push chips and the accept-refuses-while-origin-is-behind gate (rewind -> refuses with the clear message, goal stays in review, re-push -> chip restores, accept passes). 83 -> 100 checks, green end-to-end against both real binaries 1 月之前
  clanker 4ad0c84cc0 qa: terminal states are atomic-sticky — set_status and add_block's park flip guard the transition in the UPDATE's WHERE (a late 'working' push interleaving a completion on the main loop used to resurrect the task as working AFTER its session closed done — the parked-resume race, plan-15 C deviation 4; the callers' terminal checks have already yielded by write time). Harness: the dispatch rules-order fixture attaches rules while DRAFT then enqueues (the 1s dispatch tick could beat the attaches under load), and the app-ready probe requires OUR process alive — a free_port() TOCTOU handed the port to another shard's app whose identical seed answered the probe while ours died at MHD bind 1 月之前
  clanker 2cbcc8862f qa: sqlite WAL + busy timeout on the singleton connection — a SELECT stepping against the harness's concurrent fixture write returned SQLITE_BUSY, which the ORM's lazy enumerator reports as end-of-rows (the lifecycle flake: task_state capabilities read back EMPTY though the row existed; Invercargill-Sql's SqliteResultEnumerable treats any non-ROW step as done). WAL readers never block writers and never are blocked by them; the 5s busy timeout absorbs the remaining writer-writer window 1 月之前
  clanker cdd34f97e3 C5: dashboard deep-link closure verified on the single-row world 1 月之前
  clanker 3aadf3b00c C4: goal page batch — head line, expanders, live push flags, accept gate (F9) 1 月之前
  clanker e2a11c459d C3: goal_events deleted — terminal watermark + derived narrative 1 月之前
  clanker e7e167579f C2: goal comments ride the run task; system events styled (F8) 1 月之前
  clanker d1c8bea7e2 C1: goal blocks ride the run task — one row, one answer path (F6) 1 月之前
  clanker 8765b5a44e B1-B6: goalui test shard — plan 14 workstream B coverage 1 月之前
  clanker 8ff7c1c2da B6: narrative visual weight — events full weight, comments as footnotes 1 月之前
  clanker 35dfc4dc55 B5: goal page order, effective-Rules section, per-task capability badges 1 月之前
  clanker 9163db10f5 B2: plan-review remarks queue on the goal page 1 月之前