Repository navigation
Conversation
The card's only prose was a templated line ("This Task is still in
progress.") that restated the status badge. It now shows the agent's own
account above the counted metrics:
- Goal: the first goal recorded, or the first step's title as "Started with".
- Progress: the newest progress note from the root session(s); before notes
existed, the lead line of the newest closed step's summary (or blocker) as
"Latest step", full text on hover.
- Next: the next_step recorded with that account.
A caption labels it agent-reported, says when it was written and which step
it came from, and notes when work continued afterwards. The counted metrics
always render below it, and the account never feeds the decision.
- receipt: dimensions.outcome.agent_report (first-wins goal, root-only
newest progress, subagent notes excluded unless nothing else exists)
- receipt snapshot projector revision 1 -> 2 so saved receipts rebuild
- Swift: ReceiptAgentReport model + ReceiptAgentReportPresentation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The dashboard fixture's two receipts now carry an agent_report: the verified receipt a written goal and progress note, the blocked receipt the stand-in path (step title as "Started with", blocker as "Blocked on", next step, and "work continued after this was written"). The 12 Work receipt references are re-recorded on macos-26-xcode-26.6-arm64-2x; no other suite changed. The first render showed the blocked card repeating the agent's blocker twice, once as the decision sentence and once under "Blocked on". The card now drops the decision sentence when the account already says the same thing (and for "still in progress", which restates the badge); every other decision sentence stays. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The task page's Recorded outcome card used to have one line of prose: a templated sentence such as "This Task is still in progress. — agent reported", which just repeats the status badge. The card now shows the agent's own account, above the counted metrics:
goalrecorded on the Task. Until agents write one, the first step's title, labelled Started with.progressnote from the root session(s). Before notes existed, the first line of the newest closed step'ssummary, labelled Latest step (full text on hover), or itsblocker, labelled Blocked on.next_steprecorded with that account.A caption labels the whole block Agent reported. It says when the account was written and which step it came from, and notes when work continued after it was written (more than 30 minutes of later activity). The counted metrics (sessions, cost, claims supported, check runs) always render below it. The account never feeds the decision.
The fallback means existing tasks get a real account today; they don't wait for weeks of
progressnotes. For example, the live "jaq security review" task now reads:How the account is chosen (
receipt._agent_report)dimensions.outcome.agent_report(additive; older app builds ignore it). The receipt snapshot projector revision goes 1 → 2, so saved receipts rebuild once.Not in this PR
Tests
tests/test_receipt_agent_report.py(9 tests) covers first-wins goal, excluding subagent notes, the subagent-only fallback, the summary lead, the blocker, the stale flag both sides of the 30-minute threshold, and end to end through/v1/receipt.ReceiptOverviewTestsadds 5 Swift tests: labels, stand-in lead plus full text, blocker, empty report renders nothing, when to drop the decision sentence, and older receipts still decode.test_display_alignment::test_real_titles_are_worth_showing_in_full, which reads the local store and fails the same way onmain. Full Swift suite: 662 tests, 0 failures, 7 skipped (the visual suites, which run viaScripts/visual-snapshots).Fixtures/dashboard.jsongives both receipts anagent_report. The verified receipt has a written goal and progress note; the blocked receipt uses the fallback path (Started with, Blocked on, Next, and "work continued after this was written"). The 12WorkVisualRegressionTestsreceipt references are re-recorded onmacos-26-xcode-26.6-arm64-2x(light, dark, minimum and accessibility sizes, stale and attention states). The other six visual suites verify unchanged. This caught a real bug, now fixed: the blocked card showed the agent's blocker twice, once as the decision sentence and once under "Blocked on". The decision sentence is now dropped only when the account already says the same thing, or when it only restates the status badge ("still in progress").--snapshot-work-fixture.🤖 Generated with Claude Code