Skip to content

feat(cli): scan fixes for 4.50, upload consent and skylos feedback - #1006

Merged
duriantaco merged 2 commits into
mainfrom
feat/scan-fixes-4.50
Oct 15, 2026
Merged

duriantaco merged 2 commits into
mainfrom
feat/scan-fixes-4.50

Conversation

@duriantaco

@duriantaco duriantaco commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Exit codes: a scan exits on what it analysed. Files that fail to parse are listed as not analysed instead of failing the whole run with exit 2.
  • Fewer false CRITICALs:
    • SSRF and command-execution false positives are gone.
    • A bare # noqa no longer hides security findings.
    • Typed-const secrets are found.
    • ssh2 and dockerode .exec calls count as command execution.
  • Dead code:
    • Framework entry points are recognised and confidence is calibrated.
    • Unused parameters and Rust findings are hidden by default.
  • Dependencies (SCA):
    • Dependency files that couldn't be read are named.
    • Monorepo packages inherit the root config, and skylos.toml is supported.
    • Scans run on merge_group.
  • Upload consent:
    • agent scan/verify/cleanup/remediate send a run summary only with --upload, and never send the OS user name.
    • --no-upload always wins over --upload.
    • New docs/privacy-and-network.md lists every request the CLI makes.
  • cicd review: one summary comment per PR, edited in place on every push. Inline comments are not repeated, and --max-comments is a cap per PR.
  • New skylos feedback: opens a prefilled form (or the GitHub issue form with --github). New GitHub issue forms are added.
  • Release: platform wheels bundle the Go engine (linux x86_64/aarch64, macOS x86_64/arm64, Windows amd64/arm64).
  • Committed Go engine:
    • Rebuilt from this source with the release flags (-trimpath -ldflags=-s -w).
    • The sk_live_/sk_test_ prefixes are joined at runtime, so push protection doesn't read the binary as holding a key.
    • Fake AWS-shaped test keys are built at runtime for the same reason.

Verification

  • Full suite (-n 2): 20,561 passed, 44 skipped, 0 failed, on the multi-commit integration branch.
    • This squashed tree differs from it only in test/test_secrets.py (371 passed), analyzer.go and the engine binary (275 Go-related Python tests and go test ./internal/analyzer passed).
  • Network:
    • Agent commands make 0 Cloud requests without --upload, checked with a local capture server and a refusing proxy.
    • With --upload, each sends exactly 1 POST /api/agent-runs.
  • cicd review: checked against a fake gh over 5 pushes. One summary edited in place; new inline comments only for new findings.
  • Self-scan with PyPI 4.49.0: 0 HIGH/CRITICAL in danger and secrets.
  • Held-out check on 8 public repos not used during development:
    • Plain skylos . exits 2 on 0 of 8 (4 of 8 on 4.49.0).
    • -a still exits 2 on 3 of 8 because of lockfile parsing; a follow-up PR fixes that, along with generic-entropy secret noise and more dead-code false positives.

Note

Code is done with Claude Opus. Manually checked and verified by me

🤖 Generated with Claude Code

duriantaco and others added 2 commits October 15, 2026 08:14
- fix(cli): exit on what was analysed, not on every unparseable file
- fix(sca): name unread dependency files, inherit monorepo config, run on merge queues
- fix(dead-code): framework entry points, calibrated confidence, quieter defaults
- fix(security): remove false CRITICALs and keep bare noqa off security findings
- fix(mcp): charge Enterprise credits like every plan
- feat(cli): add skylos feedback and GitHub issue forms
- fix(cli): upload agent runs only with --upload and never send the OS user name
- fix(cicd): edit one PR summary comment in place on every push
- docs(privacy): list every network request the CLI makes
- build(go): ship platform wheels with the Go engine

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@duriantaco
duriantaco force-pushed the feat/scan-fixes-4.50 branch from b228889 to 4ec73af Compare October 15, 2026 00:14
@duriantaco
duriantaco merged commit 4b101c0 into main Oct 15, 2026
20 checks passed
@duriantaco
duriantaco deleted the feat/scan-fixes-4.50 branch October 15, 2026 01:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant