This is the current release snapshot for the Rust Swift family only:
swift-rust, swift-console, swift-deploy-rs, cosbench-rs, and
autocos. swiftfuse is deliberately outside this page and this release.
What changed in the last two weeks
The release line has moved through a concentrated compatibility and gate-repair window. The source records are the commits, not a chat transcript or an aggregate test count.
| Date | Commit | Recorded change |
|---|---|---|
| 2026-08-17–20 | e8ce550..e65d26a |
Full-workspace CI and EC coverage were made mandatory; S3 control paths, WORM/CAS, streaming bodies, and Ceph s3-tests compatibility were tightened. |
| 2026-08-22 | c93a6ca |
Native-async S3 GET/HEAD/List/MPU and versioned streaming PUT became the active G3/G4 work line. |
| 2026-08-23–24 | 520ebf6, 7d71b9d |
Hyper body draining and the G7 load-test harness were added; G7 remains a harness, not an acceptance result. |
| 2026-08-26–27 | 4dc10c0, fda3691 |
Native async multiphase object PUT, reconciler paths, expirer routing, and sharder leader behavior were repaired. |
| 2026-08-29–30 | 0d5c816..b6e36bf |
G6 sharding, replication, object, versioning, reload, and HTTP-boundary fixes were integrated; G7 evidence was made fail-closed. |
| 2026-08-31 | 64446f1 |
G6 EC POST/nondurable and runner lifecycle were repaired. W019/W020/W021 were an intermediate checkpoint, later superseded by the accepted W068/W069/W070 sequence. |
| 2026-08-31 | 17adf0b |
Eight follow-up fixes close isolated sharder routing and timestamp behavior, cancellation and release service entries, reload/fixture isolation, listener rebind, and the raced keep-alive request during graceful shutdown. Two 100-attempt reload canaries pass before the formal frozen-179 rerun. |
| 2026-09-01 | g6-green-20260831 |
The accepted Rust Swift source, full documentation audit, rebuilt auxiliary Linux tools, and checksummed evidence are published as a lab pre-release. G7 remains not accepted and production remains NO-GO. |
The G6-accepted Rust Swift source line is identified by the full commit
17adf0bfa78b30b2a7eed9f39836e0d63c715d2c. The frozen comparison oracle is
identified by SHA-256
f277baa81ccb6d62f38621b1f04b012f03c0ed4eb683fdac9bb7fe263c98e591.
The earlier 64446f1 bundle and Drive folder remain immutable historical
candidate evidence; they are not the accepted W070 artifact. The published
lab pre-release and refreshed Drive archive are tracked on
Releases and do not rewrite that historical bundle.
Gate truth
The gates are ordered. A later gate cannot be called green from a partial lane, a canary, or a reduced unexpected count.
| Gate | Contract | Current state |
|---|---|---|
| G0 | Source, lockfile, compiler/features, artifact, and running PID agree. | GREEN for the G6 claim: W070 pins source 17adf0b, artifact/wrapper/provenance manifests, both runners, and actual /proc/$pid/exe paths. This is not production provenance. |
| G1 | Professional Linux environment and four-node lab roles are known. | GREEN for isolated G6: build and test roles are recorded, the test listener is isolated, and the production listener is guarded. G7/G8 require their own clean-mode preflight. |
| G2 | Reproducible Linux build with the required EC feature and captured artifact digest. | GREEN for the G6 artifact: the clean offline locked v9 EC package and all binary/wrapper manifests are pinned. |
| G3 | Every migrated route is genuinely async and has route-specific runtime proof. | Open until the candidate’s route matrix and runtime evidence are attached. |
| G4 | Official Swift functional suite matches the Python oracle. | Historical evidence exists; not a current candidate acceptance claim. |
| G5 | Official S3 compatibility suite and its known-failure policy are matched. | Historical evidence exists; not a current candidate acceptance claim. |
| G6-R | Frozen replication identities and accounting are exact on the accepted candidate. | GREEN: W068, 147 identities, 143 pass plus 4 Python-matching expected skips, no failure or error. |
| G6-EC | Frozen EC identities and accounting are exact on the candidate. | GREEN: W069, 32/32 pass, no failure, error, or skip. |
| G6 | Same-candidate replication plus EC identities, with no unexpected result. | GREEN: W070, exact 179/179 partition and outcome match; all strict invariants true and violations empty. |
| G7 | Concurrency, reload, fault, and bounded-runtime evidence on the accepted G6 candidate. | NOT ACCEPTED; harness and scenario audit precedes any formal run. |
| G8 | Performance and soak on the accepted G0–G7 candidate. | BLOCKED until every prerequisite gate, including G7, is accepted. |
Evidence hierarchy
Use the strongest matching layer for each claim:
- Source provenance: exact commit,
Cargo.lock, Rust version, feature flags, build command, artifact SHA, and matching/proc/$pid/exe. - Unit/golden: format and serialization checks. Useful, but not live proof.
- Linux/SAIO: a reproducible single-node or isolated-stack result. Useful, but not four-node or production proof.
- Live lab: route-specific probes and official suites on the Contabo lab.
- Production: HA/VIP behavior only after the earlier gates are closed and a dated, authorized rollout records the exact binary identity.
The local frozen-lane records include the exact oracle SHA and lane manifest;
the 147 replication identities and 32 EC identities must be merged exactly once.
Never turn 147/147 replication accounting into a 179/179 G6 claim.
The final Swift1 records are:
/var/log/g6-ec/probe-ec-w068-formal-replication147-17adf0b-v28— 147 identities, 143 pass plus 4 expected skips, 0 failure/error;/var/log/g6-ec/probe-ec-w069-formal-ec32-17adf0b-v28— 32/32 pass, 0 failure/error/skip;/var/log/g6-ec/g6-score-w070-17adf0b-v9— strict merged verdictGREEN, 179 identities, missing/extra/duplicate/overlap/unexpected all zero.
W070’s score.json SHA-256 is
f1b88427636cb25a3a6fe40e6da269577457061e182dfc75555bc33c922c592c.
Its merged ledger SHA-256 is
44a003859ab60792c52f47a164b3bf7031b57d560f3fdf092d314ced2067c84e;
violations.txt is empty. Both lanes pin the same source, artifact, wrapper,
overseer, runner, frozen input, and actual process executables. Before/after
hashes are stable, no isolated listener/process remains, and production
:8080 still resolves to SHA-256
ab5cb95c5c3973db8336e4940711fba18ce3cabaae62e13da0865c07ad31622b.
Concurrency boundary
The request path is client → proxy → storage server → update side channel. Body
streams stay bounded; the async Hyper/Tokio path must not hide a synchronous
handle() or a block_in_place on a migrated route. G3 therefore requires
route-specific counters and runtime observation, not just a successful unit
test. The reload and keep-alive fixes through 17adf0b close the G6
reload-induced probe failures. Their 100-attempt canaries are inputs to G7,
not a G7 verdict.
The test plane is intentionally separate: cosbench-rs produces repeatable
S3/Swift load and reports, autocos owns lifecycle and cleanup, and the
swift-console Lab drives bounded fault scenarios. None of these tools may be
used to bypass the G6 ordering rule.
Four-node lab vs production
The Contabo lab is swift1–swift4, with client traffic through the lab
Keepalived/HAProxy path (10.0.0.10:8085) and Rust SAIO/diagnostic paths kept
separate. The lab is where G0–G8 evidence is collected. It is not permission
to alter the production listener.
Production isolation is explicit: do not restart or replace production
:8080, VIP, HAProxy, Keepalived, rings, Swift data, or active binaries while
the G6 candidate is being built or compared. A lab result remains lab evidence
until a separately authorized rollout records PID, executable SHA, health,
oracle comparison, and rollback readiness.
Remaining blockers and rollback boundary
- G3 still requires route-specific proof for every migrated async path.
- G4 and G5 require accepted current-candidate official-suite records rather than historical compatibility summaries.
- G7 must run its concurrency, reload, cancellation, durability, resource- bound, and fault matrix without reducing scenarios or weakening thresholds.
- G8 remains blocked until the ordered prerequisites are accepted.
- G6 GREEN is storage-semantics evidence; it is not permission to advertise a drop-in Swift replacement or production readiness.
Rollback is a release operation, not a test shortcut. Preserve the currently deployed production executable and its recorded digest; any future rollout must keep a verified prior binary and an exact, node-by-node rollback recipe. No rollback action is authorized by this document.