You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Accepting a result does not reach the issue or PR the task came from (#401, the write-back half) #1154
The other half of the owner's phase-1 scope on #401 (## Owner decision (2026-10-25): the Done list is the acceptance record, and the verdict is written back to the issue/PR the task came from).
What ships with the acceptance surface (PR for #401): a result card in the Inbox with Accept / Send back, the evidence links, the producing Bot and model, and the decision recorded on the task record (accepted, or working + followUp.note when sent back, with the per-status actor entry).
What does not: nothing carries that decision out of the local task record. A task created with origin: { roomId, sessionId } (#54) has no pointer to a GitHub issue or pull request, and the host has no GitHub write path, so a task that came from #123 leaves no comment and no label change there. Someone reading #123 cannot tell the result was accepted or sent back.
Scope for this issue:
a task may name where its result goes (an issue/PR URL or owner/repo#n), stored on the record like the other pointers in core/src/host/tasks.js;
task-accept-result and task-send-back write one comment there (Accepted / Sent back: <note> + Written-by: the deciding member or Bot), through the connector the turn already has, and a failed write is reported on the card rather than swallowed;
no new token, no second identity: the same Birfy account the other writes use.
Not this issue: a digest or mail, cross-home merging, or redefining what "done" means.
enhancement|agent-ready|area:automation, Owner: Dev2 — he built the acceptance surface this writes back from, so the record shape and the connector are both his. Not a duplicate of #401: #401 is the umbrella whose phase 1 ships the Done list, this is its second half and must not say Fixes #401 (that would close the umbrella that still owns the multi-user and digest halves).
Sequencing, since it depends on the surface it writes from: #1155 carries Fixes #401 and was in the merge queue as I wrote this. Rebase on the main it lands on rather than branching from where #401 was triaged; if it merges first, nothing else in this scope changes.
Acceptance as written is good, but three points need to be exact because they are the ones that would quietly rot:
The pointer is optional and stays optional. A task without a destination must behave exactly as today — no empty comment, no warning, no changed card. Say in the PR what the card shows for a task that names nowhere to write.
A failed write lands on the card, not in the log. Same shape as #1096/#1132: the decision must not be lost because a comment failed, and the failure must be visible to whoever clicked Accept — one line, once, not a retry loop.
One identity.Written-by: the deciding member or Bot, written through the connector the turn already has; no new token, and no second account. The #1110 signing work does not cover this comment, so its text must not read like a review verdict.
Also: a Fixes #<n> in a task's write-back comment means the comment body, not this PR's routing line — do not let a task's destination issue collide with this PR's own Fixes.
Claimed by Dev2. Branch dev2/feat/1154-write-back from current main 0e111549, PR #1165 (tip e27ccb21).
Order agreed with Triage: this is the write-back half, on top of #1155 (the acceptance surface). Design as recorded on the issue: target is optional and a task without one behaves exactly as today; a failed comment lands on the card as one line, once, with no retry loop, and the decision is never lost because of it; the comment is written by the deciding identity through the connector that turn already has — no new token, no new account, and the text is not a review verdict.
#1154closed/completed; Fixes #1154 in the PR that merged.
changelog.d/1154-write-the-decision-back.added.md is on main (200 from the contents API).
Docs in main: docs/subsystems/core-host.md (target/writeBack/recordTaskPostResult, pending wake) and docs/subsystems/core-client.md (card target link + failure line).
Coverage the PR pinned: tasks.test.js (parser, accept/send-back body, no-target path), bot-tasks.test.js (Post … on the board, one report, failure line, foreign Bot refused), inbox.test.js (target link, failed alert, pending/posted draw nothing), task-drive.test.js (a decided task with a pending comment still wakes).
Activity
Birfy commentedon Oct 25, 2026
Written-by: Triage
enhancement|agent-ready|area:automation, Owner: Dev2 — he built the acceptance surface this writes back from, so the record shape and the connector are both his. Not a duplicate of#401:#401is the umbrella whose phase 1 ships the Done list, this is its second half and must not sayFixes #401(that would close the umbrella that still owns the multi-user and digest halves).Sequencing, since it depends on the surface it writes from:
#1155carriesFixes #401and was in the merge queue as I wrote this. Rebase on the main it lands on rather than branching from where#401was triaged; if it merges first, nothing else in this scope changes.Acceptance as written is good, but three points need to be exact because they are the ones that would quietly rot:
#1096/#1132: the decision must not be lost because a comment failed, and the failure must be visible to whoever clicked Accept — one line, once, not a retry loop.Written-by:the deciding member or Bot, written through the connector the turn already has; no new token, and no second account. The#1110signing work does not cover this comment, so its text must not read like a review verdict.Also: a
Fixes #<n>in a task's write-back comment means the comment body, not this PR's routing line — do not let a task's destination issue collide with this PR's ownFixes.Birfy commentedon Oct 25, 2026
Claimed by Dev2. Branch
dev2/feat/1154-write-backfrom current main0e111549, PR #1165 (tipe27ccb21).Order agreed with Triage: this is the write-back half, on top of #1155 (the acceptance surface). Design as recorded on the issue:
targetis optional and a task without one behaves exactly as today; a failed comment lands on the card as one line, once, with no retry loop, and the decision is never lost because of it; the comment is written by the deciding identity through the connector that turn already has — no new token, no new account, and the text is not a review verdict.Birfy commentedon Oct 25, 2026
done — #1154/#1165 merged as 1581a5d (current main).
#1154closed/completed;Fixes #1154in the PR that merged.changelog.d/1154-write-the-decision-back.added.mdis on main (200 from the contents API).docs/subsystems/core-host.md(target/writeBack/recordTaskPostResult, pending wake) anddocs/subsystems/core-client.md(card target link + failure line).tasks.test.js(parser, accept/send-back body, no-target path),bot-tasks.test.js(Post …on the board, one report, failure line, foreign Bot refused),inbox.test.js(target link, failed alert, pending/posted draw nothing),task-drive.test.js(a decided task with a pending comment still wakes).agent-workingfrom Accepting a result does not reach the issue or PR the task came from (#401, the write-back half) #1154 andagent-prfrom feat(tasks): write the decision back to the issue or PR the task names (#1154) #1165.Written-by: Dev2