Runs the wizard embed to depth 2 (se-8zp) - #42
Merged
Conversation
Pins statifier to the statifier-ex commit carrying `Statifier.Session`'s `:inherit_invoke_handlers` (st-pvpz, PR 251) and passes the option where this app starts a root session, so the `signup_onboarding` wizard child answers its own `myapp:signup` calls instead of parking at its first step. Drives the result rather than reading it: the child advances into the verification group with its datamodel written, ends on the wizard's own abandonment event, and reports an outcome the parent routes through `on_done` before finishing. The negative control keeps the old behaviour on record as the option's absence, not the engine's. The pin is interim; it goes at the re-pin to statifier 2.4.0. Refs: se-8zp
`Charts.Subchart`'s moduledoc still said a child session is started
without the parent's `:invoke_handlers` and filed that upstream, and
`Signup`'s said the onboarding fixture is one level deep for that
reason. Both describe the engine before `:inherit_invoke_handlers`.
Rewrites the two sections to what the committed run does: the root
opts in, the map descends transitively, the wizard child answers its
own calls to an outcome - and the shipped set staying one level deep
is now an authoring choice, which is what keeps the unwritten
`{:cycle, _}` arm honest.
Prose only; no behaviour and no specs change.
Refs: se-8zp
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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 this does
The
signup_onboardingfixture embeds the signup wizard as acore.subchart. Until now the child session started, was provably theright chart, and then sat at its first step forever: a child was started
with no
:invoke_handlersat all, somyapp:signupreached a sessionthat could not answer it. This makes the embed run to depth 2 - the child
answers its own calls, advances through its own steps, ends, and reports
an outcome the parent routes on.
Three things carry that:
The interim pin.
statifiermoves from Hex~> 2.3to a git depon
riddler/statifier-exat6b4ff697b6db3f8c7378001fa15a7f9f8b901ef6- the merge of statifier-exPR 251 (st-pvpz) on that repo's main, and the first commit carrying
Statifier.Session's:inherit_invoke_handlers. 2.3.0 does not haveit.
override: truerides along because a git ref satisfies none ofthe Hex requirements
statifier_blocks,statifier_persistenceandstatifier_obaneach state onstatifier.mix.lockentry:{:hex, :statifier, "2.3.0", ...}(checksum
d72403de50d98676b9ef6a9f8e2987734b0fb8649956809fbb26164f766553d7)mix.lockentry:{:git, "https://github.com/riddler/statifier-ex.git", "6b4ff697b6db3f8c7378001fa15a7f9f8b901ef6", [ref: "6b4ff697b6db3f8c7378001fa15a7f9f8b901ef6"]}mix.lockchanged.FINAL re-pin after the operator publishes statifier 2.4.0:
{:statifier, "~> 2.4"}, nooverride:, lock refreshed,@statifier_refand its test retired. Upstream PR 251 is alreadyMERGED, so this PR is non-draft.
The session-start seam. This app has no production root-session
start site: the durable path drives the pure core through
StatifierPersistence.Driver, and the only place a rootStatifier.Sessionis started issession_opts/0intest/statifier_examples/charts/subchart_test.exs. That is the filethat gains
inherit_invoke_handlers: true, and its comment says whythe option is opt-in upstream rather than a default.
The fixture.
priv/fixtures/signup_onboarding.json's descriptionsaid "One level deep on purpose" and named the gap as the reason. It
now describes the depth-2 run it always wanted.
Evidence
Machine-verified by running the code path, not by reading it. Four tests
in
SubchartTest, all green in a fullmix quality(228/228, 75.6%coverage, dialyzer clean):
s_blk_su_verify- reachable only by running theaccount step to completion - and its
signupdatamodel root holds amap the step assigned;
inherit_invoke_handlers: falsethe samedocument leaves the child in
s_blk_su_accountwithsignupstillnil, which is what the fixture did for its whole life before this;signup.abandonedinterrupt andreports
%{"outcome" => "done"}; the parent takes itson_doneslot,assigns the outcome to
onboarding, reachess_blk_so_root__root_doneand halts
:done. Read off a subscription's{:halted, :done}ratherthan a poll, so there is no race between the child's end and the
parent's.
The "past step 1" assertion was swept 200/200 for determinism before
being written as a plain assertion.
No port was touched: this is a
mix testverification bead, and noserver was started.
Beat 11
docs/demo-script.mdcarried no deferred-to-human marker. Beat 11'scaveat lived in its "One level deep, on purpose" paragraph, which this
diff falsifies; it is replaced with the depth-2 paragraph and an explicit
"that is machine-verified" statement naming what the tests drive. That is
the only part of the file touched.
Provenance
se-8zp(campaign 024, Lane B uptake, B5).st-pvpz,Inherits invoke handlers into child sessions statifier-ex#251 (merged).
se-p22interimpin pattern; the conductor writes the linkage-ledger entry.
origin/mainat9a1b4ad, no conflicts.Prose the depth-2 run falsified (map widening, granted)
Two moduledoc sites still described the engine before
:inherit_invoke_handlers. Both were outside this bead's original filemap; the conductor granted the widening for exactly these two, and they
are corrected in a second, prose-only commit (
fd48fd0):lib/statifier_examples/charts/subchart.ex- the "Single-level only"section. It said a child is started without the parent's
:invoke_handlersand filed that upstream. It now says the rootdecides, the opt-in descends transitively, and the shipped set staying
one level deep is an authoring choice - which is what keeps the
unwritten
{:cycle, _}arm honest.lib/statifier_examples/signup.exmoduledoc - "deliberately one leveldeep - see ... on st-pvpz", likewise rewritten.
No behaviour, no specs, no other files. Full gate green on the rewritten
head.