Skip to content

Commit a83405f

Browse files
The seating test waits for the disk, the legend names only marks that appear (v0.60.2) (#43)
CI broke on the v0.60.1 tag run: e2e "a reopened seating restores the scroll position" failed both attempts. flushConfig only queues the configSave, and the worker's persist of it is fire-and-forget (engine.worker.ts `void persistNow()`), so a reload that outruns the IndexedDB write reopens on the previous, verse-less save — the restore lands at the top of the chapter and the final poll returns null forever. The test now awaits rpc.flush() before reloading, exactly as its two sibling tests already did. Mutation-checked: with the v0.60.1 bug reintroduced (chapter-only slot write) the test still goes red at the savedVerse assertion; with the fix restored it is green repeated 3x. The provenance legend drops "research-grade": no shipped data can produce the mark — quotation-pairs.json ships zero links and text-witness.json has no runtime reader — so the legend explained a glyph no reader can ever see. The per-chip tier_marks flask stays wired should a graded harvest ever ship. The "weigh it" aside on the machine item goes too (plain-copy rule). The legend is emitted by the core producer, so both shells change at once.
1 parent d22f5d4 commit a83405f

7 files changed

Lines changed: 24 additions & 15 deletions

File tree

Cargo.lock

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ default-members = [
2121
# shells — About renders it as `engine ` + this number. The workflow refuses a tag
2222
# whose version disagrees with this line (and with apps/web/package.json), so a
2323
# release ships one number, not three.
24-
version = "0.60.1"
24+
version = "0.60.2"
2525
edition = "2021"
2626
license = "MIT"
2727
authors = ["Glendon Klassen <gjklassen@proton.me>"]

apps/web/e2e/session-slots.spec.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,15 @@ test("a reopened seating restores the scroll position, not just the chapter", as
131131
.toBeGreaterThan(0);
132132

133133
// What the close is about to bank: this seating's slot, VERSE INCLUDED.
134-
const savedVerse = await page.evaluate(() => {
134+
// The flush is AWAITED before the reload: flushConfig only queues the
135+
// configSave, and the worker's own persist of it is fire-and-forget — a
136+
// reload that outruns the IndexedDB write reopens on the previous,
137+
// verse-less save and this test goes red with the fix in place (it did,
138+
// twice, on the v0.60.1 tag run).
139+
const savedVerse = await page.evaluate(async () => {
135140
const s = (window as any).__plumbline;
136141
s.flushConfig();
142+
await s.rpc.flush();
137143
return s.config.slots?.[s.slot]?.verse;
138144
});
139145
expect(savedVerse).toBeGreaterThan(1);

apps/web/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "plumbline-web",
33
"private": true,
4-
"version": "0.60.1",
4+
"version": "0.60.2",
55
"type": "module",
66
"scripts": {
77
"dev": "npm run pack:i18n && vite",

crates/core/src/panel.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -695,9 +695,7 @@ fn legend() -> Block {
695695
Run::new("†", sz::MARK, Color::TierHuman),
696696
Run::new(" curated scholarship · ", sz::MARK, Color::Faded),
697697
Run::new("≈", sz::MARK, Color::TierMachine),
698-
Run::new(" machine-derived, weigh it · ", sz::MARK, Color::Faded),
699-
Run::new("⚗", sz::MARK, Color::TierResearch),
700-
Run::new(" research-grade", sz::MARK, Color::Faded),
698+
Run::new(" machine-derived", sz::MARK, Color::Faded),
701699
])
702700
}
703701

docs/FEATURE-MANIFEST.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -440,8 +440,13 @@ producer emits*, not shell code.
440440
10. **margin notes** *(Human †)* — the verse's 1769 notes, small.
441441

442442
A **provenance legend** closes a Full-study card once: "where this comes from:
443-
✝ the text · † curated scholarship · ≈ machine-derived, weigh it · ⚗
444-
research-grade". Weave membership + cross-references (items 5–6) and tags carry no mark (mixed /
443+
✝ the text · † curated scholarship · ≈ machine-derived". The ⚗ research-grade
444+
item was dropped from the legend: no shipped data produces the mark
445+
(`quotation-pairs.json` ships zero links and `text-witness.json` has no
446+
runtime reader), so the legend explained a glyph no reader can see. The
447+
per-chip `tier_marks` flask stays wired should a graded harvest ever ship.
448+
The "weigh it" aside on the machine item went with it (plain-copy rule).
449+
Weave membership + cross-references (items 5–6) and tags carry no mark (mixed /
445450
user-authored, not trust-weighted evidence). The producer emits it as a `Para`
446451
of tier-coloured runs.
447452

0 commit comments

Comments
 (0)