feat(agent): split-screen agent workspace wired to the interest history - #6494
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
capJavert
left a comment
There was a problem hiding this comment.
Blocking: the branch currently conflicts with main in packages/shared/src/components/notifications/utils.ts; please rebase and preserve the new Agents notification category from main when resolving it. Reviewed by AI.
| const update = useCallback( | ||
| (data: UpdateInterestInput) => { | ||
| if (data.status) { | ||
| setStatusOverride(data.status); |
There was a problem hiding this comment.
Blocking: This optimistic status override is never cleared or rolled back. If updateInterest rejects, the toast reports failure but the pause switch remains in the requested state indefinitely; overlapping toggles can also resolve out of order while the UI stays pinned to the last local value. Please roll the override back on failure and reconcile/clear it after the refetched interest arrives (and disable the switch while the mutation is pending). Reviewed by AI.
|
|
||
| const castVote = (next: 'up' | 'down') => { | ||
| const resolved = vote === next ? undefined : next; | ||
| setVote(resolved); |
There was a problem hiding this comment.
Blocking: The vote is committed locally before the standing-feedback mutation succeeds, while sendFeedback hides the rejection from this component. On failure the user sees both the error toast and the persistent “Noted” state, even though nothing was saved. Please return/await the mutation and only commit the vote on success, or roll it back on rejection. Reviewed by AI.
| row instead of sitting on the wrapper's text baseline. */} | ||
| <span className="hidden tablet:contents"> | ||
| <PanelButton | ||
| label="Debug" |
There was a problem hiding this comment.
Non-blocking question: Is the production Debug tab intentional for every user in the feature cohort? It exposes the raw interest payload plus finding scores/rationales, and the PR description says the review/dev routes are being dropped. If this is still a development aid, can we keep it in Storybook or gate it to an explicit internal/dev condition instead of shipping it in the customer header? Reviewed by AI.
…ry API Rebuilds /agent and /agent/[id] on the split-screen workspace from the mockup PRs (#6392/#6432), with the transcript now rendered from the new interestHistory query: server turns plus a local echo for in-flight commands, picks resolved against real findings, failed runs retryable, and polling while a run is pending. Reply votes persist as standing feedback via triggerRun:false, monitor states read lastRunStatus/lastRunFindings, and the InterestContentBatch notification type now renders. Drops the mockup's usage meter, deliver-around hour, stop button, entry points, and /dev review routes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SL3SG5tmkntMv7UNiyt71p
Rolls the optimistic status override back when updateInterest rejects and clears it once the refetched interest confirms it, with the pause switch disabled while the mutation is pending. Reply votes now commit only when the standing-feedback mutation succeeds and roll back on rejection. The debug panel button and /debug command are gated to team members and local development. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SL3SG5tmkntMv7UNiyt71p
330421d to
4285870
Compare
capJavert
left a comment
There was a problem hiding this comment.
Re-review: the earlier status, failure-handling, debug-gating, and merge-conflict findings are addressed. One blocking persistence mismatch remains. Reviewed by AI.
|
|
||
| const castVote = (next: 'up' | 'down') => { | ||
| const previous = vote; | ||
| const resolved = previous === next ? undefined : next; |
There was a problem hiding this comment.
Blocking: The buttons still behave like reversible votes, but the persisted feedback is append-only here. Clicking the selected vote sets resolved to undefined and clears the UI without retracting the feedback already saved; switching from up to down saves a second, contradictory standing instruction while leaving the first one active. Please either update/delete the persisted feedback when the vote changes, or make the control immutable after a successful save so the UI cannot claim an undo/change that the server never receives. Reviewed by AI.
A cast vote disables both buttons instead of allowing unselect or a switch, since the persisted standing feedback cannot be retracted; the vote still rolls back when the mutation is rejected. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SL3SG5tmkntMv7UNiyt71p
The transcript only shows what a persisted run's blocks reference, which left findings and written posts with no surface: historical content predates interest_run, and runs delivering three or fewer findings never emit a feed link. The header gains Findings and Posts panel buttons backed by the already-fetched interestFindings and interestPosts, the summary posts are passed into the workspace instead of only their count, and a run that wrote a post shows it as an embed on its bubble instead of being dropped when quiet. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SL3SG5tmkntMv7UNiyt71p
The posts target gains an optional postId, so the run bubble's summary-post embed and the post titles inside the Posts panel open that one post in its own tab, titled after the post, instead of landing at the top of the full stack. The plain Posts tab keeps the full list. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SL3SG5tmkntMv7UNiyt71p
Rebuilds /agent and /agent/[id] on the split-screen workspace from the mockup PRs (#6392/#6432), with the transcript now rendered from the new interestHistory query: server turns plus a local echo for in-flight commands, picks resolved against real findings, failed runs retryable, and polling while a run is pending. Reply votes persist as standing feedback via triggerRun:false, monitor states read lastRunStatus/lastRunFindings, and the InterestContentBatch notification type now renders. Drops the mockup's usage meter, deliver-around hour, stop button, entry points, and /dev review routes.
Changes
Events
Did you introduce any new tracking events?
Experiment
Did you introduce any new experiments?
Manual Testing
Caution
Please make sure existing components are not breaking/affected by this PR
Preview domain
https://feat-interest-agent-workspace.preview.app.daily.dev