Skip to content

Harden routing boundaries for 0.4.0 - #19

Merged
ictechgy merged 3 commits into
mainfrom
release/0.4.0-routing-hardening
Aug 6, 2026
Merged

Harden routing boundaries for 0.4.0#19
ictechgy merged 3 commits into
mainfrom
release/0.4.0-routing-hardening

Conversation

@ictechgy

@ictechgy ictechgy commented Aug 6, 2026

Copy link
Copy Markdown
Owner

Summary

  • isolate optional Claude triage with safe mode, no tools/MCP, an empty private cwd, strict output parsing, and whole-process-group teardown
  • fail Codex optional triage closed until its CLI documents an all-tools-disabled contract, without changing native Codex routes
  • unify native/V2 JSON loading behind bounded regular-file, strict UTF-8, duplicate-key-safe parsing
  • split narrow risk floors from broad complexity signals, fix multiline harmful outcomes, and harden dispatch/fingerprint/provider invariants
  • add blocking macOS Python 3.10/3.13 boundary jobs and prepare source version 0.4.0

Breaking changes

  • classification policy metadata is now version 2
  • broad high-tier signals report high.complexity_signal
  • --source-vendor codex --ask-vendor now fails closed with triage_unavailable

Verification

  • PYTHONPATH=src python3 -W error::ResourceWarning -m unittest discover -s tests (177 passed)
  • python3 -m compileall -q src tests
  • ruff check src tests
  • ruff format --check src tests
  • mypy
  • workflow YAML parse and git diff --check
  • offline sdist/wheel build
  • twine check --strict on both distributions
  • clean --no-index wheel install, version/metadata/default-output smoke tests

Add strict vendor triage isolation and process cleanup, unify bounded duplicate-safe JSON loading, improve classification reason semantics, and extend macOS release gates.

BREAKING CHANGE: classification policy metadata is now version 2, broad high-tier signals report high.complexity_signal, and Codex --ask-vendor fails closed until its CLI documents an all-tools-disabled boundary.
Use kqueue process-exit observation when os.waitid is unavailable, preserving non-reaping process-group teardown across supported macOS versions.
Resolve BSD-only select symbols dynamically so Linux mypy and macOS runtime checks share one implementation.
@ictechgy
ictechgy merged commit 786824c into main Aug 6, 2026
14 checks passed
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