Week 21 / 2026 — three threads cross the working line
Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.
18 May – 24 May 2026 · 176 commits · 0.50.14 → 0.51.2
For two months the engine has had three threads running quietly in parallel: how scenarios become first-class instruments, how the cloud recognises its owner without leaving the laptop, and how a signal can carry its unit of measurement around with it. This was the week all three crossed the line from sketch to working shape. Sense 19 (The Simulation) shipped Phases 1 through 5 end-to-end. Sense 25 (Identity & Passes) closed the cloud refresh loop and put Clerk inside the Explorer. Sense 14.2 (Typed Signals) moved from rendered output to compiler-enforced semantics. Around them, Sense 15 picked up the authoring surface the Atelier from W20 was waiting for — and the Field Manual quietly grew up.
Sense 19 — Simulation, end to end
Section titled “Sense 19 — Simulation, end to end”A week ago, “scenarios” was a sketch. Five phases later, it works.
Suggestion and Intervention are now first-class YAML
instruments with their own contracts and validators
(461fedcc).
jin scenario create cuts an AFS branch and applies the requested
interventions to a temp tree
(9b21c6ff).
jin scenario build runs the standard pipeline against that branch
and produces a sibling KLS marked with scenario metadata
(941e05db),
and the Explorer’s Compare loupe gained a scenario mode so diffing
a what-if against baseline reads in the same idiom as diffing two
snapshots
(8cb7c76a).
Phase 5 closed the loop on the reader’s side: every Verdict detail
now surfaces the Suggestions tied to that verdict, and the
Scenario Builder is one click away
(878b1ef9,
339f7672
covers it in Playworks). The whole architecture is on the docs
site too
(a3145a0d).
This isn’t a feature anymore — it’s an analytical move. A reader who sees a confirmed thesis can now ask “what if?” without leaving the verdict page.
Sense 25 — the cloud learns who’s home
Section titled “Sense 25 — the cloud learns who’s home”For months the cloud has refused to refresh: the owner ships a new
build, the deployed Explorer 403s on the new KLS because nothing on
the cloud side knew it was the right owner. Phase 3a fixed it with
a Deploy Pass — a per-instance owner token that jin ship
presents on refresh, and that the cloud honours via a declarative
redeploy hook
(25d45f25,
9358351f,
89e19547).
The token lives in the canonical secrets store, not a bespoke file
(ef188ee4),
and OWNER_TOKEN got renamed to DEPLOY_TOKEN along the way for
the obvious reason
(bb9d166d).
Phases 1 and 2 of Sense 25 also landed. Principals now carry an
identity and extra_roles block
(3dd26015),
the validator cross-references identity + extra_roles
(14eb5cc6),
and the principal detail page renders a four-level access diagram
with hover-highlight and a Sankey flow showing the principal’s
reach across capabilities, packs, tenants, and signals
(fc1f4104,
3a10d675,
55a7348f).
Phase 2 binds a Clerk userId back to a principal so signing in
actually means something to the engine
(b835235d).
Phase 3b.1 was the harder one. Clerk’s Svelte SDK has SSR sharp
edges — for a day the /admin page kept exploding because
client-only components were running server-side
(5b44f10b,
37959d5e,
6caea3b6,
c7368fe9).
The resolution was to drop the embedded widget for the hosted
Account Portal redirect, then bring back ClerkProvider for the
cross-domain session handshake
(abb3e0f6,
9d071954).
A SignedInBadge now lives top-right in the sidebar header with
the resolved principal and a sign-out menu
(c09edc08,
9e17befe).
Phase 3b.2 closed the email loop: the Explorer now matches the
Clerk user’s email back to a principal automatically, with a
tenant gate via Clerk metadata
(6cb32103).
And anonymous identity ships behind a JINFLOW_ALLOW_ANONYMOUS=1
deploy knob for tenants that prefer to skip auth entirely
(d62f9093).
Sense 14.2 — measurements that know their units
Section titled “Sense 14.2 — measurements that know their units”The typed-signal work crossed from “renders” to “enforces” this
week. Phase 1 was visible already: the Explorer now renders typed
out_* columns from the new signal output contract
(cdccb8ea),
and a UCUM percent-convention fix plus a perspective union-by-name
fix closed the regressions Phase 1 surfaced
(189231bc).
Phase 2 was the structural move. The window: block went from a
rendered hint to a real driver of SQL WHERE: the compiler now
substitutes the window expression into balance / duplicate / ratio /
mandatory_item signals
(a7ce6cfd,
3cda9a9e,
6e2f30b9
covers it in integration tests). severity_from binds a typed
output to a severity level
(eac22933).
And thesis evidence now type-checks: a thesis that references a
signal output must match that output’s declared type
(a604e95d).
The doc caught up to the code in three passes — the Phase plan
reflected that Phase 0 was already shipped
(48703f0a),
a full rewrite settled the nine open questions
(df991ae3),
then Phase 1 was marked shipped and the window: plan rolled to
Phase 2
(79f77ccf).
Sense 15 — Observation as a first-class authoring surface
Section titled “Sense 15 — Observation as a first-class authoring surface”The Atelier from W20 needed somewhere to write Observations into.
Phase 1a landed the schema, writer, list, and new-Observation
wizard
(028b33d7),
Phase 1b the editor with an edit-button on detail
(84e32597),
and Phase 1c the Contributing Factor surface that closes the
Strategy loop
(8eb93a5a).
The schema itself moved on: broader Validation, no origin field,
Contributing Factors as first-class objects
(f4ba6f4c),
with the Sense doc carrying the new “walking toward each other”
framing
(93d7a5d1).
Around it, a small constellation of UI work made authoring feel
native. PrincipalLink turned every principal reference into a
clickable + tooltipped link
(36189811,
398626a1).
Notebook list rows surface co-authors as “by <author> (with Claude)”
(690df932).
UnsavedChangesGuard swept across all eight editors so a sidebar
click doesn’t silently eat in-progress work
(a5923878,
9a2bbc24,
3e7ef320);
ac704610
caught three real bugs in the same authoring pass. A
form-normalisation infinite loop that had been quietly heating the
CPU got killed in all 8 editors
(c715a6d0).
And Markdown rendering finally arrived on dossiers + verdicts
(46f60426).
The Field Manual makeover (and a Tenant tab to land on)
Section titled “The Field Manual makeover (and a Tenant tab to land on)”The Field Manual entered the week as a wall of dense prose with
TODO markers showing and “55+ signals” hardcoded into the body.
By Saturday it had a section-type taxonomy + grouped nav
(65c5ba03),
typography breathing room
(d047d660),
TODOs surfaced as deliberate “Author this section” cards instead
of leaked draft prose
(b8eed302,
f84bcdd6),
live counts pulled from the KLS via {{signal_count}}-style
tokens
(28e85afc),
Examples-as-cards plus per-section Further Reading panels linking
to docs.jinflow.io
(de61ed80),
a “Customize for <tenant>” disclosure offering a paste-ready
YAML stub on every pack section
(50f8d726),
and three engine-provided footer sections — Architecture, Glossary,
Recent Releases — that now ship with every manual
(471f6e4b).
The Sunday move was structural. The /what-is-this page got a
Tenant tab — a soft landing card pulling identity from
tenant.yml, live KLS counts, and an optional briefing.yaml
carrying people, cadence, local quirks, and local glossary; plus a
House Log surface for any note tagged house-log to capture
organisational events the system can’t derive
(17996f28).
A Pack tab was added, then immediately folded into the existing
pack-branded Domain tab — one branded tab, one story — and the tab
order shifted concentric: About → Tenant → nuMetrix (or hr/central)
→ Convictions → Mental Model → … so the most-local view loads
first
(d52ca4c3).
Releases, gates, and one almost-silent bug
Section titled “Releases, gates, and one almost-silent bug”Two release-notes problems got caught and fixed. The drift gate
introduced last week was flapping red on every push between
releases: an “Unreleased” section grew on each commit. A
--no-unreleased flag now stabilises the comparison
(7be4b412).
Underneath that, a deeper bug — get_commits(since=None, until=tag)
was returning every commit in HEAD instead of just the commits
reachable from tag, which had grown W11.md to 3700 lines of
misattributed entries
(b235dd9f).
The fix was four lines; the regen dropped 2,800 ghost lines.
A new internal-link drift gate walks every /... link in the
docs and verifies it resolves to a real Starlight slug or static
asset — 23 stale links got fixed in the same commit
(a7cda178).
The YAML reference slugs got renamed end-to-end —
yaml-probe/hypothesis/diagnosis → yaml-signal/thesis/verdict in
EN/DE/FR — schema-in-prose updated, 9 redirects added
(445177e8).
A months→weeks split tree replaced the 11k-line releases.md
(3dd933d7).
And six new Sense pages landed on the site — 39 The Governance, 40
The Metamodel, 41 The Relevance, 42 The Pipes, 43 The Cascade, 44
The Forge — plus a “Three Vocabularies” concept page
(f27f5624,
1b2f712c,
f9f8babb,
351a0e27,
5e73087f,
940f000f,
009cdf3c).
The Cascade foundation also landed in code: an
analytical_defaults resolver baked into the KLS so config
inheritance has somewhere to live
(6f19e059).
The shape of the week
Section titled “The shape of the week”176 commits across eight releases — 0.50.15 through 0.51.2. The
prefix histogram tells a building story: 66 feat: against 49
fix:, with 29 docs: carrying the conceptual scaffolding for
Senses 39–44 and the Sense 14.2 / 15 / 25 design rewrites. Three
arcs in the same week that each closed a loop the engine had been
keeping open for months. And underneath them, the Atelier from W20
picked up the language to author into (Observations, Contributing
Factors), the cloud picked up the auth handshake to welcome an
owner back, the signal type system started enforcing what it had
been describing, and the front door picked up a coat of paint.
After Week 21, the engine knows who’s asking, can answer “what if”, measures with named units, and welcomes the tenant home.