Compare commits
4 Commits
chore/agen
...
fix/canary
| Author | SHA1 | Date | |
|---|---|---|---|
| 884a2c3944 | |||
| b9d009b7a2 | |||
| b0906f3ed6 | |||
| 1fec20a2a3 |
25
Cargo.lock
generated
25
Cargo.lock
generated
@@ -5197,7 +5197,7 @@ dependencies = [
|
|||||||
"colored",
|
"colored",
|
||||||
"image",
|
"image",
|
||||||
"indicatif",
|
"indicatif",
|
||||||
"sylpheed-formats 0.1.0",
|
"sylpheed-formats",
|
||||||
"texpresso",
|
"texpresso",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tracing",
|
"tracing",
|
||||||
@@ -5213,7 +5213,7 @@ dependencies = [
|
|||||||
"image",
|
"image",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"sylpheed-formats 0.1.0 (git+https://git.mc02.dev/fabi/Sylpheed.git?tag=formats-pin-2026-09-01)",
|
"sylpheed-formats",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -5234,25 +5234,6 @@ dependencies = [
|
|||||||
"xdvdfs",
|
"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]]
|
[[package]]
|
||||||
name = "sylpheed-ppc"
|
name = "sylpheed-ppc"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
@@ -5276,7 +5257,7 @@ dependencies = [
|
|||||||
"image",
|
"image",
|
||||||
"rfd",
|
"rfd",
|
||||||
"rodio",
|
"rodio",
|
||||||
"sylpheed-formats 0.1.0",
|
"sylpheed-formats",
|
||||||
"thiserror 2.0.18",
|
"thiserror 2.0.18",
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-subscriber",
|
"tracing-subscriber",
|
||||||
|
|||||||
@@ -55,33 +55,19 @@ license.workspace = true
|
|||||||
# a squash-merge can orphan, and no way for the exporter to be built against a
|
# 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
|
# 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.
|
# 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
|
# ✅ UNPINNED 2026-09-20. The pin above was deliberate and carried its own exit
|
||||||
# rule exists for: "the RE agent tags when it lands something you need and tells
|
# condition -- "revert to the path dependency the day the tag is an ancestor of
|
||||||
# you over the message channel -- that is how you stay current without floating."
|
# `main`" -- because while it held, `sylpheed-cli` built from the WORKSPACE crate
|
||||||
# That is exactly what happened here.
|
# 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
|
# 🔴 AND THE PIN HAD A COST NOBODY PRICED IN: it made this repository depend on
|
||||||
# 8-byte header then `frames` x {u32 time; 36-byte pose}, so pose 0's time is the
|
# its OWN history by tag. The issue-#49 history rewrite replaced every commit,
|
||||||
# group's lead-in word and EVERY POSE IS TIMED, including the last. The working
|
# the locked rev vanished, and the build broke for every clean checkout while
|
||||||
# tree's copy still has the retired `SYLPHEED_KF_TIME_SHIFT` knob -- a superseded
|
# still working on the machine that did the rewrite, because its `~/.cargo/git`
|
||||||
# partial fix that got the association right but left pose 0 untimed, which is
|
# still held the old object (PR #60). A path dependency cannot fail that way.
|
||||||
# why testing it moved the untimed frame from last to first instead of removing
|
sylpheed-formats = { path = "../sylpheed-formats" }
|
||||||
# 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" }
|
|
||||||
|
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
serde_json = "1"
|
serde_json = "1"
|
||||||
|
|||||||
@@ -32,7 +32,18 @@ export ALSA_CONFIG_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/asound-nu
|
|||||||
# Paths derive from where this script sits — see the note in run-canary-safe.sh.
|
# Paths derive from where this script sits — see the note in run-canary-safe.sh.
|
||||||
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
WORKSPACE="$(cd "$HERE/../.." && pwd)"
|
WORKSPACE="$(cd "$HERE/../.." && pwd)"
|
||||||
BIN_DEFAULT="$WORKSPACE/xenia-canary-native/build/bin/Linux/Release/xenia_canary"
|
# 🔴 THE INSTRUMENTED BINARY IS THE `Checked` ONE, and it is the only config this
|
||||||
|
# build tree can produce: `ninja -n bin/Linux/Release/xenia_canary` lists ZERO
|
||||||
|
# steps, so Release is not a target here and its binary still dates from
|
||||||
|
# 2026-08-28, before the audit_61 probe existed. Pointing at Release therefore
|
||||||
|
# runs an oracle with no probe and no way to refresh it.
|
||||||
|
#
|
||||||
|
# The old default named `xenia-canary-native/`, a directory that does not exist
|
||||||
|
# on this workspace at all -- the checkout is `xenia-canary/`.
|
||||||
|
#
|
||||||
|
# `Checked` is optimised WITH assertions, which is what you want from a
|
||||||
|
# behavioural reference: a bad state stops loudly instead of being sampled.
|
||||||
|
BIN_DEFAULT="$WORKSPACE/xenia-canary/build/bin/Linux/Checked/xenia_canary"
|
||||||
BIN_EXE="${CANARY_BIN:-$BIN_DEFAULT}"
|
BIN_EXE="${CANARY_BIN:-$BIN_DEFAULT}"
|
||||||
ISO="${SYLPHEED_ISO:-$WORKSPACE/Project Sylpheed - Arc of Deception (USA, Europe) (En,Ja).iso}"
|
ISO="${SYLPHEED_ISO:-$WORKSPACE/Project Sylpheed - Arc of Deception (USA, Europe) (En,Ja).iso}"
|
||||||
[ -f "$ISO" ] || { echo "ABORT: no ISO at '$ISO' — set \$SYLPHEED_ISO"; exit 4; }
|
[ -f "$ISO" ] || { echo "ABORT: no ISO at '$ISO' — set \$SYLPHEED_ISO"; exit 4; }
|
||||||
|
|||||||
@@ -24,7 +24,18 @@ set -u
|
|||||||
# Paths derive from where this script sits — see the note in run-canary-safe.sh.
|
# Paths derive from where this script sits — see the note in run-canary-safe.sh.
|
||||||
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
WORKSPACE="$(cd "$HERE/../.." && pwd)"
|
WORKSPACE="$(cd "$HERE/../.." && pwd)"
|
||||||
BIN_DEFAULT="$WORKSPACE/xenia-canary-native/build/bin/Linux/Release/xenia_canary"
|
# 🔴 THE INSTRUMENTED BINARY IS THE `Checked` ONE, and it is the only config this
|
||||||
|
# build tree can produce: `ninja -n bin/Linux/Release/xenia_canary` lists ZERO
|
||||||
|
# steps, so Release is not a target here and its binary still dates from
|
||||||
|
# 2026-08-28, before the audit_61 probe existed. Pointing at Release therefore
|
||||||
|
# runs an oracle with no probe and no way to refresh it.
|
||||||
|
#
|
||||||
|
# The old default named `xenia-canary-native/`, a directory that does not exist
|
||||||
|
# on this workspace at all -- the checkout is `xenia-canary/`.
|
||||||
|
#
|
||||||
|
# `Checked` is optimised WITH assertions, which is what you want from a
|
||||||
|
# behavioural reference: a bad state stops loudly instead of being sampled.
|
||||||
|
BIN_DEFAULT="$WORKSPACE/xenia-canary/build/bin/Linux/Checked/xenia_canary"
|
||||||
BIN_EXE="${CANARY_BIN:-$BIN_DEFAULT}"
|
BIN_EXE="${CANARY_BIN:-$BIN_DEFAULT}"
|
||||||
ISO="${SYLPHEED_ISO:-$WORKSPACE/Project Sylpheed - Arc of Deception (USA, Europe) (En,Ja).iso}"
|
ISO="${SYLPHEED_ISO:-$WORKSPACE/Project Sylpheed - Arc of Deception (USA, Europe) (En,Ja).iso}"
|
||||||
[ -f "$ISO" ] || { echo "ABORT: no ISO at '$ISO' — set \$SYLPHEED_ISO"; exit 4; }
|
[ -f "$ISO" ] || { echo "ABORT: no ISO at '$ISO' — set \$SYLPHEED_ISO"; exit 4; }
|
||||||
|
|||||||
@@ -57,7 +57,22 @@ rm -f xenia.log
|
|||||||
|
|
||||||
# Binary is overridable (default keeps the historical _i2d snapshot); extra
|
# Binary is overridable (default keeps the historical _i2d snapshot); extra
|
||||||
# cvars pass through via CANARY_EXTRA_ARGS (space-separated, values w/o spaces).
|
# cvars pass through via CANARY_EXTRA_ARGS (space-separated, values w/o spaces).
|
||||||
|
# ⚠️ THIS WINE BUILD HAS NO INSTRUMENTATION AND CANNOT BE REFRESHED HERE.
|
||||||
|
# Measured 2026-09-20: `xenia_canary_i2d.exe` does not exist at all, and the
|
||||||
|
# `xenia_canary.exe` that does (2026-06-19) has ZERO hits for both
|
||||||
|
# `audit_61_branch_probe_pcs` and `RE-INPUT`/`RE-DRAW`. Rebuilding it needs the
|
||||||
|
# clang-cl + xwin cross toolchain on the `cross-build-wine` branch.
|
||||||
|
#
|
||||||
|
# 🔴 FOR PROBE RUNS USE `run-canary-native-safe.sh` INSTEAD -- same hard Vulkan
|
||||||
|
# gate, same headless behaviour, and it runs the Checked native binary, which
|
||||||
|
# carries audit_61 and the RE-INPUT/RE-DRAW logging.
|
||||||
BIN_EXE="${CANARY_BIN:-xenia_canary_i2d.exe}"
|
BIN_EXE="${CANARY_BIN:-xenia_canary_i2d.exe}"
|
||||||
|
if [ ! -f "$BIN/$BIN_EXE" ]; then
|
||||||
|
echo "ABORT: no Wine binary at $BIN/$BIN_EXE" >&2
|
||||||
|
echo " This build is stale and uninstrumented; use run-canary-native-safe.sh" >&2
|
||||||
|
echo " for anything needing audit_61 or the RE-* logging." >&2
|
||||||
|
exit 4
|
||||||
|
fi
|
||||||
args=(--log_level=3 --mute=true)
|
args=(--log_level=3 --mute=true)
|
||||||
[ -n "$PROBES" ] && args+=("--audit_61_branch_probe_pcs=$PROBES")
|
[ -n "$PROBES" ] && args+=("--audit_61_branch_probe_pcs=$PROBES")
|
||||||
if [ -n "${CANARY_EXTRA_ARGS:-}" ]; then
|
if [ -n "${CANARY_EXTRA_ARGS:-}" ]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user