Integrate final v1.11.3 Runtime protocol fixes - #797
Draft
Y1fe1Zh0u wants to merge 8 commits into
Draft
Conversation
Private Runs now complete from normal Assistant content and normalized provider stop reasons. Group Runs stage structured mentions through the dedicated at tool before the existing handoff preflight, keeping public text separate from routing intent. Constraint: Preserve one-version compatibility for legacy finish checkpoints while removing finish from new model-visible tool schemas Rejected: Parse arbitrary final-answer text as control JSON | would corrupt legitimate user-requested JSON responses Confidence: high Scope-risk: broad Reversibility: clean Directive: Keep Assistant content, provider termination, Group mention intent, and delivery side effects as separate contracts Tested: 164 focused backend tests; git diff --check Not-tested: Real provider and live Group child-Run E2E
Normalize embedded reasoning and exact textual tool structures before Runtime completion can publish them. Legacy Group finish JSON is decoded through the existing validation and handoff path, while unverified textual results receive one bounded repair instead of being shown as executed output. Ordinary user-requested JSON remains untouched. Constraint: Thinking must use the existing reasoning channel and tool activity must use real tool events. Rejected: Strip all JSON-looking output | would corrupt legitimate JSON answers and still bypass tool execution. Confidence: high Scope-risk: moderate Directive: Do not broaden JSON detection without preserving ordinary user-requested JSON responses. Tested: 2117 backend pytest tests; focused Ruff checks; git diff --check Not-tested: Live provider and browser E2E
The upgrade test previously special-cased v1.11.2 and let the target image migrate beyond the source image's known Alembic graph. Discover the source image heads and only use target migration code to repair to that boundary when source bootstrap fails. Constraint: The upgrade source is selected dynamically from the previous release tag Rejected: Pin a known revision | breaks when the previous release changes Confidence: high Scope-risk: narrow Reversibility: clean Directive: Never expose target-only revisions to the source image before source assertions complete Tested: sh -n; bash -n; Alembic head and history resolution; git diff --check Not-tested: Full Docker upgrade workflow because the local Docker daemon is unavailable
Derive source heads and their direct parents from the source image, commit the historical parent schema with source migrations, and permit target code to replace only a changed source-head migration. Verify the stored Alembic heads before starting the source app without bootstrap. Constraint: Target Base.metadata must never bootstrap the source-version database Rejected: Retry the target image from an empty database | fabricates target schema at a source revision Rejected: Run every revision in a separate container | preserves boundaries but adds unnecessary CI startup overhead Confidence: high Scope-risk: moderate Reversibility: clean Directive: Keep target migrations behind a committed source-schema boundary Tested: sh, bash, and dash syntax; 17 scoped pytest tests; v1.11.2 graph and digest resolution; git diff check Not-tested: Full Docker upgrade workflow because the local Docker daemon is unavailable
Bound write_file payloads to 6000 characters and expose an explicit overwrite/append contract so models recover from truncated tool arguments with small sequential writes. Preserve the existing write_file-specific retry identity and optimistic workspace concurrency while appending. Constraint: Provider tool arguments can truncate before JSON parsing or tool execution Rejected: Retry the same oversized whole-file call | repeats the transport failure without progress Confidence: high Scope-risk: moderate Reversibility: clean Directive: Keep each append call independently bounded and preserve workspace version checks Tested: 128 focused backend tests; scoped Ruff; git diff --check Not-tested: Real Qwen 3.6 Plus provider run; full backend suite
Integrate PR #794 before Runtime protocol changes so the combined branch validates upgrades against the source image schema boundary. Constraint: The integration must preserve source-version Alembic ownership Confidence: high Scope-risk: narrow Reversibility: clean Tested: PR #794 Drone build 395 passed Related: #794
Integrate PR #793 so ordinary Assistant content terminates naturally, Group mentions stage through at, and protocol envelopes cannot leak into published answers. Constraint: Preserve legacy finish checkpoint compatibility during the transition Confidence: high Scope-risk: broad Reversibility: clean Tested: PR branch recorded 2117 backend tests and 85 frontend tests Not-tested: Final combined live provider E2E Related: #793
Integrate PR #795 after natural completion so write_file enforces bounded chunks and safe append semantics without reintroducing model-visible finish control. Constraint: Preserve PR #793 completion semantics and PR #771 bounded repair identity Confidence: high Scope-risk: moderate Reversibility: clean Tested: PR branch 128 focused backend tests and scoped Ruff Not-tested: Final combined live Qwen E2E Related: #795 #793 #771 # Conflicts: # backend/app/services/builtin_tool_definitions.py
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.
Summary
Integrates the three pending v1.11.3 fixes on a fresh branch from current
main:write_filepayloads with append-based continuationThis is the same integration commit as #796, now published from a branch inside
dataelement/Clawithso Drone can fetch the PR head during clone.The only merge conflict was in
builtin_tool_definitions.py; the resolution keeps #793's removal of the finish-tool seed and #795's 6,000-character write limit.Validation
libgobject-2.0-0sh,bash, anddashgit diff --check: passedRemaining verification
Supersedes #796 for CI checkout purposes.
Related: #793, #794, #795, #796