Repository navigation
·
1 commit
to main
since this release
Immutable
release. Only release title and notes can be modified.
What's Changed
Breaking Changes
- refactor!: remove dead api surface, stale deps, and duplicated env-var constants by @ken-matsui in #1535
- feat(cli)!: remove the cabin port subcommand and cabin add --port by @ken-matsui in #1611
- feat(ports)!: remove the builtin-port dependency kind by @ken-matsui in #1613
- refactor(port)!: remove the embedded foundation-port recipe table by @ken-matsui in #1615
- refactor(ports)!: move the ports tree to the repo root by @ken-matsui in #1621
- refactor(port)!: delete the cabin-port crate by @ken-matsui in #1622
- refactor(fs)!: remove the callerless is_non_empty_safe_relative_path by @ken-matsui in #1623
- refactor(manifest)!: rename the upstream sha256 key to a self-describing checksum by @ken-matsui in #1666
- refactor(registry)!: store and serve the canonical prefixed checksum spelling by @ken-matsui in #1674
- feat(core)!: restrict package names to lowercase ascii, digits,
_, and-by @ken-matsui in #2050
New Features
- feat(registry): experimental remote-registry groundwork behind -Z remote-registry by @ken-matsui in #1485
- feat(cabin): credential storage and authenticated reads for the remote registry by @ken-matsui in #1486
- feat(cabin): add remote registry publish behind -Z remote-registry by @ken-matsui in #1487
- feat(cabin): add cabin yank behind -Z remote-registry by @ken-matsui in #1488
- feat(registry): bootstrap hosted registry worker service by @ken-matsui in #1489
- feat(registry): implement publish and yank write routes by @ken-matsui in #1491
- feat(registry): github sign-in and token management page by @ken-matsui in #1493
- feat(registry): enforce per-user quotas and a free-plan budget circuit breaker by @ken-matsui in #1495
- feat(registry-api): map budget, rate-limit, and quota refusals to actionable errors by @ken-matsui in #1496
- feat(registry): back up blobs and d1 to r2 with a rehearsed restore path by @ken-matsui in #1498
- feat(registry): add an asynchronous verification lifecycle for published versions by @ken-matsui in #1499
- feat(registry): add the external archive verifier and verification pipeline by @ken-matsui in #1500
- feat(artifact): harden client-side archive extraction against hostile input by @ken-matsui in #1501
- feat(registry): serve one role per hostname and move the browser plane to cabinpkg.com by @ken-matsui in #1502
- feat(website): crates.io-style account pages for the registry by @ken-matsui in #1503
- feat(website): account menu with sign out by @ken-matsui in #1504
- feat(registry): collapse to a single production-named environment behind a launch guard by @ken-matsui in #1507
- feat(registry): move identity to registry-native users with provider identities by @ken-matsui in #1510
- feat(registry): scoped package names and scope-membership authorization by @ken-matsui in #1512
- feat(registry): scope claiming via github oauth proof and session-plane membership management by @ken-matsui in #1513
- feat(client): scoped package names across the name model, build tree, and publish flows by @ken-matsui in #1514
- feat(client): speak the scoped registry wire protocol for reads, publish, yank, and add by @ken-matsui in #1515
- feat(website): show the github avatar in the header and profile by @ken-matsui in #1516
- feat(registry): count artifact downloads and show stats on the website by @ken-matsui in #1517
- feat(website): publish the registry usage policy at /policies by @ken-matsui in #1519
- feat(registry): halve the free-plan storage quota to 128 mib by @ken-matsui in #1520
- feat(registry): migrate the package archive format from tar.gz to a strict zip profile by @ken-matsui in #1522
- feat(registry): add a source viewer for published package versions by @ken-matsui in #1524
- feat(registry): session-plane package search, package detail, and reverse dependencies by @ken-matsui in #1530
- feat(publish): require canonical scoped dependency keys at publish by @ken-matsui in #1531
- feat(registry): read-side budget breaker (reads_blocked) and r2 class b monitoring by @ken-matsui in #1532
- feat(registry): deterministic name rules and the verifier's abstain channel by @ken-matsui in #1533
- feat(standards): bounded interface-standard requirements across the compatibility pipeline by @ken-matsui in #1554
- feat(registry): reduce default quota class max total packages from 50 to 20 by @ken-matsui in #1555
- feat(registry): hard r2 cost governor with a sqlite durable object ledger by @ken-matsui in #1556
- feat(registry): governor rollout tooling, guards, and recovery procedures by @ken-matsui in #1558
- feat(build): resolve bare dependency deps to the sole library-like target by @ken-matsui in #1564
- feat: optional machine-verifiable upstream provenance for published packages by @ken-matsui in #1565
- feat(port-publish): publish foundation-port recipes as cabin-ports registry packages by @ken-matsui in #1566
- feat(ports): automate cabin-ports publishing in ci and present scoped packages on the website by @ken-matsui in #1575
- feat(registry): add the operator quota class for bulk ports publishing by @ken-matsui in #1577
- feat(registry): stabilize hosted-registry reads and default to the hosted index by @ken-matsui in #1579
- feat: migrate examples and ordinary-dependency tests to cabin-ports registry packages by @ken-matsui in #1580
- feat(registry): introduce packaging revisions for republishing recipe corrections by @ken-matsui in #1581
- feat(manifest): add target-level links native-library identity with graph-wide uniqueness by @ken-matsui in #1582
- feat(upstream): add declared patch files to provenance and port recipes by @ken-matsui in #1583
- feat(registry): serve verified reads publicly and narrow the uniform 401 to the mutation surface by @ken-matsui in #1585
- feat(ports): accept provenance-bearing package dirs beside recipes during the migration by @ken-matsui in #1588
- feat(registry): gate new-account sign-ups on a 30-day github account age by @ken-matsui in #1683
- feat(website): explain the account-age sign-in refusal with the eligible date by @ken-matsui in #1684
- feat(registry): cap lifetime scope claims per user with an append-only claim history by @ken-matsui in #1685
- feat(website): pin script-less page content and add sign-in and source-viewer fallbacks by @ken-matsui in #1687
- feat(registry): add trusted-publishing schema and token expiry and scope-limit invariants by @ken-matsui in #1686
- feat(website): show versions, dependencies, and features on package pages by @ken-matsui in #1689
- feat(registry): add a github actions oidc jwt verification module for trusted publishing by @ken-matsui in #1688
- feat(registry): add trusted-publishing token exchange and revocation endpoints by @ken-matsui in #1691
- feat(cli): auto-exchange github actions oidc tokens for registry tokens when publishing by @ken-matsui in #1692
- feat(cli): publish an ordered multi-package batch in one invocation by @ken-matsui in #1693
- feat(registry): make repeat rejection verdicts an idempotent no-op by @ken-matsui in #1708
- feat(xtask): teach the deploy wait the change-gated registry run shape by @ken-matsui in #1716
- feat(registry): authenticate verifier verdicts with github actions oidc by @ken-matsui in #1718
- feat(registry): mint per-verdict github oidc tokens in the verify client by @ken-matsui in #1722
- feat(registry): resolve abstained versions through registry-verify dispatch inputs by @ken-matsui in #1727
- feat(registry): mint verify-scoped exchange tokens for the pinned verifier workflow by @ken-matsui in #1734
- feat(registry): mint the verify run token via the exchange and assert the inspected bytes by @ken-matsui in #1754
- feat(registry): add login-session token mint and revocation endpoints by @ken-matsui in #1759
- feat(registry): remove the legacy long-lived api token system by @ken-matsui in #1802
- feat(credentials): accept login-session cabin_ses_ tokens by @ken-matsui in #1803
- feat(credentials): replace token-paste login with device-flow sessions by @ken-matsui in #1805
- feat(registry): seed the operator's pre-promoted account in the baseline migration by @ken-matsui in #1809
- feat(registry): gate the oidc endpoints behind deployment-pinned admission control by @ken-matsui in #1822
- feat(registry): raise the operator quota class for bulk ports publishing by @ken-matsui in #1948
- feat(cli): report each fetched archive's checksum match under -v by @ken-matsui in #1986
- feat(cli): name the registry api url under -v for publish and yank by @ken-matsui in #1987
- feat(build): name declared-but-unlisted deps when a compile misses a header by @ken-matsui in #1990
- feat(xtask): publish ports in resumable batches of one cabin publish run each by @ken-matsui in #2007
- feat(registry): empty the backup bucket and every storage pool in the pre-launch wipe by @ken-matsui in #2028
- feat(xtask): run committed consumer tests in the port preflight on every platform by @ken-matsui in #2033
- feat(manifest): select target sources per platform with cfg-conditional sources tables by @ken-matsui in #2035
- feat(build): assemble .S sources with the gcc/clang driver and .asm sources with ml64 by @ken-matsui in #2037
- feat(package): archive only the paths a
[package] includelist names by @ken-matsui in #2038 - feat(ports): add the boost 1.92.0 port ledger and header-only ports, part 1 of 5 by @ken-matsui in #2040
- feat(ports): add header-only boost 1.92.0 ports, part 2 of 5 by @ken-matsui in #2041
- feat(ports): add header-only boost 1.92.0 ports, part 3 of 5 by @ken-matsui in #2042
- feat(ports): add header-only boost 1.92.0 ports, part 4 of 5 by @ken-matsui in #2043
- feat(ports): add header-only boost 1.92.0 ports, part 5 of 5 by @ken-matsui in #2044
- feat(ports): add compiled boost 1.92.0 libraries and their dependents, part 1 of 2 by @ken-matsui in #2046
- feat(ports): add compiled boost 1.92.0 libraries and their dependents, part 2 of 2 by @ken-matsui in #2047
- feat(ports): add the remaining 18 buildable boost 1.92.0 ports by @ken-matsui in #2052
- feat(resolver): resolve registry features and optional dependencies with versions by @ken-matsui in #2055
- feat(build): scope dependency interfaces by edge visibility and add interface-defines by @ken-matsui in #2056
- feat(build): order final-link system libraries by the dependency graph and add frameworks by @ken-matsui in #2057
- feat(build): add per-source x86 instruction sets by @ken-matsui in #2058
- feat(ports): build the boost stacktrace, contract, atomic, and log ports as upstream does by @ken-matsui in #2059
- feat(index): resolve pinned packaging revisions with their own metadata by @ken-matsui in #2060
- feat(test): forward arguments after -- to every test executable by @ken-matsui in #2061
- feat(registry): serve each packaging revision its own resolution metadata by @ken-matsui in #2062
- feat(test): run test executables concurrently with timeouts by @ken-matsui in #2063
- feat(resolver): lock every platform's cfg dependencies in one lockfile by @ken-matsui in #2064
- feat(test): write a JUnit report of the test run with --junit by @ken-matsui in #2065
- feat(trace): capture opt-in performance traces with CABIN_TRACE_DIR by @ken-matsui in #2068
- feat(build): build for another platform with --target by @ken-matsui in #2069
- feat(bench): add the cargo perf benchmark harness by @ken-matsui in #2071
- feat(build): rebuild everything when the detected toolchain changes by @ken-matsui in #2072
- feat(trace): trace the build path, Ninja actions, and test runs by @ken-matsui in #2073
- feat(build): build [build-dependencies] for the build machine by @ken-matsui in #2081
- feat(run): run --target executables through a configured runner by @ken-matsui in #2084
- feat(build): collect unused build outputs by @ken-matsui in #2088
- feat(build): build against an explicit sysroot or the discovered Apple SDK by @ken-matsui in #2087
- feat(bench): record where benchmark numbers come from and what each covers by @ken-matsui in #2096
- feat(metadata): report build jobs and terminal settings in the config view by @ken-matsui in #2100
- feat(toolchain): probe compile, link, and run checks; name a sysroot that cannot link by @ken-matsui in #2102
- feat(build): give build dependencies the build machine's own toolchain under --target by @ken-matsui in #2110
- feat(toolchain): pick the chosen compiler's siblings and name windows executables .exe by @ken-matsui in #2156
- feat(build): plan against the supplied interfaces of system-provided targets by @ken-matsui in #2181
- feat(workspace): load system packages cabin synthesizes in place of fetched ones by @ken-matsui in #2195
- feat(build): take root-selected packages from the system through pkg-config by @ken-matsui in #2205
- feat(build): take a multi-target package from the system with one module per target by @ken-matsui in #2263
- feat(config): take [system-provided] entries from config files by @ken-matsui in #2273
- feat(registry): restrict the hosted registry to its maintainer during private alpha by @ken-matsui in #2277
Performance Improvements
- perf(registry): read per-user quota tallies instead of scanning account history by @ken-matsui in #1994
- perf(toolchain): poll toolchain probes every millisecond, not every 10 by @ken-matsui in #2070
- perf(ninja): rewrite generated build files only when their contents change by @ken-matsui in #2085
- perf(index): read only the package documents resolution needs by @ken-matsui in #2092
- perf(test): observe test exits as they happen instead of polling by @ken-matsui in #2094
- perf(ninja): compare generated files in blocks and write them side by side by @ken-matsui in #2095
- perf(resolve): fetch registry metadata in concurrent waves and batch lazy rounds by @ken-matsui in #2105
- perf(toolchain): run the compiler and archiver version probes side by side by @ken-matsui in #2109
- perf(index): box the per-revision resolution metadata by @ken-matsui in #2113
- perf(toolchain): wait for a probed tool to exit instead of polling it by @ken-matsui in #2114
- perf(gc): remove emptied directories once every product is removed by @ken-matsui in #2126
- perf(toolchain): look up the apple sdk while the toolchain probes run by @ken-matsui in #2127
- perf(port-publish): build preflight probes in parallel and report per-port phase times by @ken-matsui in #2124
- perf(gc): skip recording a plan already recorded today and record one command at a time by @ken-matsui in #2145
- perf(build): compare output paths as bytes instead of parsed components by @ken-matsui in #2188
- perf(resolver): look up an unfetched package only when it has no candidates by @ken-matsui in #2199
- perf(gc): stop syncing the build-output catalog by @ken-matsui in #2278
Fixes
- fix(registry): strip canonical envelope from served version entries by @ken-matsui in #1494
- fix(website): keep feature dividers off the first grid row by @ken-matsui in #1518
- fix(website): unify restricted and under-development labels as private alpha by @ken-matsui in #1521
- fix: harden registry surfaces and pin deploy toolchains by @ken-matsui in #1550
- fix(registry): answer 503 not 402 when the budget breaker blocks by @ken-matsui in #1551
- fix: validate registry versions as full semver and prune dead code and stale docs by @ken-matsui in #1552
- fix(registry): harden the cost governor against under-count paths and prove fail-closed accounting by @ken-matsui in #1557
- fix(port-publish): retry rate-limited publishes with the advertised delay by @ken-matsui in #1578
- fix(test): give each test process its own pinned config home by @ken-matsui in #1591
- fix(website): align the ports loader's rejections with the publisher by @ken-matsui in #1628
- fix(port-publish): check every declared requirement for satisfiability by @ken-matsui in #1627
- fix(core): retry interrupted reads in the hash primitives and share the loop by @ken-matsui in #1663
- fix(xtask): kill the whole phase group when the gate unwinds by @ken-matsui in #1664
- fix(registry): keep token timestamp checks under d1's glob pattern limit by @ken-matsui in #1690
- fix(xtask): fail the registry-deploy wait fast when the same-sha deploy was skipped by @ken-matsui in #1694
- fix(core): cap cfg expression nesting so hostile input cannot overflow the parser stack by @ken-matsui in #1696
- fix(ci): drop the workflow path filters and the tests that read workflow files by @ken-matsui in #1699
- fix(index-http): pin config packages/artifacts subdirs to the index url origin and path by @ken-matsui in #1697
- fix(cli): gate the registry token override on a user-chosen index origin by @ken-matsui in #1701
- fix(registry): refuse a scope claim started by a cross-site navigation by @ken-matsui in #1702
- fix(core): reject target include dirs that escape the package root by @ken-matsui in #1703
- fix(index): escape terminal control characters in registry-supplied error text by @ken-matsui in #1704
- fix(ci): restore required checks by @ken-matsui in #1762
- fix(registry-file): replace the lock file with an os advisory lock by @ken-matsui in #1815
- fix(source-discovery): prune excluded directories before descending by @ken-matsui in #1816
- fix(build): resolve the clean guard home dir through std::env::home_dir by @ken-matsui in #1818
- fix(publish): resolve the registry per manifest and require batch agreement by @ken-matsui in #1820
- fix(registry-file): tolerate the transient flock extension from concurrent process spawns by @ken-matsui in #1839
- fix(registry): mint the verify scope only for the operator's login sessions by @ken-matsui in #1847
- fix(registry): drain a refused streaming body so the connection carrying it stays usable by @ken-matsui in #1849
- fix(registry): gate the login-session mint behind the per-ip admission budget by @ken-matsui in #1850
- fix(registry): key the publish token bucket on the user instead of the token by @ken-matsui in #1852
- fix(smoke): dump the dev-server log tails when a leg fails by @ken-matsui in #1853
- fix(ports): define _LARGEFILE64_SOURCE so miniz 3.1.2 builds under strict c11 on gcc 14+ by @ken-matsui in #1897
- fix(cli): validate locked patch state and enable update recovery by @ken-matsui in #1896
- fix(registry-api): drop a publish revision that is not a packaging revision by @ken-matsui in #1898
- fix(cli): keep unselected members' lockfile entries on member-scoped runs by @ken-matsui in #1900
- fix(credentials): withhold stored sessions keyed to plain-http non-loopback origins by @ken-matsui in #1899
- fix(xtask): refuse release tag names that could escape the windows packaging command by @ken-matsui in #1901
- fix(xtask): give port-publish an exclusive random scratch directory by default by @ken-matsui in #1902
- fix(xtask): make the deploy wait treat a missing registry run as pending, not as current by @ken-matsui in #1904
- fix(registry): guard scope claims against confusable names inside the batch by @ken-matsui in #1903
- fix(deps): bump rustls, webpki-roots and chacha20 past the open RUSTSEC advisories by @ken-matsui in #1915
- fix(login): open the device page without a shell and only on the GitHub OAuth origin by @ken-matsui in #1916
- fix(registry): cap the publish metadata frame at 1 MiB before hashing or parsing it by @ken-matsui in #1918
- fix(artifact): escape archive entry names in extraction error messages by @ken-matsui in #1921
- fix(explain): cap shortest-path reconstruction per root and flag truncated explanations by @ken-matsui in #1919
- fix(workspace): honor a discovered root above a package only when it claims that package by @ken-matsui in #1922
- fix(artifact): stage each download in an exclusively owned file before promotion by @ken-matsui in #1917
- fix(registry): guard the verdict updates on the listing's checksum and published_at by @ken-matsui in #1934
- fix(registry): refuse a revival whose published_at does not advance the rejected row's by @ken-matsui in #1936
- fix(build): unwrap msvc .exe and .lib outputs in the link-failure hint by @ken-matsui in #1943
- fix(deps): update registry crypto crates, tokio, and yaml past their advisories by @ken-matsui in #1951
- fix(website): stop rendering placeholders for metadata ports never carry by @ken-matsui in #1958
- fix(artifact): reject signed numbers in patch hunk ranges by @ken-matsui in #1946
- fix(cli): stop claiming --exclude works with the no-flag default selection by @ken-matsui in #1966
- fix(cabin-toolchain): stop calling MSVC unsupported when a compiler slot names link or lib by @ken-matsui in #1968
- fix(resolver): explain a conflict without expanding its shared derivations by @ken-matsui in #1978
- fix(registry): redirect browser flows to the website's trailing-slash pages by @ken-matsui in #1985
- fix(website): let search paginate client-side when the static page has one page by @ken-matsui in #2008
- fix(xtask): list both sides of renames when scoping the local gate by @ken-matsui in #1949
- fix(xtask): run the binaries the registry xtasks just built, wherever the target dir is by @ken-matsui in #1947
- fix(package): refuse to stage a package whose archive would leave out a declared source by @ken-matsui in #2024
- fix(xtask): read an R2 listing's metadata-free last page as complete in the backup audit by @ken-matsui in #2027
- fix(xtask): fail the freshness guard closed on git, sha, and filter-list errors by @ken-matsui in #2030
- fix(xtask): fail the backup audit when the ledger understates an object count by @ken-matsui in #2031
- fix(xtask): fail a migration-blocked registry deploy instead of skipping it green by @ken-matsui in #2032
- fix(registry): fail the deploy job unless the tagged worker version serves all traffic by @ken-matsui in #2034
- fix(driver): name the console subsystem in msvc links so an archive can provide main by @ken-matsui in #2048
- fix(deps): update block-buffer to 0.12.1 past its advisory by @ken-matsui in #2066
- fix(bench): judge a comparison by its candidate, not a baseline that cannot run a scenario by @ken-matsui in #2076
- fix(build): drop stale members when rebuilding a static library by @ken-matsui in #2078
- fix(build): resolve
..in the build directory the way the OS does by @ken-matsui in #2086 - fix(ninja): track dependencies through paths Ninja cannot spell by @ken-matsui in #2089
- fix(ninja): pass long archive and link commands through response files by @ken-matsui in #2093
- fix(ninja): translate the depfile of a compile under a sysroot Ninja cannot spell by @ken-matsui in #2097
- fix(trace): keep a build's Ninja actions when Ninja compacts its log by @ken-matsui in #2098
- fix(profile): reject profile names that would share a build directory by @ken-matsui in #2099
- fix(bench): verify check-run actions only from a log that kept its earlier entries by @ken-matsui in #2101
- fix(ninja): keep each line of an msvc response file under the tools' line limit by @ken-matsui in #2106
- fix(cli): resolve the build directory the same way in every command by @ken-matsui in #2107
- fix(bench): tell real changes from noise and policy, calibrated on runs of one binary by @ken-matsui in #2108
- fix(ninja): quote llvm-ar response files on windows the way it reads them by @ken-matsui in #2111
- fix(ninja): read every path a depfile names as the compiler wrote it by @ken-matsui in #2112
- fix(build): quote build-dependency archive response files for the build machine's archiver by @ken-matsui in #2115
- fix(config): reject terminal settings in workspace and package config by @ken-matsui in #2119
- fix(target): prevent non-portable names and artifact collisions by @ken-matsui in #2121
- fix(bench): interleave the binaries run by run so load drift reaches both alike by @ken-matsui in #2128
- fix(ports): retry the boost-process probe read a sigchld interrupts by @ken-matsui in #2131
- fix(ninja): pass llvm-ar its response-file quoting so an old unknown version fails loudly by @ken-matsui in #2136
- fix(build): isolate target-triple output namespaces by @ken-matsui in #2118
- fix(bench): call a comparison of too few runs inconclusive, not unchanged by @ken-matsui in #2153
- fix(xtask): escalate a teardown to sigkill after a grace period by @ken-matsui in #2173
- fix(bench): fail a regression gate that could not tell either way by @ken-matsui in #2179
- fix(run): give nested cabin the build root and refuse a nested clean of outputs in use by @ken-matsui in #2184
- fix(xtask): name why the launch guard refused instead of a misleading cause by @ken-matsui in #2187
- fix(build): name the profile directory compile commands run in by @ken-matsui in #2190
- fix(toolchain): give version probes the deadline a cold xcrun lookup needs by @ken-matsui in #2191
- fix(build): rebuild when INCLUDE or LIB changes by @ken-matsui in #2189
- fix(build): compare output paths as the build directory's file system does by @ken-matsui in #2194
- fix(driver): track clang-cl headers through its own depfile by @ken-matsui in #2192
- fix(bench): age planted gc outputs past the kernel's fresh-file state by @ken-matsui in #2196
- fix(bench): judge a comparison by its blocks, pairing the rounds both sides ran by @ken-matsui in #2198
- fix(build): give each build directory one owning workspace by @ken-matsui in #2197
- fix(ninja): write compile_commands.json argument arrays clang parses on every host by @ken-matsui in #2212
- fix(build): refuse to clean through a symlinked directory below the build directory by @ken-matsui in #2206
- fix(bench): size timed runs from a run made as they are, not from the check by @ken-matsui in #2204
- fix(build): let a macro's highest-precedence definition win across profiles and targets by @ken-matsui in #2216
- fix(build): never clean an unrecorded build directory or a file directly in one by @ken-matsui in #2215
- fix(registry-api): store and print a session expiry in cabin's own utc rendering by @ken-matsui in #2207
- fix(toolchain): resolve a relative compiler path before ninja changes directory by @ken-matsui in #2217
- fix(explain): label a path with an edge that passes the filters by @ken-matsui in #2220
- fix(resolve): fail instead of re-pinning a lock entry the index no longer lists by @ken-matsui in #2225
- fix(index-http): refuse a plain-http index beyond loopback by @ken-matsui in #2226
- fix(system-deps): give pkg-config the SemVer series a version requirement names by @ken-matsui in #2213
- fix(build): let builds of one profile tree take turns running Ninja by @ken-matsui in #2223
- fix(registry-file): propagate index read errors and stop labeling writes as reads by @ken-matsui in #2208
- fix(build): choose the link driver from every linked object, through header-only targets by @ken-matsui in #2209
- fix(core): encode the config fingerprint unambiguously by @ken-matsui in #2210
- fix(config): resolve a source replacement's index path against its config file by @ken-matsui in #2211
- fix(website): refuse unpublishable build dependencies and keep security.txt under a year by @ken-matsui in #2240
- fix(cli): name both variables when verbosity settings conflict by @ken-matsui in #2233
- fix(resolver): require every requirement to admit a selected pre-release by @ken-matsui in #2237
- fix(registry): count pending revisions in the stuck-verifier alert and fix doc mismatches by @ken-matsui in #2248
- fix(port-publish): report no probe run time in publish mode and correct the cli docs by @ken-matsui in #2241
- fix(registry): read only the requested package for its document and edge-cache it by @ken-matsui in #2236
- fix(tidy): match each source file literally in run-clang-tidy by @ken-matsui in #2229
- fix(build): cut gc output paths at the package's obj dir and build unlocked on enotsup by @ken-matsui in #2228
- fix(xtask): read the smoke token via cabin-env and bind the oversized verdict checksum by @ken-matsui in #2244
- fix(registry-verify): ground the ratio-floor rationale and make its test exercise the floor by @ken-matsui in #2222
- fix(registry): enforce publish quotas inside the publish batch by @ken-matsui in #2260
- fix(registry): revoke the browser session server-side on logout by @ken-matsui in #2256
- fix(cli): attribute compiling banners against each build context's own planned packages by @ken-matsui in #2246
- fix(cli): name the dependency table a missing link symbol's owner is declared in by @ken-matsui in #2234
- fix(fmt): report a clang-format error in check mode instead of unformatted files by @ken-matsui in #2232
- fix(toolchain): bound the unknown compiler banner line and correct capability comments by @ken-matsui in #2227
- fix(ports): respin libpng 1.6.50 so its zlib comment matches the private edge by @ken-matsui in #2252
- fix(cli): honor --color in help and keep automatic color off for pipes by @ken-matsui in #2250
- fix(manifest): reject package tables on a root without [package] and span inline tables by @ken-matsui in #2255
- fix(ports): keep the sqlite3 version file out of its include root by @ken-matsui in #2259
- fix(workspace): accurate source and requirement errors and safer scaffold namespaces by @ken-matsui in #2262
- fix(build): stop an executable's own c default from hiding its public deps' requirements by @ken-matsui in #2247
- fix(toolchain): run a tool a project names by path only for a project the user trusts by @ken-matsui in #2254
- fix(tidy): let --fix run clang-tidy in parallel by @ken-matsui in #2230
- fix(system-deps): translate partial semver comparators to equivalent pkg-config bounds by @ken-matsui in #2221
- fix(cli): print curated help for bare cabin and correct command help text by @ken-matsui in #2264
- fix(artifact): read a local index archive only from inside the index root by @ken-matsui in #2253
- fix(config): use a registry a project config names only for a project the user trusts by @ken-matsui in #2266
- fix(build): refuse registry include dirs that shadow standard headers by @ken-matsui in #2272
- fix(vendor): apply source replacement before requiring a local index by @ken-matsui in #2285
- fix(mangen): list the global options on subcommand man pages by @ken-matsui in #2286
- fix(publish): refuse remote publish and yank under offline mode by @ken-matsui in #2289
- fix(bench): give gc/clean-10k a recorded build directory to clean by @ken-matsui in #2291
- fix(system-deps): refuse option-shaped pkg-config version operands by @ken-matsui in #2293
- fix(registry): disable version urls for the registry worker by @ken-matsui in #2294
- fix(workflow-guard): list only push runs in the registry-deploy wait by @ken-matsui in #2295
- fix(vendor): read package metadata from the index's configured directory by @ken-matsui in #2296
- fix(vendor): stage archives exclusively and refuse symlinks in vendor/ by @ken-matsui in #2301
- fix(ports): add libpng 1.6.59 to replace the vulnerable 1.6.50 by @ken-matsui in #2300
- fix(workspace): check the root owner SID before adopting a root on Windows by @ken-matsui in #2299
- fix(toolchain): reject batch-file tools on Windows by @ken-matsui in #2302
- fix(diagnostics): escape control characters in rendered error reports by @ken-matsui in #2303
- fix(ports): drop the vulnerable libpng 1.6.50 port by @ken-matsui in #2305
- fix(cli): escape control characters in json, argument errors, and printed paths by @ken-matsui in #2308
- fix(registry): build the worker in a job that never holds the deploy token by @ken-matsui in #2307
- fix(package): select a flate2 backend so cabin-package builds standalone by @ken-matsui in #2310
Other Changes
- docs: fix stale and misplaced rustdoc that drifted from the code by @ken-matsui in #1479
- docs(tests): fix stale test-helper docs copied from sibling helpers by @ken-matsui in #1481
- refactor(tests): drop duplicate assertion operand and rename misleading test local by @ken-matsui in #1482
- docs: fix wrap-point capitalization and prose artifacts in doc comments by @ken-matsui in #1480
- docs: remove documentation that duplicates canonical docs elsewhere by @ken-matsui in #1483
- refactor: enumerate domain-enum match arms instead of wildcards by @ken-matsui in #1484
- chore(deps): bump ws from 8.20.0 to 8.21.0 in /website by @dependabot[bot] in #1490
- ci(rust): fix flaky compiler-detection clang legs by @ken-matsui in #1492
- docs(registry): record the hostname-role split verification and finalize the cutover runbook by @ken-matsui in #1506
- refactor(registry): consolidate executed sql into src/sql.rs with schema validation by @ken-matsui in #1508
- docs(comments): make comments explain constraints and rationale, not mechanics by @ken-matsui in #1509
- ci(coverage): disable upload as it'll be a paid service by @ken-matsui in #1511
- chore(registry): bake the wiped production database id by @ken-matsui in #1523
- refactor(registry): rename the per-user quota plan to quota_class by @ken-matsui in #1525
- chore(registry): bake the wiped production database id by @ken-matsui in #1526
- ci(registry): deploy the worker on push to main by @ken-matsui in #1527
- ci(registry): run the deploy with wrangler 4 by @ken-matsui in #1528
- docs(agents): add pragmatic engineering principles section by @ken-matsui in #1534
- refactor: fold command preambles, consolidate registry migrations, drop dormant scaffolding by @ken-matsui in #1536
- chore(registry): bake the wiped database id and refresh the migrations stamp by @ken-matsui in #1537
- ci(deps): bump actions/setup-node from 6 to 7 by @dependabot[bot] in #1538
- chore(deps): bump thiserror from 2.0.18 to 2.0.19 by @dependabot[bot] in #1540
- chore(deps): bump clap from 4.6.1 to 4.6.2 by @dependabot[bot] in #1541
- chore(deps): bump which from 8.0.4 to 8.0.5 by @dependabot[bot] in #1542
- chore(deps): bump ignore from 0.4.27 to 0.4.30 by @dependabot[bot] in #1543
- chore(deps): bump anyhow from 1.0.103 to 1.0.104 by @dependabot[bot] in #1544
- chore(deps): bump the npm group in /website with 11 updates by @dependabot[bot] in #1545
- chore(deps): bump thiserror from 2.0.18 to 2.0.19 in /registry by @dependabot[bot] in #1547
- ci(deps): bump cloudflare/wrangler-action from 3 to 4 by @dependabot[bot] in #1539
- chore(deps): bump futures-util from 0.3.32 to 0.3.33 in /registry by @dependabot[bot] in #1548
- chore(deps): bump serde from 1.0.228 to 1.0.229 in /registry by @dependabot[bot] in #1549
- chore(deps-dev): bump astro from 6.4.8 to 7.1.1 in /website by @dependabot[bot] in #1546
- refactor: lean sweep 4 - workspace-prep bundle, lock policy, cli hub split, single-variant cleanups by @ken-matsui in #1553
- build(website): migrate from yarn classic to npm by @ken-matsui in #1559
- chore(registry): record the post-wipe database id and migrations stamp by @ken-matsui in #1560
- refactor: stream backup copies, split the planner, and dedupe registry scripts and tests by @ken-matsui in #1561
- chore(deps): bump svgo from 4.0.1 to 4.0.2 in /website by @dependabot[bot] in #1562
- chore(deps-dev): bump fast-uri from 3.1.2 to 3.1.4 in /website by @dependabot[bot] in #1563
- ci: convert prs with fixup commits to draft by @ken-matsui in #1567
- ci: audit github actions workflows with zizmor and pin all actions by @ken-matsui in #1568
- chore(deps): bump serde_json from 1.0.150 to 1.0.151 in /registry by @dependabot[bot] in #1569
- chore(deps): bump the npm group in /website with 2 updates by @dependabot[bot] in #1571
- chore(deps): bump clap from 4.6.2 to 4.6.3 by @dependabot[bot] in #1570
- chore(deps): bump serde_json from 1.0.150 to 1.0.151 by @dependabot[bot] in #1574
- chore(deps): bump ignore from 0.4.30 to 0.4.31 by @dependabot[bot] in #1572
- ci: fix fixup-draft's draft conversion via pull_request and the required token grants by @ken-matsui in #1576
- test(registry): repair three drifted smoke legs so the suite runs to completion by @ken-matsui in #1584
- refactor(artifact): share one upstream materialization pipeline with the registry verifier by @ken-matsui in #1587
- ci: run the local gate's independent phases concurrently in per-phase target dirs by @ken-matsui in #1586
- ci: run the local gate's test phase through cargo-nextest when it is installed by @ken-matsui in #1589
- refactor(ports): migrate catch2 to a provenance-bearing package by @ken-matsui in #1590
- docs(examples): describe the catch2 port as a package, not a recipe by @ken-matsui in #1593
- refactor(ports): migrate cjson to a provenance-bearing package by @ken-matsui in #1592
- refactor(ports): migrate cli11 to a provenance-bearing package by @ken-matsui in #1594
- refactor(ports): migrate fmt to a provenance-bearing package by @ken-matsui in #1595
- docs: attribute the catch2 links example to a migrated package by @ken-matsui in #1596
- refactor(ports): migrate googletest to a provenance-bearing package by @ken-matsui in #1597
- refactor(ports): migrate inih to a provenance-bearing package by @ken-matsui in #1598
- refactor(ports): migrate miniz to a provenance-bearing package by @ken-matsui in #1599
- refactor(ports): migrate picohttpparser to a provenance-bearing package by @ken-matsui in #1600
- refactor(ports): migrate uthash to a provenance-bearing package by @ken-matsui in #1601
- refactor(ports): migrate xxhash to a provenance-bearing package by @ken-matsui in #1602
- refactor(ports): migrate nlohmann_json to a provenance-bearing package by @ken-matsui in #1603
- refactor(ports): migrate spdlog to a provenance-bearing package by @ken-matsui in #1604
- refactor(ports): migrate sqlite3 to a provenance-bearing package by @ken-matsui in #1605
- refactor(ports): migrate stb to a provenance-bearing package by @ken-matsui in #1606
- refactor(ports): migrate tinyxml2 to a provenance-bearing package by @ken-matsui in #1607
- refactor(ports): migrate libpng to a provenance-bearing package by @ken-matsui in #1608
- docs(examples): describe the ports tree by shape, not as recipes only by @ken-matsui in #1610
- docs(agents): record verification and prose-sweep rules from the ports migration by @ken-matsui in #1609
- docs(contributing): describe ports by shape and correct the revision rule by @ken-matsui in #1612
- chore(deps): bump the npm group in /website with 3 updates by @dependabot[bot] in #1614
- refactor(ports): migrate zlib to a provenance-bearing package by @ken-matsui in #1616
- test(ports): move fake-port fixtures to their one consumer by @ken-matsui in #1617
- test(ports): stage the hermetic fixture ports as packages by @ken-matsui in #1618
- refactor(port-publish): drop the recipe code path by @ken-matsui in #1619
- refactor(website): drop the recipe shape from the ports loader by @ken-matsui in #1620
- refactor(website): drop the foundation-port count from the stats band by @ken-matsui in #1624
- docs(workspace): correct the resolution dependency-kind list by @ken-matsui in #1626
- build(ci): run the website test suite in the local gate by @ken-matsui in #1625
- refactor(port-publish): rename the crate to xtask-port-publish and add cargo aliases by @ken-matsui in #1629
- refactor(registry): migrate the sql and r2 source guards to a rust xtask crate by @ken-matsui in #1630
- refactor(registry): migrate the deploy-configuration guard to the rust xtask crate by @ken-matsui in #1631
- refactor(registry): migrate the fixture generator to a rust xtask crate by @ken-matsui in #1633
- chore(deps): bump postcss from 8.5.19 to 8.5.25 in /website by @dependabot[bot] in #1634
- chore(deps-dev): bump fast-uri from 3.1.4 to 3.1.5 in /website by @dependabot[bot] in #1635
- refactor(registry): migrate the diagnostics bundle to a rust xtask crate by @ken-matsui in #1636
- chore(website): drop package.json engines in favor of .node-version by @ken-matsui in #1637
- chore(website): migrate node to 24.19.0 by @ken-matsui in #1638
- refactor(registry): migrate the backup backfill to a rust xtask command by @ken-matsui in #1639
- refactor(registry): migrate the backup audit to a rust xtask command by @ken-matsui in #1640
- refactor(registry): migrate the restore drill to a rust xtask command by @ken-matsui in #1641
- refactor(registry): migrate the launch guard to a rust xtask command by @ken-matsui in #1642
- refactor(registry): migrate the governor ledger surface to a rust xtask command by @ken-matsui in #1643
- refactor(ci): migrate the local ci gate to a rust xtask command by @ken-matsui in #1644
- ci: refresh the dtolnay/rust-toolchain pin to current master by @ken-matsui in #1646
- refactor(registry): migrate the smoke test to a rust xtask command by @ken-matsui in #1645
- refactor(registry): migrate the scheduled verify pass to a rust xtask command by @ken-matsui in #1647
- ci(registry): include the smoke crate in the deploy freshness path list by @ken-matsui in #1648
- refactor(ci): migrate the deploy freshness guard to a rust xtask crate by @ken-matsui in #1649
- refactor(ci): migrate the ports-publish freshness guard to the rust xtask crate by @ken-matsui in #1650
- refactor(registry): migrate the migrations deploy gate to a rust xtask command by @ken-matsui in #1651
- refactor(ci): migrate the registry-deploy wait to a rust xtask command by @ken-matsui in #1652
- refactor(ci): migrate the release packaging step to a rust xtask crate by @ken-matsui in #1653
- refactor(ci): migrate the release checksums step to a rust xtask command by @ken-matsui in #1654
- refactor(proofs): migrate the spec-coverage check to a rust test by @ken-matsui in #1655
- refactor(registry): migrate the d1 migration apply to a rust xtask command by @ken-matsui in #1656
- refactor(registry): migrate the wipe procedure to a rust xtask command by @ken-matsui in #1657
- refactor(xtask): normalize manifests and share the differential test harness by @ken-matsui in #1658
- refactor(xtask): parse every tool command line with clap by @ken-matsui in #1659
- refactor(xtask): drop hand-rolled usage text and rely on clap by @ken-matsui in #1660
- refactor(xtask): drop the differential harnesses and vendored shell fixtures by @ken-matsui in #1661
- refactor(xtask): take the admin modes as clap flags and prune redundant tests by @ken-matsui in #1662
- refactor(xtask): fold the test-phase commands and reuse the commit count by @ken-matsui in #1665
- chore(registry): point the worker at the re-provisioned database by @ken-matsui in #1667
- refactor(core): introduce the shared algorithm-tagged checksum type by @ken-matsui in #1668
- refactor(package): stage and publish archives through the typed checksum by @ken-matsui in #1669
- refactor(index): parse revision checksums into the typed representation at load by @ken-matsui in #1671
- chore(deps): bump js-yaml from 4.2.0 to 4.3.1 in /website by @dependabot[bot] in #1670
- refactor(lockfile): validate recorded checksums through the shared type at parse by @ken-matsui in #1672
- refactor(artifact): replace the crate-local checksum parser with the shared type by @ken-matsui in #1673
- docs(architecture): record the unified checksum representation and its boundaries by @ken-matsui in #1675
- chore(registry): point the worker at the generation-8 database by @ken-matsui in #1676
- refactor(xtask-registry-admin): share the command, rest, digest and bucket helpers by @ken-matsui in #1677
- chore(core): remove dead public api by @ken-matsui in #1678
- chore(workspace): remove the dead closure-has-versioned-deps helper by @ken-matsui in #1679
- refactor(registry-verify): inline the store path and drop the capped-reader scaffolding by @ken-matsui in #1680
- refactor(xtask-registry-smoke): dedupe leg helpers into shared text and d1 plumbing by @ken-matsui in #1681
- chore(resolver): drop the unused serialize derive and serde dependency by @ken-matsui in #1682
- docs(ci): drop two workflow comments describing the removed paths filters by @ken-matsui in #1700
- ci: publish ports through trusted publishing instead of the operator token by @ken-matsui in #1705
- chore(registry): point the worker at the generation-9 database by @ken-matsui in #1706
- refactor(registry): rename trustpub_used_jtis to oidc_used_jtis by @ken-matsui in #1707
- ci: make ports publishing dispatch-only by @ken-matsui in #1710
- ci: delete the coverage workflow nothing consumes by @ken-matsui in #1709
- ci: drop package installs of tools the runner images preinstall by @ken-matsui in #1712
- ci: cancel stale pr runs and cap compiler-detection parallelism by @ken-matsui in #1711
- ci: scope the deploy and publish freshness guards to relevant paths by @ken-matsui in #1713
- ci: remove the temporary scoped-filter probe job by @ken-matsui in #1715
- ci: shrink compiler-detection to one leg per compiler family by @ken-matsui in #1714
- ci: cancel zizmor runs only for stale pr pushes by @ken-matsui in #1717
- ci(registry): split formatting and clippy into their own jobs by @ken-matsui in #1719
- ci(registry): rename the format and clippy jobs to avoid required-check collisions by @ken-matsui in #1720
- ci: gate component jobs on shared path filters by @ken-matsui in #1721
- ci: install the demo recorders from static release builds by @ken-matsui in #1724
- ci(registry): rename the build job so it cannot satisfy the required website build check by @ken-matsui in #1723
- ci: add a non-matrix build-and-test-required aggregate check by @ken-matsui in #1725
- ci: gate build-and-test on the rust and docs path filters by @ken-matsui in #1726
- docs: drop the stale on-every-change claim from the windows ci note by @ken-matsui in #1728
- ci: report checksums through a fail-closed required aggregate by @ken-matsui in #1729
- chore(registry): point the worker at the generation-10 database by @ken-matsui in #1730
- ci: scope component filters and non-required workflows to the files that affect them by @ken-matsui in #1731
- ci: run both compiler-detection passes on one runner by @ken-matsui in #1732
- ci: fold registry format and clippy into the registry-build job by @ken-matsui in #1733
- ci: run the spelling check on the commitlint runner by @ken-matsui in #1735
- ci: fold rust format and docs into the clippy job by @ken-matsui in #1736
- ci: rename the merged clippy job to lint by @ken-matsui in #1737
- chore(deps): bump find-msvc-tools from 0.1.9 to 0.1.10 in /registry by @dependabot[bot] in #1738
- chore(deps): bump camino from 1.2.4 to 1.2.5 by @dependabot[bot] in #1742
- chore(deps): bump the npm group in /website with 10 updates by @dependabot[bot] in #1749
- ci(deps): bump Swatinem/rust-cache from 2.9.1 to 2.9.2 by @dependabot[bot] in #1751
- ci(deps): bump crate-ci/typos from 1.48.0 to 1.49.0 by @dependabot[bot] in #1752
- chore(deps): bump futures-util from 0.3.33 to 0.3.34 in /registry by @dependabot[bot] in #1739
- chore(deps): bump rusqlite from 0.40.1 to 0.40.2 in /registry by @dependabot[bot] in #1741
- chore(deps): bump atomic-write-file from 0.3.0 to 0.3.1 in /registry by @dependabot[bot] in #1743
- chore(deps): bump clap_complete from 4.6.7 to 4.6.9 by @dependabot[bot] in #1744
- chore(deps): bump ignore from 0.4.31 to 0.4.33 by @dependabot[bot] in #1746
- chore(deps): bump libc from 0.2.186 to 0.2.189 in /registry by @dependabot[bot] in #1745
- chore(deps): bump atomic-write-file from 0.3.0 to 0.3.1 by @dependabot[bot] in #1747
- chore(deps): bump libc from 0.2.186 to 0.2.189 by @dependabot[bot] in #1740
- ci(deps): bump github/codeql-action from 4.37.3 to 4.37.7 by @dependabot[bot] in #1753
- ci(deps): bump github/codeql-action from 4.37.3 to 4.37.7 by @dependabot[bot] in #1748
- chore(deps): bump markdown-it from 14.3.0 to 15.0.0 in /website by @dependabot[bot] in #1750
- chore(registry): point the worker at the generation-11 database by @ken-matsui in #1755
- ci(registry): queue pending deploys instead of cancelling all but the newest by @ken-matsui in #1756
- ci: run required checks on merge_group for github merge queue by @ken-matsui in #1757
- ci: fail required checks closed when the changes gate fails by @ken-matsui in #1758
- ci: pin development rust toolchain to 1.98.0 by @ken-matsui in #1761
- chore(deps): bump thiserror from 2.0.19 to 2.0.20 in /registry by @dependabot[bot] in #1764
- chore(deps): bump icu_normalizer from 2.2.0 to 2.3.0 in /registry by @dependabot[bot] in #1763
- chore(deps): bump rand from 0.9.4 to 0.10.2 by @dependabot[bot] in #1765
- chore(deps-dev): bump the npm group in /website with 2 updates by @dependabot[bot] in #1767
- chore(deps): bump thiserror from 2.0.19 to 2.0.20 by @dependabot[bot] in #1766
- test: stop asserting documentation wording by @ken-matsui in #1771
- test: silence await-deploy polling output by @ken-matsui in #1774
- chore(deps): bump find-msvc-tools from 0.1.9 to 0.1.11 by @dependabot[bot] in #1770
- chore(deps): bump clap_mangen from 0.3.0 to 0.3.1 by @dependabot[bot] in #1769
- chore(deps): bump icu_normalizer from 2.2.0 to 2.3.0 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1768
- ci: use setup-rust-toolchain caching by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1772
- ci: add groups for cargo dependabot by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1773
- test: remove brittle repository-text checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1775
- test: remove redundant await-deploy message assertions by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1776
- test: remove redundant low-signal checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1777
- test: remove proof source consistency checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1778
- test: remove trivial avatar URL check by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1779
- test: remove committed port layout checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1782
- test: remove obsolete config checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1788
- test: remove low-signal core checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1791
- test: remove redundant example builds by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1785
- test: remove legacy manifest checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1790
- test: remove obsolete CLI guard checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1786
- test: trim package environment checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1789
- test: remove xtask-dist parser self-checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1798
- test: remove xtask-ci parser self-checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1796
- test: remove registry guard order checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1797
- test: remove registry admin rendering checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1792
- test: remove default system-deps check by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1793
- test: remove plain diagnostic smoke check by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1795
- test: remove registry smoke self-checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1794
- test: consolidate color control coverage by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1784
- test: remove trivial core mapping checks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1787
- test: focus committed port manifest coverage by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1781
- test: consolidate verbosity coverage by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1780
- test: consolidate redundant CLI coverage by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1783
- test(env): verify manifest paths in child environment by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1799
- docs: streamline root agent instructions by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1800
- docs: streamline website agent instructions by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1801
- chore(registry): point the worker at the generation-12 database by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1804
- refactor(registry-admin): read the operator token from CABIN_REGISTRY_TOKEN by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1806
- docs: route github actions and xtask rules to scoped agents files by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1807
- ci(dist): replace release checksum files with github artifact attestations by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1808
- ci: extract the shared changes gate into a reusable workflow by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1810
- ci(website): cache npm dependencies in setup-node by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1811
- ci: drop the no-op push trigger from ports-publish by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1812
- ci: share the fail-closed required-gate logic as a composite action by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1813
- ci: stop rerunning validation on main pushes now that merge queue gates merges by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1814
- refactor(system-deps): split pkg-config output with shlex by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1817
- refactor(xtask-ci): create scratch logs with tempfile by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1819
- ci(dist): pin and checksum-verify the demo job's tool downloads by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1821
- docs: automation and dependency guidelines by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1824
- docs: repository automation and xtasks by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1825
- docs: automation rules by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1826
- docs: revise code reuse and review guidelines in AGENTS.md by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1827
- docs: update AGENTS.md with workflow best practices by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1828
- docs: improve AGENTS.md by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1829
- docs: improve PR process by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1830
- ci: add devcontainers to dependabot by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1831
- ci: name simplification by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1832
- ci: install commitlint from a committed lockfile instead of an ad-hoc npm install by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1823
- chore(deps): bump the npm group in /website with 5 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1833
- ci(deps): bump leanprover/lean-action from 1.5.0 to 1.6.0 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1836
- ci: group codeql actions for dependabot by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1837
- ci(deps): bump the codeql group with 2 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1838
- docs: add registry context-routing agents guide by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1840
- refactor(registry): split glue.rs by plane into glue/{mod,read,bearer,cron}.rs by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1841
- refactor(registry): split sql.rs and its validation test by statement domain by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1842
- docs(agents): land post-PR review fixes as ordinary commits, not fixups by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1843
- chore(deps): bump crc32fast from 1.5.0 to 1.5.1 in the cargo group by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1845
- chore(deps): bump the npm group in /website with 4 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1844
- refactor(registry): split glue/bearer.rs into bearer/{package,tokens,verifier,governor}.rs by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1846
- ci(registry): run the local smoke suite after the worker build in ci by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1848
- chore(deps-dev): bump fast-uri from 3.1.5 to 3.1.7 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1851
- chore(deps): bump svgo from 4.0.2 to 4.1.0 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1854
- chore(deps): bump nanoid from 3.3.16 to 3.3.18 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1855
- chore(deps-dev): bump astro from 7.2.7 to 7.3.2 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1856
- chore(deps): bump js-yaml from 4.3.1 to 4.3.2 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1857
- ci: add AI auto issue triage by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1859
- ci: enhance issue triage guidelines for clarity by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1862
- ci: compile new issue-triage by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1863
- chore(deps): bump sharp and wrangler in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1864
- docs: remove CLAUDE.md by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1865
- chore(deps): bump devalue from 5.8.1 to 5.9.4 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1866
- chore(deps): bump markdown-it from 15.0.0 to 15.0.1 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1867
- ci(deps): bump the codeql group with 2 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1868
- chore(deps): bump the npm group in /website with 9 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1875
- chore(deps): bump the cargo-registry group in /registry with 4 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1874
- ci(deps): bump cloudflare/wrangler-action from 4.0.0 to 4.1.3 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1871
- ci(deps): bump crate-ci/typos from 1.49.0 to 1.50.2 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1870
- ci(deps): bump github/gh-aw-actions/setup from 0.88.8 to 0.89.21 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1869
- ci(deps): bump actions-rust-lang/setup-rust-toolchain from 1.17.0 to 2.0.0 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1872
- chore(deps): bump the cargo group with 9 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1876
- ci(deps): bump rust-toolchain from 1.98.0 to 1.99.0 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1873
- docs(agents): drop stale cargo-dist reference from release rule by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1877
- chore(deps): bump http-cache-semantics from 4.2.0 to 4.3.0 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1878
- chore(deps): bump rustls from 0.23.40 to 0.23.45 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1879
- chore(deps): bump katex from 0.18.9 to 0.18.10 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1880
- chore(deps): bump source-map-js from 1.2.1 to 1.2.2 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1881
- chore(deps): bump katex from 0.18.10 to 0.19.0 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1882
- chore: add OSS Scanner Dockerfile and threat model by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1883
- docs: add GitHub Sponsors link to README by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1884
- ci(deps): bump rust-toolchain from 1.99.0 to 1.99.1 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1885
- chore(deps): bump the npm group in /website with 7 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1888
- ci(deps): bump the codeql group with 2 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1889
- ci(deps): bump leanprover/lean-action from 1.6.0 to 1.6.1 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1891
- ci(deps): bump actions/download-artifact from 8.0.1 to 8.0.2 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1892
- ci(deps): bump actions/upload-artifact from 7.0.1 to 7.0.2 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1893
- ci(deps): bump github/gh-aw-actions/setup from 0.89.21 to 0.91.7 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1894
- chore(deps): bump the cargo-registry group in /registry with 2 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1886
- chore(deps): bump libc from 0.2.189 to 0.2.190 in the cargo group by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1887
- chore(deps): bump zip from 8.6.0 to 9.0.1 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1890
- refactor(cli): extract the resolution seed shared by resolve, fetch, vendor and build by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1895
- chore(deps): bump undici from 8.10.0 to 8.12.3 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1905
- chore(deps): bump markdown-it from 15.0.2 to 15.0.3 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1906
- chore(deps): bump the npm group in /website with 2 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1907
- ci(deps): bump crate-ci/typos from 1.50.2 to 1.51.1 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1911
- ci(deps): bump the codeql group with 2 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1910
- ci(deps): bump actions/setup-node from 7.0.0 to 7.1.0 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1914
- ci(deps): bump github/gh-aw-actions/setup from 0.91.7 to 0.92.1 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1912
- ci(deps): bump softprops/action-gh-release from 3.0.2 to 3.0.3 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1913
- chore(deps): bump the cargo-registry group in /registry with 2 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1908
- chore(deps): bump the cargo group with 2 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1909
- docs: name the deploy toolchain as operator input and fix zip cap and patch-file wording by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1920
- test(registry): prove the check_publish quota policy with a Kani harness run in CI by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1923
- test(registry): prove the publish token bucket's balance and Retry-After bounds with Kani by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1924
- chore(deps-dev): bump fast-uri from 3.1.7 to 3.1.9 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1925
- chore(deps): bump katex from 0.19.0 to 0.19.1 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1926
- chore(deps): bump zod from 4.6.5 to 4.6.7 in /website by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1927
- ci(deps): bump leanprover/lean-action from 1.6.1 to 1.6.2 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1928
- ci(deps): bump github/gh-aw-actions/setup from 0.92.1 to 0.92.5 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1929
- ci(deps): bump fast-uri from 3.1.6 to 3.1.9 in /.github/commitlint by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1930
- chore(deps): bump the npm group in /website with 4 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1931
- test(registry): model the publish/verify lifecycle in TLA+ and check it with TLC in CI by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1932
- test(registry): model the verifier's pass as a participant in the TLA+ lifecycle spec by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1933
- docs: clarify precedence between code and documentation conventions by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1935
- docs(website): discourage redundant UI labels and descriptions by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1937
- test(registry): share one migrated in-memory database across the unit and sql tests by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1938
- refactor(cli): share the metadata and explain build-config profile and toolchain setup by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1939
- refactor(registry-api): classify refusals once for the package and minted-token routes by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1940
- refactor(proofs): move the standard-compatibility lean development out of docs by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1941
- test(registry): pin the token-bucket compare-and-swap the Kani harness assumes by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1942
- refactor(cabin-core): drop the unused merged profile flags from resolved profiles by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1944
- refactor(cabin-core): remove helpers that only their own tests call by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1945
- test: add cargo-fuzz targets for the registry verifier and manifest parser by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1950
- refactor(cabin-ninja): drop the unconstructed lowering and non-utf8 path error variants by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1952
- docs(registry): remove the historical verification log by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1955
- refactor(cabin-driver): drop the unused implicit_inputs action fields by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1956
- test(cli): run config-discovery tests through the scrubbed cabin command by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1957
- ci(deps): bump rust-toolchain from nightly-2026-08-21 to nightly-2026-10-25 in /fuzz by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1962
- refactor(registry): share the publish path-shape and fold-conflict predicates by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1961
- chore(deps): bump zip from 9.0.4 to 9.0.5 in /fuzz in the cargo-fuzz group by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1963
- chore(deps): bump zip from 9.0.4 to 9.0.5 in the cargo group by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/1964
- refactor(registry): check the verdict checksum's canonical spelling in parse_verdict by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1960
- ci(registry): fail the kani job when a proof harness leaves a cover unsatisfied by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1959
- refactor(cabin-toolchain): route the ninja lookup through the shared path search by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1965
- refactor(cabin-system-deps): route the pkg-config availability check through run_pkg_config by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1953
- refactor(xtask): compute the migrations stamp in one place by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1967
- refactor(cabin-core): check registry subdirectories with the shared safe-path predicate by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1969
- refactor(cabin-index-http): classify coded 429 and 503 responses in one arm by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1971
- refactor(crates): drop redundant guards in profile resolution and build-jobs parsing by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1970
- refactor(cabin-publish): share one body between the file-registry publish and dry run by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1972
- refactor(xtask): drop the unreachable identity check and always-constant parameters by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1973
- ci(dist): run each packaged binary on its own platform and refuse a mismatched tag by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1954
- ci: scan every lockfile against OSV advisories on change and weekly by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1976
- refactor(cabin-workspace): keep one registry entry per path and one registry-origin check by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1975
- refactor(registry): drop an unread column and empty test exclusions, reuse changed_rows by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1977
- refactor(cabin-package): drop unused metadata deserializers and a compatibility re-export by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1974
- refactor(cabin-manifest): drop dead parse branches, single-valued error fields and no-ops by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1979
- test(cli): drop a needless tidy test lock and fixture helpers nothing calls by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1980
- refactor(registry): build served source paths and R2 blob keys in one place each by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1982
- test(registry): run the real verifier driver against the local worker in the smoke by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1981
- refactor(cli): return the selected single package directly instead of an enum split apart by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1991
- docs: drop the drifted reference-by-topic list from the docs home page by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2000
- chore(website): drop unused path alias, Next.js leftovers and stale history comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1996
- refactor(cabin-config): build the missing-replacement error once and store bare locators by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1993
- docs(ports): point the README's publishing section at foundation-ports.md by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2001
- refactor(website): share the account pages' name grammar, setText and fetch helpers by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1995
- refactor(cli): drop the system-dependency and env-flag reports no caller reads by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1989
- refactor(cli): resolve the index locator in one helper for resolution and the pipeline by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2004
- refactor(cli): stop reloading the already-patched workspace in tree, explain and metadata by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2005
- refactor(xtask): reuse registry_root in migrate instead of a private copy by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2006
- docs(registry): fix stale section citations and misplaced or outdated doc comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2002
- refactor(cabin-core): share one registry package-name grammar with publish and the api by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2009
- refactor(cabin-workspace): drop the loader's private mirror of RegistryPolicy by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2010
- refactor(cabin-workspace): expand member and exclude patterns through one function by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1984
- refactor(cabin-core): serialize the explain compiler wrapper and profile source via serde by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2003
- refactor(cli): resolve the cache directory precedence once by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2012
- ci: build the fuzz targets with oss-fuzz's tooling, without enrolling by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2013
- refactor(registry): stamp the generation header and gate the GitHub allowlist once each by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1983
- ci(registry): require tlc to violate every witness trap by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1997
- refactor(xtask): drop retired-shell commentary from the ci, dist, and guard crates by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1992
- refactor(cabin-manifest): build the toolchain settings once for the package and root by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2011
- test(registry): restore the smoke's local dump into a scratch database and compare by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2015
- ci: replay every fuzz target's seeds on pull requests by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1988
- ci(release): refuse a tag on a commit main does not carry by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2016
- chore(deps): bump the registry's pinned wrangler from 4.112.0 to 4.151.1 by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2014
- docs(agents): add PR conflict checks and merge queue recovery rules by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2018
- refactor(xtask): drop retired-shell commentary from the registry smoke test by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1999
- refactor(xtask): drop retired-shell commentary from the registry admin tooling by @ken-matsui in https://github.com/cabinpkg/cabin/pull/1998
- test(fuzz): fuzz zip and tar.gz extraction for containment in the destination by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2019
- test(registry): forward the smoke's website role into the registry role's worker by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2017
- ci(registry): pin wrangler once in package.json with a committed lockfile by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2020
- docs(xtask): say which seeds tamper_zip maps to the same bytes by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2022
- ci(fuzz): run every fuzz target daily on a corpus kept between runs by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2021
- test(xtask): isolate launch-guard shims and document the smoke's npm ci step by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2023
- test(fuzz): fuzz declared-patch application for containment and its grammar by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2025
- test(fuzz): fuzz the pack, verify, and fetch round trip of a staged package by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2026
- chore(registry): point the worker at the generation-13 database by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2029
- refactor(xtask): keep each port consumer test in its own tests directory by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2036
- docs(ports): drop the available-ports list from ports/README.md by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2049
- refactor(ports): spell each port directory exactly as its package name by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2051
- docs(ports): mark the last 18 boost ports merged in the porting ledger by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2053
- docs(design): establish the capability roadmap contracts and ledger by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2054
- ci: remove the osv-scanner workflow and its config by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2067
- docs: define temporary worktree lifecycle for agents by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2074
- docs(registry): describe the current service instead of its rollout history by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2077
- docs: describe current behavior instead of completed work by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2079
- docs: keep documentation focused on current state by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2080
- docs: fix the broken system = true code spans by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2082
- ci: lock workflow actions with gh actions-lock and reference them by tag by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2075
- ci(perf): run benchmark smoke checks on pull requests and the full suite weekly by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2083
- ci: show perf improvements in release notes by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2091
- ci: add perf label by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2090
- chore(deps): bump undici from 7.29.1 to 7.30.1 in /registry in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/2103
- ci(perf): run the smoke scenarios on windows too, from a path with a space by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2104
- test(xtask): write the node shims through cp so their exec never hits etxtbsy by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2116
- docs(agents): clarify proof-oriented comment guidelines by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2122
- docs(perf): attribute the http-wide peak rss rise to code layout by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2120
- ci(registry): run tlc only when the model or its witness check changes by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2117
- ci: stop saving rust caches from merge-queue runs by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2125
- ci(registry): restore registry-build-work's cache from a daily main seed by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2123
- docs(core): correct and tighten code comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2133
- docs(resolution): correct and tighten code comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2130
- docs(registry-client): correct and tighten code comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2129
- test(xtask): wait for a running grandchild and bound every wait in the gate teardown test by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2132
- docs(project-model): correct and tighten code comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2134
- docs(build): correct and tighten code comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2135
- docs(toolchains): note that msvc compiles do not track windows sdk or msvc headers by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2137
- docs(xtask): correct and tighten registry tooling comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2141
- docs(misc): correct and tighten comments in examples, proofs, and root config by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2144
- docs(xtask): correct and tighten ci, dist, and port tooling comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2142
- docs(registry): correct and tighten code comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2140
- docs(website): correct and tighten code comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2143
- ci: correct and tighten workflow comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2146
- docs(cli-tests): correct and tighten test comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2139
- docs(cli): correct and tighten code comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2138
- docs: correct and tighten comments in previously busy files by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2149
- ci(registry): install worker-build through a cached action, not wrangler's build command by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2152
- ci: tighten rust and dist workflow comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2155
- docs(bench): correct stale benchmark harness comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2154
- ci(ports): keep the windows dry-run scratch tree on the runner temp drive by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2147
- ci(codeql): skip the duplicate analysis in merge-group runs by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2151
- docs(driver): correct stale dialect comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2157
- ci(deps): bump github/gh-aw-actions/setup from 0.92.5 to 0.93.5 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/2159
- chore(deps): bump the cargo-registry group in /registry with 2 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/2163
- chore(deps): bump the cargo-fuzz group in /fuzz with 4 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/2165
- docs(agents): allow force-push after conflict resolution by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2166
- ci(deps): bump rust-toolchain from nightly-2026-10-25 to nightly-2026-11-01 in /fuzz by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/2161
- ci(ports): stop caching in the pull-request dry-run by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2148
- chore(deps): bump the cargo group with 3 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/2160
- docs(build): correct stale build-layout, clean, and cli comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2168
- ci(deps): bump github/codeql-action from 4.39.0 to 4.39.1 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/2158
- chore(deps): bump rusqlite from 0.40.2 to 0.41.0 in /registry by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/2164
- chore(deps): bump the npm group in /website with 6 updates by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/2167
- ci: scope the registry and ports dry-run jobs by cargo dependency closure by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2162
- ci(perf): refuse a dispatched perf base outside the run's own history by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2174
- test(cli): cover windows header tracking below non-ascii and program files paths by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2169
- ci: build, link, and run c, c++, and mixed examples with mingw-w64 gcc on windows by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2171
- docs(gc): state what the catalog syncs protect and defer batching them by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2177
- docs: correct stale gc and port-publish comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2176
- docs(gc): say a whole clean removes the catalog lock file and why that cannot race by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2172
- docs(build): correct stale planner comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2178
- ci: seed shared rust caches on main and restore them read-only by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2175
- ci(registry): check the tla+ model configurations in parallel jobs by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2170
- ci: restore the seeded windows cache read-only in windows-mingw by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2180
- ci(registry): keep installed binaries out of the shared registry cache by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2182
- test: write executable fixtures through a sh child by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2183
- test(clean): cover a package clean under --target by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2185
- test(xtask): give each port-publish test its own cabin binary by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2193
- ci(registry): clarify the filter-coverage comment and drop a duplicate by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2186
- ci(registry): pin the registry cache seed and its consumer to the image the key names by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2200
- chore(agents): stop treating design docs as authoritative by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2201
- docs(perf): attribute the #2095 and #2099 peak RSS steps to text layout by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2202
- ci: stop saving pull-request caches that rarely hit and keep release builds uncached by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2203
- ci(registry): pin the deploy job to ubuntu-26.04 by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2224
- docs: correct comments that misstate archive, verbosity, and portability rules by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2218
- test(registry): pin that a verdict lands only on the listed pending generation by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2235
- refactor(cli): report a manifest load failure instead of loading an empty config by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2219
- docs(cli): fix stale comments on metadata, seed, help blocks and the test cache home by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2245
- docs: correct diagnostics, toolchain, and proof-coverage claims in comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2239
- test(cli): make the tidy and fmt build-dir exclusion tests exercise a custom directory by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2231
- refactor(feature): drop an unreachable branch and make tests exercise their names by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2238
- docs(registry): correct audited registry and registry xtask comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2249
- ci: require the exchange-check revocation to answer 204 and fix a gate typo by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2251
- docs(bench): give the --smoke run count and the slowest-binary pace in the --runs help by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2242
- docs(xtask): name the runbook by its root path and correct the cwd and teardown notes by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2243
- test(cli): make fetch, wrapper, and run tests assert what they claim by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2257
- test(cli): assert the standards, links, tree, lint, and package claims tests make by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2258
- test(cli): make audited cli tests assert what their comments claim by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2261
- chore(registry): point the worker at the generation-14 database by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2265
- docs: remove internal design documentation by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2214
- docs(agents): require registry health checks before merging by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2267
- docs(standards): correct the r_l recursion and lean naming claims by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2268
- docs(agents): proactively fix incidental low-risk bugs by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2271
- ci(registry): block a merge whose tree the migrations deploy gate would refuse by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2270
- docs: correct the publish gate order and pl3 baseline comments by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2269
- ci(deps): bump Swatinem/rust-cache from 2.9.2 to 2.9.3 by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/2274
- chore(deps): bump zip from 9.1.0 to 9.1.1 in the cargo group by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/2275
- chore(deps): bump zip from 9.1.0 to 9.1.1 in /fuzz in the cargo-fuzz group by @dependabot[bot] in https://github.com/cabinpkg/cabin/pull/2276
- refactor(xtask-ci): count cores with available_parallelism instead of cgroup parsing by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2279
- refactor(index): drop the unused whole-directory load_index scanner by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2280
- refactor(registry-file): drop staged-package checks the publish flow already guarantees by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2281
- refactor(core): reduce tool backend checks to the unknown-kind rejection by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2282
- refactor(artifact): use zip has_duplicate_names instead of a hand-rolled directory walk by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2283
- refactor(vendor): drop the up-front source hash pass, verify during the copy by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2284
- docs(install): list the c compiler that building cabin needs by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2287
- refactor(resolver): check the hold-back allow solve instead of pruning links collisions by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2288
- refactor(build): carry planned standard violations as typed errors by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2290
- refactor(gc): keep the build-output catalog in two files instead of per-directory shards by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2292
- refactor(resolver): drop the locked-mode constraint recorder by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2297
- refactor(toolchain): drop the ninja fallback list and an unreachable tool path branch by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2298
- refactor(registry): drop the x-cabin-registry-generation response header by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2304
- ci(rust): gate the windows and compiler-detection jobs in build-and-test-required by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2306
- docs: simplify release checks and clarify workspaces by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2309
- chore: release 0.18.0 by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2311
- ci(release): grant the dist call the pull-requests read its change gate needs by @ken-matsui in https://github.com/cabinpkg/cabin/pull/2312
Full Changelog: 0.17.0...0.18.0