Repository navigation
fix: handle circular arrays in example output redaction - #22
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. What this changesThe PR registers arrays in the existing visited-object set before recursively redacting their elements. Example: An output array contains { token: "synthetic-secret", text: "visible" } followed by itself.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep this PR open: main still has the circular-array defect, and this focused patch fixes it without an identified correctness regression. Priority: P3 Before mergeNone. FindingsNone. Agent review detailsHow this fits togetherRecipe results, CLI structured output, and Workbench results pass through local redactors before JSON reaches the console or Result panel. flowchart TD
A[Recipe results] --> D[Local redactors]
B[CLI structured output] --> D
C[Workbench results] --> D
D --> E[Visited object tracking]
E --> F[Sensitive field masking]
F --> G[JSON output]
Technical reviewBest possible solution: Retain the focused change applying existing cycle tracking to arrays in each intentionally standalone redactor. Do we have a high-confidence way to reproduce the issue? Main deterministically recurses on an array containing itself; the contributor also reports base-failing regressions, while this read-only review executed no target code. Is this the best way to solve the issue? Registering arrays before traversal fixes the cause using the existing WeakSet and preserves the established standalone ownership and masking policy. AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning medium; reviewed against 6dc6b2349474. Provenance checked
TestingProof path: shipped entry point. SecurityNone. EvidenceWhat I checked:
Likely related people:
Preflight sourceSource unknown. Source comparison at the observed PR snapshot only. Completion is self-reported; body, policy, tests, execution, and report bytes are not verified. Review metrics
LabelsLabel changes:
Label justifications:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment HistoryReview history (1 earlier review cycle)
Reviewed November 5, 2026, 3:21 AM ET / 08:21 UTC (Revision 2). |
|
@clawsweeper re-review |
|
🦞👀 Re-review progress:
|
|
Maintainer validation at 9adec5d: the circular-array input reproduces RangeError in all four original helpers; all four corrected helpers return serializable JSON with nested token redaction and a circular marker. The recipe runMain output entrypoint also passed with the synthetic cyclic result. The full Linux pnpm check passed on an isolated lease: 27 tests, formatting, typecheck, lint (zero warnings/errors), docs, every starter build/typecheck, and both offline CLI smoke commands. Independent review found no actionable P0–P2 issues. This adds Linux validation; it does not claim the originally reported Windows environment failures are fixed or that a live Gateway was tested. Also update Vitest to 4.1.12 to fix both open mocker advisories and refresh compatible starter dependencies after the configured two-day cooldown. Retain pinned pnpm/TypeScript tooling, esbuild security override, and Vite override (updated to 8.3.5). No project version bump or publication. |
|
Merged as 1dec557 after all three exact-head checks passed, including Cookbook and examples. Maintainer proof also passed all 27 tests, lint, formatting, typecheck, docs, builds, offline CLI smokes and synthetic circular-output entrypoint checks on Linux. Independent review was clean through P2. The dispatch HTTP 500 cleared on its one diagnosed infrastructure retry. Contributor credit is preserved in the changelog and squash commit. Main CI and the current-version non-publishing release dry run are now verifying the landed commit. |
Fix self-referencing arrays in the existing standalone output redactors. Arrays now enter the existing visited-object set before traversal, so JSON output retains sensitive-field masking and emits
[Circular]instead of overflowing the stack. Recipe, Quickstart, Coding Agent CLI, and Workbench copies stay synchronized.Also patch Vitest to 4.1.12 to resolve both open mocker advisories and refresh compatible React/Vite, icon, type, and lint dependencies after the two-day cooldown. Preserve the pinned package manager, TypeScript tooling, and security overrides.
Validation:
pnpm checkpassed: 27 tests, formatting, typecheck, lint, docs, every starter build/typecheck, and offline CLI smoke commands.spawn pnpm ENOENTtest failures and a symlinkEPERM; this work does not claim those host limitations are fixed. No live Gateway or browser proof is claimed.No project version bump, tag, or release.