Skip to content

Pins the family forward to its 025 releases - #46

Merged
johnnyt merged 1 commit into
mainfrom
se-t8a-family-pin-forward
Sep 1, 2026
Merged

Pins the family forward to its 025 releases#46
johnnyt merged 1 commit into
mainfrom
se-t8a-family-pin-forward

Conversation

@johnnyt

@johnnyt johnnyt commented Sep 1, 2026

Copy link
Copy Markdown
Member

Why

The examples app is the reference embedder, so it should consume the family
from Hex at the versions that are actually published. The operator has now
published the campaign-025 releases, and this moves the app onto them.

What

  • statifier_persistence ~> 0.3 -> ~> 0.4
  • statifier_oban ~> 0.3.1 -> ~> 0.4
  • statifier_blocks ~> 0.12 -> ~> 0.13, in the Hex arm of
    statifier_blocks_dep/0 only; the STATIFIER_BLOCKS_PATH escape hatch is
    untouched
  • statifier stays ~> 2.4 - campaign 025 cut no new engine release
  • mix.lock moves by exactly those three entries, with no transitive drift

Each version was confirmed on Hex with mix hex.info before pinning. The
app takes no opentelemetry_statifier dep, so 0.2.0 is not in scope here.

Notes

The statifier_persistence 0.4.0 breaking change is clean here. 0.4.0
adds a fourth terminal run_status/0 value, :cancelled, which breaks a
storage adapter that encodes statuses by an exhaustive match.
StatifierExamples.Persistence implements the adapter behaviour but
delegates every status-bearing callback to the package's own Ecto adapter
and matches no status itself, so it rides the library's encoding and needed
no new clause. Verified by reading the module, not by inference from a green
suite.

That module's moduledoc gains one paragraph recording the other 0.4.0
consequence of its deliberate list_runs_by_metadata/2 omission: exporting
that callback is how an adapter opts into the child listing a durable
subchart (ADR-0008) needs, so a store on this adapter refuses a durable
subchart before any write. This app runs none, and the omission is still the
right call for SQLite - but it is now a documented consequence rather than a
silent one.

statifier_blocks 0.13.0 changed observable editor behaviour and two
tests moved with it.
A stocked drafts shelf now opens folded, so the
card_processing_sketch document opens showing its flow rather than its
parked work, and .sb-slot--tray is not in the DOM until an author opens
the shelf. Rather than route around that, the two tray tests now assert the
new opening and then unfold the shelf through its own .sb-node__fold
control, via a new unfold/2 test helper. What the tray holds once opened
is unchanged.

Sabotage. Four mutations were run and each went red before being
reverted from a backup copy: the statifier_blocks and statifier_oban
lock assertions pointed at their previous release lines; the
statifier_persistence requirement pointed at its previous floor; and the
new unfold/2 call dropped from the tray test, which went red on
sb-slot--tray and is what says the fold is real. The notes above each test
record them.

The statifier_oban guard also gains a mix.lock assertion it did not have
before - the membership check alone would have passed against a tree still
holding 0.3.1.

Gate: full mix quality green on the rebased HEAD - 244 of 244 tests,
77.5% coverage, Credo and Dialyzer clean. Doctor, Sobelow and Gettext are
declared permanently inapplicable to this project.

Linkage ledger: this PR retires no ledger entries. Every
statifier_examples entry was already resolved by PR #45; no localStage
or pushedStage override was active when this branch was cut, and none is
introduced.

Closes se-t8a

Moves the examples app onto the releases the operator published from
campaign 025: statifier_persistence ~> 0.4, statifier_oban ~> 0.4, and
the Hex arm of statifier_blocks_dep/0 ~> 0.13. statifier stays ~> 2.4 -
025 cut no new engine release - and mix.lock moves by exactly those
three entries. The STATIFIER_BLOCKS_PATH escape hatch is untouched.

statifier_persistence 0.4.0 is breaking for a storage adapter that
encodes run_status/0 by an exhaustive match, since it gains a fourth
terminal value :cancelled. StatifierExamples.Persistence delegates
every status-bearing callback to the package's own Ecto adapter and
matches no status itself, so it rides the library's encoding. Its
moduledoc now records the other consequence of not exporting
list_runs_by_metadata/2: a store on this adapter refuses a durable
subchart, which this app runs none of.

statifier_blocks 0.13.0 opens a stocked drafts shelf folded, so the
sketch document now opens showing its flow rather than its parked work
and the tray is not in the DOM until an author opens it. The two tray
tests assert that opening and unfold the shelf through its own fold
control rather than expecting it already open.

Refs: se-t8a
@johnnyt
johnnyt merged commit 5a72cd5 into main Sep 1, 2026
1 check passed
@johnnyt
johnnyt deleted the se-t8a-family-pin-forward branch September 1, 2026 12:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant