diff --git a/Cargo.lock b/Cargo.lock index abce883d..26af7a0d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5197,7 +5197,7 @@ dependencies = [ "colored", "image", "indicatif", - "sylpheed-formats 0.1.0", + "sylpheed-formats", "texpresso", "tokio", "tracing", @@ -5213,7 +5213,7 @@ dependencies = [ "image", "serde", "serde_json", - "sylpheed-formats 0.1.0 (git+https://git.mc02.dev/fabi/Sylpheed.git?tag=formats-pin-2026-09-01)", + "sylpheed-formats", ] [[package]] @@ -5234,25 +5234,6 @@ dependencies = [ "xdvdfs", ] -[[package]] -name = "sylpheed-formats" -version = "0.1.0" -source = "git+https://git.mc02.dev/fabi/Sylpheed.git?tag=formats-pin-2026-09-01#e26304133732792cb1df5563c21df59471f5bf7d" -dependencies = [ - "anyhow", - "binrw", - "flate2", - "futures", - "rayon", - "serde", - "serde_json", - "thiserror 2.0.18", - "tokio", - "tracing", - "ttf-parser 0.24.1", - "xdvdfs", -] - [[package]] name = "sylpheed-ppc" version = "0.1.0" @@ -5276,7 +5257,7 @@ dependencies = [ "image", "rfd", "rodio", - "sylpheed-formats 0.1.0", + "sylpheed-formats", "thiserror 2.0.18", "tracing", "tracing-subscriber", diff --git a/crates/sylpheed-export/Cargo.toml b/crates/sylpheed-export/Cargo.toml index cc39da50..51676879 100644 --- a/crates/sylpheed-export/Cargo.toml +++ b/crates/sylpheed-export/Cargo.toml @@ -55,33 +55,19 @@ license.workspace = true # a squash-merge can orphan, and no way for the exporter to be built against a # decoder it was never tested with. A decoder change and the exporter change it # requires now land in the same commit or not at all. -# PINNED BY TAG, which is what MISSION section 2 prescribes and what the tagging -# rule exists for: "the RE agent tags when it lands something you need and tells -# you over the message channel -- that is how you stay current without floating." -# That is exactly what happened here. +# ✅ UNPINNED 2026-09-20. The pin above was deliberate and carried its own exit +# condition -- "revert to the path dependency the day the tag is an ancestor of +# `main`" -- because while it held, `sylpheed-cli` built from the WORKSPACE crate +# and the exporter from the tag, so `tools/port/verify-screen` compared two eras +# instead of detecting drift. `formats-pin-2026-09-01` is now an ancestor of +# `main` (measured), so the two read one decoder again. # -# The tag carries the CORRECTED keyframe association: a placement group is an -# 8-byte header then `frames` x {u32 time; 36-byte pose}, so pose 0's time is the -# group's lead-in word and EVERY POSE IS TIMED, including the last. The working -# tree's copy still has the retired `SYLPHEED_KF_TIME_SHIFT` knob -- a superseded -# partial fix that got the association right but left pose 0 untimed, which is -# why testing it moved the untimed frame from last to first instead of removing -# it. The old reading is behind `SYLPHEED_KF_TIME_LEGACY=1` here. -# -# 🔴 THE COST, STATED: `sylpheed-cli` builds from the WORKSPACE crate, so until -# this lands on `main` the exporter and the reference renderer read DIFFERENT -# decoders and `tools/port/verify-screen` is comparing two eras rather than -# detecting drift. `tools/port/verify-capture` is unaffected -- it compares the -# port against oracle CAPTURES and never touches the CLI -- and it is the check -# that matters. Revert to the path dependency the day the tag is an ancestor of -# `main`. -# Bumped c -> d 2026-08-29. What I wanted from the new state: `d` carries parser -# and `audio.rs` changes on top of `c`. ⚠️ Its headline change -- Reborn's -# renderer drawing `rotation_deg`, and `compose` drawing a leaf that carries -# geometry -- does NOT reach this port from here: `sylpheed-cli` builds from the -# WORKSPACE crate, so the reference renderer stays unrotated until the tag lands -# on `main`. This bump is for the parser, not for the renderer. -sylpheed-formats = { git = "https://git.mc02.dev/fabi/Sylpheed.git", tag = "formats-pin-2026-09-01" } +# 🔴 AND THE PIN HAD A COST NOBODY PRICED IN: it made this repository depend on +# its OWN history by tag. The issue-#49 history rewrite replaced every commit, +# the locked rev vanished, and the build broke for every clean checkout while +# still working on the machine that did the rewrite, because its `~/.cargo/git` +# still held the old object (PR #60). A path dependency cannot fail that way. +sylpheed-formats = { path = "../sylpheed-formats" } serde = { version = "1", features = ["derive"] } serde_json = "1"