mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
[GH-ISSUE #5836] [Bug] Artifact capacity refusals lose their typed boundary and recommend narrowing an unsupported path #3532
Closed
opened 2026-10-31 00:41:34 +00:00 by bsakaguchi
·
2 comments
No Branch/Tag specified
main
codex/procedure-reference-stacked
release-please--branches--main--components--rea-agents
release-please--branches--main--components--rea-agents--release-notes
codex/kuna-independent-retry
codex/byte-search-overlay-coverage
codex/open-failure-target-receipt
codex/kuna-xref-evidence
codex/ghidra-ambiguous-procedure-recovery
codex/function-source-bundle
codex/trace-function-integration-prototype
codex/snapshot-source-closure
codex/recorded-evidence-array-pages
codex/evidence-recovery-redesign
codex/trace-feature-address-scope
codex/call-discovery-scope
codex/ghidra-literal-candidate-evidence
codex/decompile-directory-independent-retry
codex/retry-provenance-base
codex/value-flow-capability-experiment
codex/ghidra-containing-instruction
cursor/readme-discord-button-ef9f
dependabot/github_actions/actions/setup-node-7.1.0
dependabot/github_actions/actions/upload-artifact-7.0.2
dependabot/npm_and_yarn/npm-minor-and-patch-d8d97ce6df
codex/kuna-1989
fix/8559-native-ui-fixture-ownership
fix/8555-go-verifier-mcp-ownership
codex/provider-capability-recovery
fix/8642-rizin-target-stdin
codex/ghidra-memory-effect-scope
codex/ghidra-annotation-entry-selector
codex/ghidra-readonly-recovery
codex/ghidra-regex-verifier-recovery
codex/evidence-discovery-view-guidance
fix/8545-bulk-append-overflow
fix/8428-navigation-refusal-alternatives
codex/address-context-recovery
codex/matching-member-limitations
codex/unknown-scope-contract
codex/evidence-view-guidance
feat/8373-native-trace-views
codex/ghidra-snapshot-verifier-binding
codex/elf-export-visibility
codex/evidence-view-recovery
codex/native-reference-cli-help
codex/provider-candidate-observation-scope
codex/kuna-session-verification
codex/ghidra-switch-lifetime-guidance
codex/pseudocode-paging-discovery
codex/clarify-evidence-view-support
codex/kuna-xrefs-selector-recovery
codex/context-capacity-recovery
codex/evidence-closure-large-links
codex/same-function-evidence-identity
codex/ghidra-verifier-inspected-jdk
codex/audit-guided-workflows
codex/crash-prompt-retained-dossiers
codex/analysis-view-error-recovery
codex/kuna-verifier-target-selection
codex/ghidra-selected-project-call-coverage
codex/docs-native-analysis-scope
codex/ghidra-java-socket-boundary
codex/ghidra-retained-snapshot-verifier
codex/ghidra-search-inventory-facts
fix/8284-zero-argument-parameter-bindings
fix/8198-ui-action-handler-offset
fix/8257-elf-entry-label-identity
fix/8304-deferred-output-schema-projection
fix/8277-call-path-computed-target-uncertainty
fix/pr-8089-conflicts
fix/ci-static-duplicate-export
dependabot/npm_and_yarn/lint-staged-17.6.0
dependabot/github_actions/actions/download-artifact-8.0.2
dependabot/npm_and_yarn/write-file-atomic-8.0.0
dependabot/npm_and_yarn/canonicalize-5.1.0
dependabot/github_actions/actions/cache/restore-6.1.0
dependabot/npm_and_yarn/toon-format/toon-4.4.0
dependabot/github_actions/actions/deploy-pages-5.0.1
codex/review-fixes-pr-2403
codex/review-fixes-pr-2400
codex/process-terminal-width
codex/test-brittleness-cleanup
verify/7167-browser-connect-macos
fix/7167-browser-connect
feat/native-matching-allowance-setting
feat/browser-scenario-dry-run
test/managed-caller-parameters-20261024
codex/parser-fortythird-boundaries
fix/6926-pinvoke-platform-decorations-20261023
fix/6889-har-body-encoding-20261023
fix/6888-sqlite-schema-budget-20261023
fix/dependency-security-gates-6708
cursor/evidence-overwrite-rebase-b4ac
feat/4057-verify-native-exports
fix/windows-acl-observer-overhead-20261022
cursor/erlang-beam-restack-4476
cursor/pe-certificate-review-bf32
fix/6116-javascript-application-fs-errors
fix/6061-unmapped-runtime-script-unknown
feat/browser-scenario-summary
fix/pe-certificates
codex/verify-3407
cursor/rebase-5699
cursor/rebase-5352
cursor/rebase-5600
cursor/fix-cli-schema-omission-10a8
codex/audit-hopper-shutdown-reasons-20261021
fix/demangle-swift-omitted-record
fix/nib-boolean-value-types
cursor/cancellation-partial-observation-a5ac
fix/ib-object-limit-reasons
fix/electron-fuse-limit-advice
fix/kuna-doctor-dangling-cache
fix/fixed-budget-refusal-advice
fix/js-ipc-listener-dedup
fix/js-return-member-provenance
fix/dmg-integrity-retry-advice
fix/ida-doctor-readiness
fix/kuna-version-probe-output-drain
fix/legacy-swift-runtime-name-matching
fix/dylib-lazy-load-commands
fix/browser-scenario-startup-cancel
fix/swift-nested-punycode-classification
fix/compare-unselected-scopes
fix/objc-method-budget-coverage
fix/dmg-mounted-root-observations
audit/ci-tests-20261019-round2
release/6.7.0
fix/wabt-cleanup-retry-resolution
fix/electron-fuse-elf-pe-architecture
fix/native-plist-descriptor-ownership
fix/kuna-caller-cleanup-ownership
experiment/atomic-codemode-20261016
review/first-contributor-3776
fix/call-resolution-full-read-cycles
fix/member-mutation-selection-repeat
experiment/atomic-re-tools-20261015
perf/member-mutation-lazy-origins
perf/static-network-mutation-index
fix/hopper-startup-lifecycle
audit/3050-windows-proof-20261015
feat/windows-window-capture-2183
audit/3049-windows-proof-20261015
audit/3735-macos-fixtures-20261015
fix/batch-decompile-null-pseudocode
fix/kuna-inventory-honors-jobs
experiment/browser-codemode-tool-design-20261015
fix/hopper-clean-runtime-argv
codex/review-2049-27f1b367
review-fixes/pr-2787-routing
fix/3360-scoped-this-emitters
fix/3367-replaced-global-effects
fix/3838-compact-any-value-items
test/hopper-download-probe-20261015
codex/windows-runtime-creation-red-green-20261015
codex/windows-readonly-root-red-green-20261015
codex/windows-root-share-red-green-20261015
codex/exp-1685-win-mcp-startup
codex/bug-sweep-20261015
investigate/2190-windows-package-phases
investigate/3543-macos-cli-deadline
perf/3281-reverse-tools-feedback-quality
fix/3406-hopper-doctor-fixture
fix/3341-wrapper-require-test-context
fix/3301-owned-uninstall-fixtures
fix/3164-compiler-input-ownership
fix/pcap-cleanup-stdout-newline-20261014
perf/interface-builder-summary
codex/review-fixes-pr-1977
fix/ghidra-effective-jvm-platform
fix/docs-turkish-rust-link-20261013
fix/main-maintenance-ci-20261010
fix/recover-binary-session-process-effects
codex/review-fixes-pr-2457
codex/ci-required-cancellation-gate
fix/main-format-baseline-20261013
fix/setup-preserve-entry-fields
cursor/restore-main-checks-1ffc
fix/ghidra-bridge-hashmap-import
codex/shared-ci-jadx-json-default-20261013
codex/shared-ci-ghidra-test-groups-20261013
codex/shared-ci-java-fixture-format-20261013
codex/fix-intrinsic-invocation-boundaries
test/release-preflight-reusable-jobs
test/js-parameter-provenance-expectation
fix/linux-hopper-verification-current
test/2419-ghidra-elf-probe-size
followup/pr-1544-native-ida
codex/fold-pr-2230-contribution
docs/readme-responsible-use
fix/issue-2064
fix/issue-2050
fix/issue-2053
fix/issue-1968
fix/issue-1945
experiment/codemode-bridge-20261011
fix/tool-effects-negative-wording-1904-20261012
fix/1842-electron-interop-provenance
feat/recover-javascript-multi-input
refactor/website-i18n-prep
fix/nativeaot-pe-virtual-extent
fix/browser-verifier-ci-hang
fix/pe-resources-input-selection
docs/beginner-friendly-guides
docs/beginner-setup-guide
fix/javascript-analysis-worker-1563
fix/1649-ghidra-duplicate-names
fix/javascript-export-keys-integration-1369
test/maintenance-boundary-contracts-20261011
review/javascript-export-keys-1369
review/process-live-progress-1483
test/javascript-1495-growth-ratio
fix/ci-escape-timing
docs/normalized-terminal-geometry-1450
release/6.3.0
archive/release-6.3.0-pr1381
release/6.2.0
fix/electron-preload-dynamic-override
fix/javascript-self-referential-bundler-edges
release/6.1.0
cursor/grok-client-cherry-pick-0b56
feat/signature-posture
feat/dyld-shared-cache
feat/artifact-integrity-policy
feat/pkg-inventory
release/6.0.0
chore/sync-release-5.0.0
release/5.0.0
cursor/cloud-agent-node-787e
fix/javascript-xhr-open-endpoints
review/pr-711-realpath-fallback-wording
cleanup/replay-confinement
codex/test-suite-performance
codex/issue-foundations
codex/address-open-issues-2026-07-20
agent/javascript-vite-rollup-esbuild-adapters
agent/process-cleanup
agent/triage-integration
agent/unknown-commands-registry
feat/mcp-identity-metadata
morlvps/issue_cleanup
codex/installer-redesign
morl/roadmap-investigation-core
morl/roadmap-investigation-docs
release-please--branches--main--components--rea
rea-agents-6.8.0
rea-agents-6.7.0
rea-agents-6.6.0
experiment/atomic-codemode-wait-runtime-20261016
rea-agents-6.5.0
rea-agents-6.4.0
rea-agents-6.3.0
rea-agents-6.2.0
rea-agents-6.1.0
rea-agents-6.0.0
rea-agents-5.0.0
rea-agents-4.1.0
rea-agents-4.0.1
rea-agents-4.0.0
rea-agents-3.2.1
rea-agents-3.2.0
rea-agents-3.1.0
rea-agents-3.0.0
rea-agents-2.7.0
rea-agents-2.6.0
rea-agents-2.5.1
rea-agents-2.5.0
rea-agents-2.4.0
rea-agents-2.3.0
rea-agents-2.2.0
rea-agents-2.1.0
rea-agents-2.0.0
rea-agents-1.7.0
rea-agents-1.6.0
rea-agents-1.5.0
rea-agents-1.4.0
rea-agents-1.3.0
rea-agents-1.2.0
rea-agents-1.1.0
rea-agents-1.0.0
rea-agents-0.5.0
rea-agents-0.4.0
rea-agents-0.3.0
rea-0.2.1
rea-0.2.0
Labels
Clear labels
area: bridge
area: bridge
area: build
area: build
area: build
area: cli
area: domain
area: evidence
area: mcp
area: native
area: providers
area: runtime
area: server
area: setup
area: tests
bug
design
documentation
enhancement
enhancement
enhancement
experiment
help wanted
i18n
invalid
P0: critical
P1: high
P2: medium
P2: medium
P2: medium
P3: low
performance
provider-request
pull-request
Mirrored from GitHub Pull Request
question
roadmap
triage
No labels
area: bridge
area: bridge
area: build
area: build
area: build
area: cli
area: domain
area: evidence
area: mcp
area: native
area: providers
area: runtime
area: server
area: setup
area: tests
bug
design
documentation
enhancement
enhancement
enhancement
experiment
help wanted
i18n
invalid
P0: critical
P1: high
P2: medium
P2: medium
P2: medium
P3: low
performance
provider-request
pull-request
question
roadmap
triage
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
morluto/rea#3532
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Originally created by @coygeek on GitHub (Oct 21, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/5836
Before submitting
Area
Evidence, artifacts, or reconstruction
Observed behavior
An executed public CLI reproduction with a 7,247-byte synthetic PyInstaller executable containing 129 outer-compressed PYZ images returns
code: truncatedand the same generic sentence for bothmessageandremediation.action:The underlying refusal is the reader's 128-file private-storage capacity allowance, independent of input byte size. Its precise explanation survives in
details.detail, but the reader's typedcapacityboundary is absent from the public diagnostic. The advertisedinspect-artifactcommand has no internal-member selector with which to follow the path-narrowing advice. A 207-byte one-image control succeeds. The repeated 129-image refusal has identical exit status, stdout and stderr.Reproduction
Run from the source checkout below with its locked dependencies and existing build. Save the following as
reproduce.pyin an external scratch directory, setVERIFY_WORK_ROOTto that directory, and execute the script with Python 3. This is the executed fixture and CLI procedure. It uses the repository's own CArchive/PYZ fixture builder through the installedtsxdependency, isolates home/configuration/state/cache/temporary paths, and runs no target code or external analysis engine.The failing case exits 1 with empty stderr. The one-image control exits 0 with empty stderr. The script invokes
node scripts/rea.mjs inspect-artifact <fixture> --json; each generated member has an empty valid PYZ payload wrapped in outer zlib compression.Expected behavior
Keep the intentional safe refusal, identify the actual capacity allowance in the user-facing diagnosis and recovery, and preserve the producer's resource distinction in structured error data. Recovery should explain the fixed 128-file allowance and the operation's available choices. It should not imply that this command can select a narrower internal path.
This expectation follows the repository's requirement to preserve meaningful failure reasons at typed boundaries in AGENTS.md. The producer contract explicitly defines a limit boundary so callers need not infer it in ArtifactReader.ts. The capacity guard documents that its allowance is independent of byte budgets in PyInstallerPyzStore.ts, and emits the exact constraint with
boundary: "capacity"at the refusal. The CLI contract exposes no member-path filter.This finding does not establish that
truncatedmust becomeresource_constraint, prescribe a new schema key, or request a larger allowance.Impact and scope
P2: a bounded diagnostic and recovery defect. An analyst sees size-oriented guidance for a filesystem-capacity refusal, and a structured caller loses the typed resource distinction unless it infers it from prose. Reading
details.detailis an available manual diagnostic workaround. It does not restore a structured boundary or make internal-path narrowing available.The observed scope is
inspect-artifacton the generated PyInstaller fixture on the platform below. The intentional refusal still occurs; no incorrect successful inventory, data loss or isolation failure was observed. A separate executed 117-byte ZIP with a central-directory declaration of 300,000,000 uncompressed bytes also returned the generic message/action while retaining its actual 268,435,456-byte decompression-budget explanation indetails.detail. That ZIP probes declared expansion admission, not successful decompression.Other artifact operations use the same translation and presentation functions by source inspection, but MCP, extraction, Godot metadata refusals and other platforms were not executed for this report.
REA version
rea-agents 6.7.0; source revision
a5f982de8d, using the checkout's existing compiled CLI.Runtime and platform
Node v26.12.0; macOS 27.0.1; arm64; Python 3 and repository-installed tsx for fixture generation; no Hopper, Ghidra or IDA involved.
Target and artifact context
Synthetic ELF with appended PyInstaller 2.1 CArchive, Python version field 309, and 129 empty valid PYZ images stored as outer-compressed type-z members; one-image control.
Interface
CLI
Earliest failure stage
Transport or result projection
Relevant output or evidence
Trimmed stdout from the executed replay script; no field in the failing JSON was omitted:
Source inspection identifies the reachable guard in PyInstallerArtifactReader.ts: it counts outer-compressed type-z entries and admits the complete private-file footprint before spooling. The observed error confirms that this guard, rather than a byte-expansion or metadata guard, rejected the fixture.
Typed outcome or recovery expected
Retain the precise constraint already available in
details.detail, expose its capacity nature without requiring prose parsing, and give recovery that applies to this operation. Preserve the refusal and its non-retryable status. No restoration or fix was tested.Analysis or suspected cause
Source-derived: translateArtifactFailure copies the reason and message into the domain error, but does not copy the reader boundary into its public fields. It retains the original cause internally. The details projection emits no boundary, and artifactMessage uses a fixed size sentence for
limit, ignoringdetail. Remediation falls back to that same message.Additional context
No last-known-good revision was established. Read-only searches of open and closed issues and PRs found related integrity, overwrite and other fixed-budget reports, but no same capacity-boundary failure. Related: #5808 proposes a broader audit of residual fixed-allowance recovery without reporting this capacity-boundary failure.
@XinwangTao commented on GitHub (Oct 21, 2026):
Confirmed — the generic "too large / narrow the path" message misrepresents a fixed 128-file capacity refusal and recommends an action the inspect-artifact CLI cannot perform (no member-path filter exists). The typed boundary: "capacity" and the precise explanation are already present at the producer, so propagating the boundary into the public diagnostic and aligning remediation with actually available choices (not implying narrower-path selection) would fix the mismatch without changing the refusal itself. The ZIP budget case confirms this is a general translation issue, not PyInstaller-specific.
@coygeek commented on GitHub (Oct 24, 2026):
Checked the reported fix on
mainatd87e73f2db.Artifact reader boundary now survives translation and public projection, limit messages use the precise producer detail, and capacity-specific recovery advises respecting reported capacity rather than narrowing an unsupported member path. The original PyInstaller 128-file capacity guard remains. The translation regression asserts boundary/detail/message/nonretryability for capacity/file-size/memory.
Implementation: ArtifactOperationFailure.ts, analysisErrorPresentation.ts.
The relevant regression checks in ArtifactOperationFailure.test.ts passed in the focused test run on this revision. This closure is based on the current source and those checks; provider fixtures do not establish a real-engine run. Closing as completed on main.