fix(web): stamp explicit incomplete/stop_reason instead of UI prose matching #96
No reviewers
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_shrimp!96
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "development_structured_incomplete_field"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Replaces the UI's brittle prose-matching (
isIncompleteReply()over ~8 hardcoded phrases) with an explicitincomplete(boolean) /stop_reason(string) field stamped by the server on every turn/job reply. The UI keys its Continue/Retry affordance off that field and falls back to the prose heuristic only when the field is absent (older daemon). Detection reuses existing server-side signals — no new prose matcher.Related Issue
Closes #40
Changes
proof_run.rs): newturn_incomplete_signal()— the single server-owned text fallback, reusingreply_indicates_incomplete_run()(no new phrases).session.rs): stampincomplete/stop_reasonon the synchronousmessage.sendresponse and thechat.completeSSE event.core.rs): stampincomplete/stop_reasonon theturn:endSSE event, matched against the engine-ownedSTEP_LIMIT_REPLY_MARKER;Errarm reportsstop_reason: "error".contract.rs):stamp_incomplete_signal_into_details()derives the signal from the structured step-limit flag, thenfailure_kind, then the reply fallback; called at the proof/autonomy job-details persistence point and during subagent reconciliation (beforefailure_kindis cleared).store.ts): prefer the server field at all 3 call sites (trackJobUntilDoneterminal, syncmessage.sendreturn,turn:endSSE);isIncompleteReply()demoted to a documented legacy fallback. Regenerated production bundle.turn_incomplete_signal()andstamp_incomplete_signal_into_details()(structured flag,failure_kind, clean run).Test Results
cargo test -p hero_shrimp_server— 301 passed, 0 failed.cargo check -p hero_shrimp_engine -p hero_shrimp_serverclean.vite buildsucceeded;tscshows only pre-existing unrelated errors.isIncompleteReply()relies on 7 hardcoded magic strings #403482b99cccf6c9572a2dView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.