Skip to content

feat: non-blocking Agent and editable AI resume canvas - #73

Merged
avabbbb merged 32 commits into
mainfrom
feat/agent-resume-canvas-2026-10
Oct 8, 2026
Merged

avabbbb merged 32 commits into
mainfrom
feat/agent-resume-canvas-2026-10

Conversation

@avabbbb

@avabbbb avabbbb commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Summary

Applies the remaining OfferU 2026-10 implementation patches on top of current main.

0000-docs-restructure.patch is intentionally excluded: that work is already merged in PR #67. This PR applies the functional work from 0001–0003.

Agent interaction

  • keep input, Skill selector and quick actions usable while a Run is active or waiting
  • add /runtime/runs/{id}/steer for mid-run guidance
  • queue messages that cannot be injected immediately
  • park waiting Runs without cancelling or approving them
  • switching/new conversations detaches the stream instead of aborting the Run
  • preserve newer main-side resume/recovery state while integrating the patch

Resume canvas

  • add paper / 「纸 · 可直接编辑」 template
  • 1:1 finished resume is the editor; direct text edits write back to source fields
  • add/delete bullets and items, Esc rollback, page-overflow marker and paper tone switch
  • add inline AI diffs with adopt / modify / skip
  • selection toolbar: 更精炼 / 对齐岗位 / 换个说法 / 留言给 AI
  • collect multiple comments and send them to Agent in one request
  • open Agent rail/panel automatically for composed canvas intents

Conflict semantics

  • change proposal conflict detection from whole-resume invalidation to target-section conflict
  • edits elsewhere no longer invalidate an unrelated suggestion
  • if the exact target section was edited by the user, the suggestion cannot overwrite it; user version wins
  • JD/profile fact changes still retain the existing proposal-staleness behavior

Tests added/updated

  • Agent never-locks / steer / queue / navigation behavior
  • editable Paper template
  • inline proposal diff and canvas comment tray
  • page-level Paper proposal interactions
  • section-level resume proposal conflicts
  • Agent compose mailbox

Integration note

The patch was generated against an earlier main. Current main contains newer AgentPanel state (sendRequestPendingRef, resume-candidate/recovery flow). Those newer changes were preserved while integrating the non-blocking interaction behavior.

This PR is intentionally not merged.

avabbbb added 30 commits October 8, 2026 16:21
avabbbb and others added 2 commits October 8, 2026 16:41
…ntics

- a pending Ask is not busy: new message starts a new turn, old Run parked (main 5092639 rule)
- double-send guard lives in startTurn; queued message sent exactly once after the live turn
- update main's duplicate-start test to the queue semantics
Fixes 4 failing AgentPanel tests on PR #73.
@avabbbb

avabbbb commented Oct 8, 2026

Copy link
Copy Markdown
Owner Author

Fix for PR #73 (feat/agent-resume-canvas-2026-10)

PR #73 at a97a80a fails 4 tests in frontend/src/components/workbench/AgentPanel.test.tsx
(main 5092639's tests conflict with 0001's never-lock semantics):

  • allows a new message while an Ask answer remains pending
  • keeps the composer editable during a request while preventing duplicate starts
  • detaches the stream when the panel closes without cancelling its durable Run (cascade)
  • sends the auto routing sentinel for a plain natural-language request (cascade)

This one commit touches only AgentPanel.tsx and AgentPanel.test.tsx:

  • pending Ask is not "busy": a new message starts a new turn and parks the old Run (main's rule)
  • double-send guard moved into startTurn; a message sent while running is queued and sent exactly once
  • main's duplicate-start test now asserts the queue semantics

Verified locally on top of a97a80a: npm run typecheck ✅, npx vitest run ✅ 40 files / 181 tests.

@avabbbb
avabbbb merged commit f09a79a into main Oct 8, 2026
13 of 14 checks passed
@avabbbb
avabbbb deleted the feat/agent-resume-canvas-2026-10 branch October 8, 2026 16:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant