docs(r6): reconcile y-crdt#639 state — merged upstream, not yet released - #38
Merged
Merged
Conversation
y-crdt/y-crdt#639 (CHARTER-08 deliverable (a), decoder hardening against length-prefix allocation bombs) was merged upstream on 2026-08-05 (merge commit 3074c84d, our commit 2ee533eb landed unchanged). Five live places in the repo still described it as "approved / still open". No code changes: the `yrs = "=0.27.2"` pin stays put. The merge does NOT trigger FU-015, whose trigger is "merged AND published" — crates.io still ships yrs 0.27.3 (13 Jul), which predates the merge. The follow-up moves from "blocked on upstream review" to "waiting on a release", still open. - docs/architecture.md, GOVERNANCE.md, quickstart.md, requirements.md: "approved" -> merged 2026-08-05, not yet released. - ci.yml: spell out why the fuzz job's informative treatment of a crash remains valid despite the merge (our pin predates it, no release yet). The `::warning` strings are deliberately untouched — they are still true. - FU-015 via the straymark CLI (verify + note, never by hand): premise re-recorded and Verified-at stamped. The original premise carried a clause that was dead from day one — "revert the StrangeDaysTech/y-crdt fork" — when the repo never consumed that fork (no [patch.crates-io], no git deps). The new premise names the 3 real pin sites and requires *proving* the fix with the export_since fuzz target rather than assuming it. Also recorded: y-crdt#644 (third party) fixes two `from_utf8_unchecked` sites that #639 does not touch and that are still on main. That is a different failure class — UB / non-unwinding abort, equally opaque to the shim's catch_unwind. Argued upstream in the #644 thread rather than opened as our own backlog entry, since the fix already exists there with tests.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What moved
y-crdt/y-crdt#639 — CHARTER-08 deliverable (a), hardening the
yrsdecoder against length-prefix allocation bombs — was merged upstream on 2026-08-05 10:51 UTC. Merge commit3074c84d; our commit2ee533eblanded unchanged, no revisions requested since the maintainer's APPROVED on 15 Jul.Five live places in this repo still described it as "approved / still open". This PR reconciles them.
What this PR does NOT do
No code changes. The
yrs = "=0.27.2"pin stays exactly where it is, andnative/**is untouched.The merge does not trigger FU-015, whose trigger is «merged and published»: crates.io still ships
yrs 0.27.3(13 Jul), which predates the merge. The follow-up moves from «blocked on upstream review» to «waiting on a release» — stillopen.Changes
docs/architecture.md,GOVERNANCE.md,quickstart.md,requirements.md.github/workflows/ci.ymlfuzzjob's informative treatment of a crash remains valid despite the merge: our pin predates it and there is no release. The::warningstrings are deliberately untouched — they are still true.straymark/follow-ups-backlog.mdVerified-at, written by thestraymark followupsCLI (never by hand)AILOG-2026-08-05-001Untouched on purpose: the historical record (
.straymark/charters/12-*.mdsays «#639 is still open» and that was true when it was written; prior AILOGs/AIDECs likewise).The premise that was dead on arrival
Going to execute FU-015 surfaced a clause that had been false since the day it was written: «revert the
StrangeDaysTech/y-crdtfork». The repo never consumed that fork —native/**/Cargo.tomlpullsyrsfrom crates.io, with no[patch.crates-io]and no git dependencies.Same pattern as FU-016/017/018/019/020 in the backlog drain, and the reason the CLI has
followups verify: a follow-up is a dated hypothesis that decays, and the cheap moment to re-test it is when you go to act on it. The new premise names the 3 real pin sites (weft-yrs-ffi/Cargo.toml:17,21+fuzz/Cargo.toml:12) and requires proving the fix withcargo +nightly fuzz run -s none export_sincerather than assuming it.Sibling class, still unresolved
y-crdt#644 (third party) fixes two
from_utf8_uncheckedsites that #639 does not touch and that are still onmain(encoding/read.rs:137,updates/decoder.rs:486). The maintainer flagged it as a possible duplicate of #639 — true only for theany.rshalf.It is a different failure class: not a failed allocation but UB / a non-unwinding abort, equally opaque to the shim's
catch_unwind(Principle I). Argued in the #644 thread (comment) rather than opened as our own backlog entry, since the fix already exists there with tests. If #644 dies without merging, that decision should be reopened.Verification
straymark followups status→ still 1 open / 20 total;followups driftin syncgit diffclean acrossnative/**and everyCargo.toml— the pin is untouchedci.ymlstill parses as valid YAML; the 5::warningstrings intactrawofmain— not from memory