docs(specs): update specs for post-v0.6.0 security and type-safety hardening - #563
Merged
Conversation
…rdening Documents the GHSA-wcmx-7f9h-5mv5 component-aware containment fix in the security pipeline spec, and adds a retrospective spec for the SanitizedMode newtype plus the six enums newly marked non_exhaustive. Also documents the CLI Verbosity enum replacing the verbose/quiet bool pair, including the split-level clap flag bug it fixes. Claude-Session: https://claude.ai/code/session_01P7y9J9CVJ7NosUvwt86Src
bug-ops
force-pushed
the
docs/specs-update-v0-6-0-batch
branch
from
September 1, 2026 22:30
5c58ba6 to
8383bb9
Compare
bug-ops
enabled auto-merge (squash)
September 1, 2026 22:30
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings
specs/up to date with what shipped inv0.6.0..main, after reviewing every merged commit in that range:specs/001-security-pipeline/spec.md: adds FR-019 and updates NFR-002 to document the component-aware, case-foldedpaths_start_withfix on macOS/Windows (GHSA-wcmx-7f9h-5mv5, fix(core): use component-aware comparison in macOS/Windows containment check #543), plus a dated callout and an edge-case row. Also adds a callout summarizing theSanitizedMode/#[non_exhaustive]hardening (core: SanitizedMode newtype and non_exhaustive on growth-prone enums #554) with a pointer to the new spec below.specs/016-sanitized-mode-and-non-exhaustive-enums/spec.md(new): retrospective spec, following the same pattern as013-quota-permit-capability-tokenand014-config-typestate-validation, documenting theSanitizedModesealed newtype (closes core: sanitized permission mode passed as raw u32 with 'caller must sanitize' contract #549) and the six enums (ArchiveError,QuotaResource,ArchiveType,CompressionCodec,IssueCategory,types::entry_type::EntryType) marked#[non_exhaustive](closes core: several growth-prone public enums missing #[non_exhaustive] #551), including the wildcard-arm updates required inexarch-cli/exarch-python/exarch-node.specs/005-cli/spec.md: adds FR-087, aVerbosityData Model entry, and an edge-case row documenting the--verbose/--quietboolean-blindness fix (cli: unlabeled bool params in output formatter constructors (json/verbose/quiet) #550) — including the split-levelclapArgMatchesbug it closes (a global--verbosecombined with a subcommand-level--quietbypassedconflicts_withand previously resolved inconsistently between the formatter and the progress reporter).specs/MOC-specs.md: adds the new spec 016 to the index.Commits reviewed but intentionally left undocumented (routine, no architectural/behavioral shift):
Path::is_empty()migration (core: track stable Rust APIs above MSRV 1.96 for a future bundled bump #558/build!: bump MSRV to 1.98.0 and replace as_os_str().is_empty() with Path::is_empty() #562) — already reflected in spec MSRV headers, which already said 1.98.0sevenz-rust2bumps (chore(deps): bump sevenz-rust2 from 0.21.5 to 0.22.2 #561, build: bump sevenz-rust2 to 0.21.5 #552) and theflate2/napiminor-patch bump (chore(deps): bump the minor-and-patch group with 2 updates #560) — forward-looking hardening / no observable behavior change per their own changelog entriesinstall-actionbumps (chore: bump taiki-e/install-action from 2.86.5 to 2.87.0 #559, chore: bump taiki-e/install-action from 2.85.13 to 2.86.5 #555, chore: bump taiki-e/install-action from 2.85.10 to 2.85.13 #545, chore: bump taiki-e/install-action from 2.85.5 to 2.85.10 #541) and other dependency-group bumps (chore(deps): bump the minor-and-patch group with 5 updates #547, chore: bump lewagon/wait-on-check-action from 1.9.0 to 1.9.1 #546, chore(deps): bump the minor-and-patch group with 3 updates #542) — routine CI/dependency noiseTempOrphanRefrefactor deduping orphan-disclosure args (refactor(cli): dedupe orphan-disclosure args in atomic-force extraction #544) — explicitly "no behavior change" per its own commit message and changelog entry; no spec described the exact parameter list it simplifiesTest plan
git log v0.6.0..origin/main --statand the full diff of each non-routine commit (fix(core): use component-aware comparison in macOS/Windows containment check #543, refactor(cli): dedupe orphan-disclosure args in atomic-force extraction #544, refactor(cli): replace verbose/quiet bool pairs with Verbosity enum #553, core: SanitizedMode newtype and non_exhaustive on growth-prone enums #554)001-security-pipeline,005-cli,013,014,015) for prior coverage before adding new contenthttps://claude.ai/code/session_01P7y9J9CVJ7NosUvwt86Src