Charles Yao and Claude Opus 4.8
ef255c4dde
copilot: Edit service wiring + create_edit_session + merged registry
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 02:27:55 -07:00
Charles Yao and Claude Opus 4.8
606cff1964
copilot: Edit test_affected_paths + review + reverted handlers
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 02:17:26 -07:00
Charles Yao and Claude Opus 4.8
5287d579d9
copilot: Edit plan_approval (the edit) + apply_changes handlers
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 02:07:26 -07:00
Charles Yao and Claude Opus 4.8
17dd777a29
copilot: Edit capability_check + impact_analysis handlers
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 01:53:47 -07:00
Charles Yao and Claude Opus 4.8
529e1626df
test(copilot): FakeEditDifyPort pre-seeded graph fake
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 01:44:10 -07:00
Charles Yao and Claude Opus 4.8
dddf6b16fd
copilot: canned Edit cognition on PlaceholderAgent + CopilotAgent Edit methods
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 01:37:06 -07:00
Charles Yao and Claude Opus 4.8
f668959ece
copilot: CopilotContext Edit fields + serde defaults
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 01:29:17 -07:00
Charles Yao and Claude Opus 4.8
8f39028fda
copilot: make handle_plan_approval idempotent on loop-back rebuilds
...
continue_adjusting/revert/retry_after_revert all return to
build.initial_plan without resetting the already-built graph. Re-walking
find_resources -> confirm_resources -> approve_plan then re-emits the same
fixed create_node/connect intents, and the second apply_repair raised
ValueError on the colliding node id, dead-ending the session at
build.plan_approval.
Fix: before applying, read the current draft graph and drop any
create_node whose node_id already exists or connect whose (from, to) edge
already exists, so a re-approve after a loop-back is a no-op apply_repair
rather than a crash. built_node_ids is still set from the full 4-node set
regardless of what was actually applied this pass.
Adds an end-to-end loop test via the real Runner covering both the
continue_adjusting and retry_after_revert paths, asserting the session
reaches build.execution with the graph still at 4 nodes / 3 edges.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 23:45:45 -07:00
Charles Yao and Claude Opus 4.8
a2a308fe58
copilot: full Build-flow acceptance + Build service-table tests
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 23:03:52 -07:00
Charles Yao and Claude Opus 4.8
747441ee55
copilot: Build publish + governance_feedback + reverted handlers
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 22:45:07 -07:00
Charles Yao and Claude Opus 4.8
b6e857b931
copilot: Build test_and_repair (canned) + review handlers
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 22:34:52 -07:00
Charles Yao and Claude Opus 4.8
ed4db951e6
copilot: Build resource_recommendation + plan_approval (the build) + execution
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 22:17:56 -07:00
Charles Yao and Claude Opus 4.8
2ed1a5b42a
copilot: strengthen Build goal_analysis merge test discrimination
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 22:07:25 -07:00
Charles Yao and Claude Opus 4.8
3204c31b06
copilot: Build goal_analysis + initial_plan handlers
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 22:00:12 -07:00
Charles Yao and Claude Opus 4.8
25b897353d
copilot: Build session bootstrap + capability_check handler + merged registry
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 21:49:48 -07:00
Charles Yao and Claude Opus 4.8
d0f6b09319
copilot: canned Build cognition on PlaceholderAgent + CopilotAgent Build methods
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 21:35:59 -07:00
Charles Yao and Claude Opus 4.8
4be0e77ade
copilot: rename FixContext -> CopilotContext + additive Build fields
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 21:24:48 -07:00
Charles Yao and Claude Opus 4.8
32077736ba
test(workflow-copilot): widen _StubDifyPort.apply_repair with on_canvas param
...
Completes Slice 1 Task 9's 'widen all DifyPort implementers' invariant — the
whole-branch review caught this third conformance stub that the per-task
reviews (aware of only WorkflowServiceDifyPort + FakeDifyPort) missed.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 11:13:05 -07:00
Charles Yao
b3b4776e95
feat(workflow-copilot): opt-in per-intent canvas-event emission through apply_repair
2026-08-22 10:57:37 -07:00
Charles Yao and Claude Opus 4.8
c8c1a7052d
feat(workflow-copilot): apply_repair dispatches all 5 verbs + real graph diff feeds change_set
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 10:46:12 -07:00
Charles Yao and Claude Opus 4.8
18e45a1964
feat(workflow-copilot): diff_graphs real before/after graph diff
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 10:34:43 -07:00
Charles Yao
df584c7221
feat(workflow-copilot): canned node-default-config registry for Build's 4 node types
2026-08-22 10:28:44 -07:00
Charles Yao and Claude Opus 4.8
59b781ac50
feat(workflow-copilot): apply_insert_between graph mutation
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 10:22:44 -07:00
Charles Yao and Claude Opus 4.8
5c950b1a9a
feat(workflow-copilot): apply_connect graph mutation
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 10:15:45 -07:00
Charles Yao
5006a34226
feat(workflow-copilot): apply_delete_node graph mutation
2026-08-22 10:08:58 -07:00
Charles Yao and Claude Opus 4.8
0097f7d2b1
fix(workflow-copilot): ruff-clean create_node tests + explicit-position sentinel + deepcopy config
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 10:04:19 -07:00
Charles Yao and Claude Opus 4.8
7a8e27c06d
feat(workflow-copilot): apply_create_node graph mutation
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 09:54:58 -07:00
Charles Yao and Claude Opus 4.8
1e3578d341
feat(workflow-copilot): document + enforce MutationIntent's per-op arg contract
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 09:48:05 -07:00
Charles Yao
f9b38f9be0
fix(workflow-copilot): reachable reject at approval gate, client-only-action guard, contract doc fixes
2026-08-22 01:55:17 -07:00
Charles Yao and Claude Opus 4.8
7b2e975c5f
feat(workflow-copilot): typed contract schemas (TS + JSON) with lockstep check
...
Add contract_gen.py: a pure, deterministic generator that discovers every
StrEnum/dataclass/card defined in contract.py (plus EntryMode,
ConversationItem, and SessionView) via introspection and emits the checked-in
contract_schema.json (JSON Schema draft 2020-12) and
web/.../contract/types.ts. The discriminated ConversationItem union is built
from _Card.__subclasses__(), one oneOf/union branch per card kind.
test_contract.py gains a lockstep test that byte-compares a fresh
generate() call against the checked-in files (guards drift/hand-edits) and a
jsonschema.validate test that proves the generated schema is itself valid
and accepts a real SessionView instance.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 01:10:47 -07:00
Charles Yao
d089a84da7
refactor(workflow-copilot): re-express Fix conversation items onto the card vocabulary
2026-08-22 00:48:03 -07:00
Charles Yao
fd01a6cfe8
feat(workflow-copilot): data-driven SessionView.actions + action_id endpoint acceptance
2026-08-22 00:32:11 -07:00
Charles Yao
9a83b67cf6
feat(workflow-copilot): item/trace/canvas SSE frames + extended state frame
2026-08-22 00:15:21 -07:00
Charles Yao
55752cd435
feat(workflow-copilot): 17-kind card vocabulary + submit payload types
2026-08-22 00:00:46 -07:00
Charles Yao
5a098f89d4
fix(workflow-copilot): _run_status reports COMPLETE for Build/Edit terminal states
2026-08-21 23:49:45 -07:00
Charles Yao
eb1ee3981a
feat(workflow-copilot): Action/CheckpointRef + SessionView entry_mode/phase/actions/checkpoint
2026-08-21 23:36:53 -07:00
Charles Yao
6bceb1be62
feat(workflow-copilot): contract enums + Build/Edit PcState sets
2026-08-21 23:24:13 -07:00
Charles Yao and Claude Opus 4.8
72c171b63c
feat(copilot): record the failed Dify run as a CopilotRun on session create
...
create_fix_session now treats failed_run_id as the Dify workflow-run id and
records it as an immutable original-failed CopilotRun, pointing
fc.failed_run_id at that row so the async diagnose can resolve it. Closes the
FE->diagnose gap for a live Fix flow.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-18 21:46:53 -07:00
Charles Yao and Claude Opus 4.8
b8b381afc0
feat(copilot): register console workflow-copilot routes
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-18 21:46:52 -07:00
Charles Yao
925491fac4
feat(copilot): SSE stream route (snapshot-first + heartbeat)
2026-08-18 21:45:07 -07:00
Charles Yao
e82bef9ec3
test(copilot): compose real console decorator stack in routes test
2026-08-18 21:45:07 -07:00
Charles Yao
388edeef80
feat(copilot): console JSON routes (create/view/actions/messages)
2026-08-18 21:45:07 -07:00
Charles Yao
6431d146dc
feat(copilot): service wiring + view-serialize + error-map helpers
2026-08-18 21:45:07 -07:00
Charles Yao
9d982be3d0
feat(copilot): pluggable CopilotAgent factory (P3c seam)
2026-08-18 21:45:07 -07:00
Charles Yao
0cfea5cea4
feat(copilot): workflow_copilot_enabled feature flag
2026-08-18 21:45:07 -07:00
Charles Yao
38cf016ee3
fix(copilot): construct advance deps inside try so the lock always releases
2026-08-18 21:45:07 -07:00
Charles Yao
837ee6e593
test(copilot): async usecase→task→SQL acceptance
2026-08-18 21:45:06 -07:00
Charles Yao
3099be4c69
feat(copilot): interrupted-session reconciler (beat)
2026-08-18 21:45:06 -07:00
Charles Yao and Claude Opus 4.8
1b975eb72e
feat(copilot): async advance_session Celery task
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-18 21:45:06 -07:00
Charles Yao
f4ff26b2a7
test(copilot): cover dispatch lock-release-on-enqueue-failure + submit_message payload
2026-08-18 21:45:06 -07:00