Reuse ordinary workspace tools in group runs#786
Closed
Y1fe1Zh0u wants to merge 2 commits into
Closed
Conversation
Group workspace files now share the ordinary file-tool surface through an explicit workspace scope, while the four group business tools remain unchanged. Legacy group workspace names stay execution-compatible for in-flight checkpoints but are removed from new model contracts. Document reads reuse the existing binary parser and mutations retain durable fencing and reconciliation. Constraint: Group storage authorization and mutation receipts remain separate from private Agent Workspace storage. Rejected: Expose a second generation of group-specific file tools | it repeats the namespace-selection failure and still leaves write/edit parity unresolved. Confidence: high Scope-risk: moderate Reversibility: clean Directive: Do not add Group Workspace move_file until source deletion and target creation can be reconciled as one durable operation. Tested: 2057 backend tests; focused group runtime, model step, tool step, reconciler, builtin contract tests; Ruff; py_compile; diff check. Not-tested: Live 3010 group chat flow before deployment; real S3/Cloudflare document parsing path.
The Slides collection treats slice objects as one slide identifier, which makes ordinary read_document fail with a list/rId exception. Iterate slides normally and stop after the existing 50-slide safety limit. Constraint: Preserve the existing text-only PPTX extraction contract and 50-slide bound. Rejected: Add OCR for picture-only decks | outside this parser bug fix and materially expands runtime cost. Confidence: high Scope-risk: narrow Reversibility: clean Tested: Reproduced the list/rId failure; added a generated two-slide PPTX regression; parsed the reported 1.99MB file without exception; 2071 backend tests passed. Not-tested: OCR for image-only slides; authenticated browser retry after deployment.
Y1fe1Zh0u
added a commit
that referenced
this pull request
Jul 24, 2026
Integrate the shared PR #786/#787 head once so ordinary workspace tools can be exercised against group scope without duplicating identical history. Constraint: PR #786 and #787 resolve to the same head commit 6c6c637 Rejected: Create two merge commits for one commit | duplicate ancestry would add no product change Confidence: high Scope-risk: moderate Tested: Merge completed without conflicts Not-tested: Combined backend regression suite pending
Y1fe1Zh0u
added a commit
that referenced
this pull request
Jul 24, 2026
Waiting-to-cancel transitions can emit distinct delivery receipts from one preserved checkpoint, while legacy group members may no longer resolve an Agent model. Narrow checkpoint uniqueness only for delivery receipts and let shared compaction fall back to the configured Group Compact model when no active Agent model remains. Constraint: Control-plane cancel must preserve the last authoritative Graph checkpoint Rejected: Fabricate a cancel checkpoint | violates the existing Runtime checkpoint contract Confidence: high Scope-risk: narrow Reversibility: clean before distinct same-checkpoint delivery rows are written Directive: Keep delivery idempotency keyed by run_id and idempotency_key Tested: 110 targeted backend tests, Alembic head validation, Python compileall, scoped Ruff Not-tested: Live 3010 migration and reconciliation before commit Related: #785 #786 #787 #788
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.
What changed
workspace_scope=agent|groupto ordinary file tools during Group Runs.group_query_members,group_read_announcement,group_read_memory, andgroup_write_memoryunchanged.read_documentparser for Group Workspace binary files.'list' object has no attribute 'rId'by iteratingpython-pptxslides without slicing.Why
Group runs exposed a second file-tool namespace whose UTF-8-only reader could not parse PDF, DOCX, XLSX, or PPTX files. Models also had to choose between overlapping private and group tool families. A single file-tool surface with an explicit workspace scope keeps the authorization boundary while removing the duplicated model contract.
The PPTX failure was an independent bug in the shared parser:
prs.slides[:50]passes a slice throughpython-pptxas one slide identifier, which later attempts to access.rIdon a list.Impact
move_fileremains Agent-Workspace-only until Group Workspace supports one durable operation covering both source deletion and target creation.Validation
2071 passedacross the complete backend test suite after rebasing onto the deployedd7030db3baseline.list/rIdfailure.426e5060and6c6c6373to the 3010 test environment.