Repository navigation
fix: preserve proven quote boundaries during shell inspection - #130
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 changesThis PR preserves proven closing-quote boundaries while retaining destructive-command inspection and conservative reporting for reconstructed shell words. Example: SkillSpector inspects example.sh containing echo "a del b".
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep open: this maintainer-authored PR addresses a parser defect still present on main; the previous P1 finding is addressed, and no new actionable defect was found. Priority: P2 Before mergeNone. FindingsNone. Agent review detailsHow this fits togetherClawScan patches its pinned SkillSpector runtime, which consumes skill source text and emits raw findings and an inspection ledger for scanner and judge consumers. flowchart LR
A[Skill source files] --> B[SkillSpector static runner]
B --> C[Command and quote parsing]
C --> D[Destructive operand inspection]
D --> E[Raw findings and inspection ledger]
E --> F[ClawScan scanner adapter]
F --> G[Independent judge]
Technical reviewBest possible solution: Land the focused parser repair while preserving destructive findings, unresolved-word uncertainty, and the existing partial-report contract. Do we have a high-confidence way to reproduce the issue? The pinned parser source and credited upstream reproduction establish the harmless balanced-quote failure; no target code or tests were executed during this review. Is this the best way to solve the issue? The change uses the existing command-word parser, operand tokenizer, and completeness owner, with a narrow fallback restoring uncertainty for the previously missed suffix case. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against a5301cca147f. Provenance checked
TestingProof path: in-process harness. SecurityNone. EvidenceWhat I checked:
Likely related people:
LabelsLabel changes:
Label justifications:
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 October 31, 2026, 7:06 PM ET / 23:06 UTC (Revision 2). |
|
Reproduced and fixed the P1 on the new head5f35454. The input is only inert text passed to the actual static runner; no shell payload executes.
The smallest fix removes the adjacent-quote-only restriction from the existing bounded reconstructed-word fallback. Unquoted suffixes now retain conservative uncertainty too. Nine destructive-text corpus rows acquire explicit partial gaps; all raw findings are preserved. A broader endpoint rewrite was tested and rejected because it altered existing finding output; it is absent from this commit. Final verification:1,439SkillSpector adapter tests,59focused quote controls, fullGo tests/vet, unchanged production dependencies/budgets and123decoded-source module matches. MySkool's full raw/post-filter/ledger metadata and128original-file hashes are unchanged. Existing A.I.G code/dependencies are unchanged; prior259checks remain retained. These are static/supporting results, not original model, publication or recovery proof. Runtime preparation for the old81ece candidate remains held and cannot be adopted as this revision. The earlier five-pass independent helper review remains a findings report with all nine findings verified fixed; no fresh helper-clean result is claimed. This revision also repairs the newly reproduced hosted P1. CI, current-head hosted review and runtime adoption remain pending. @clawsweeper re-review |
|
🦞👀 Re-review progress:
|
|
Merged-source delivery proof:
The following ClawHub worker adoption PR #4189 runs both quote suites before exposing the installed scanner. Its CI/review and actual production worker adoption remain pending. Protected local original scans and exact-package production recovery remain separate acceptance; no new retry or recovery is claimed from this runtime publication. |
Quoted prose and nested command words can make SkillSpector treat a proven closing quote as a new operand opener, producing false static_parse_limit gaps. Preserve literal quote endpoints while continuing to inspect destructive commands inside them. Reconstructed words and adjacent shell segments retain conservative operand boundaries and honest partial reporting.
For the unchanged 128-file MySkool original, supporting static inspection improves from 105/127 to 119/127 fully inspected components; all 26 finding payloads remain unchanged. Eight gaps remain: five JavaScript, two HTML and an offline OSV limitation. Both sources still report partial. Exact Second Read and SmartGate are unchanged by this repair and retain their separate parser investigations.
Validation:
Existing upstream correspondence: NVIDIA/SkillSpector#948 reproduction. Keep this compatibility patch until equivalent upstream behavior is adopted and verified.
These are static supporting results. Full-original real-Codex validation, runtime release/adoption and any cause-qualified publisher recovery remain separate acceptance stages. Retained originals, security findings, partial-scan policy and immutable releases are preserved.