Week 24 / 2026 — the picture arrives
Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.
8 Jun – 14 Jun 2026 · 60 commits · 0.54.0 → 0.54.2
The substrate work from W23 paid off this week as the
architecture came into focus. The five-mode architecture diagrams
landed in architecture_diagrams.md (one Mermaid per deployment
shape, ordered for teaching: fully-local → fully-cloud → the
splits). The Scribe + Log + Publish trinity reached completion as
jin publish (Sense 21 Beat 3) shipped on top of them. A
brand-new Sense 48 — The Stage arrived to formalize the
dev/prod plane separation that had been ad-hoc until now.
The week’s working theme: the architecture earns its picture.
A new Sense — 48, The Stage
Section titled “A new Sense — 48, The Stage”Until W24, the development plane and the production plane shared configuration in implicit, easy-to-mix-up ways. The user has dev Clerk keys, prod Clerk keys, dev R2 bucket, prod R2 bucket — and which one you’re talking to depended on env-var hygiene per command. One wrong keypair and you’d authenticate against the wrong plane.
Sense 48 names this as a first-class concept and ships the machinery to enforce it. The Stage doc landed (afa53d00), followed by the foundation (c8ab06df) — env resolution + dual Clerk keys, so a single jin binary unambiguously routes to one stage. Then env-aware versions of the heavy-weight commands shipped in sequence:
jin login/jin logout(20a1c76e) — authenticate against the right plane.jin invite/jin sync-principals/jin revoke(0bb79c13) — Sense 46 operations now stage-aware.jin ship(da8e3270) — R2 bucket selection + Fly instance refresh per stage.
Plus the deploy hygiene fix (be93e976)
that ships hosts.yml into the PyInstaller bundle so the Sense 16
public_tenants gate keeps working on the deployed binary.
A fly.dev.toml for jinflow-dev (a5b7014e)
gives the dev plane its own Fly app. Two stages, two Fly apps, two
Clerk apps, two R2 prefixes — separated by configuration, not by
memory.
The architecture earns its picture
Section titled “The architecture earns its picture”Five Mermaid views of the deployment topologies landed this week
in docs/design/architecture_diagrams.md after a real-time
collaborative drafting session. The journey through the drafts is
visible in the commit log: lock D / Mode 1
(629ed5c3),
reorder + add Fully Cloud
(df527ca7),
complete all five
(88680059),
then the business-noun pass that lifted the deployment
diagrams from implementation jargon (YAMLs, DuckDB, JSONLs) to
the three durable assets per tenant — Analytical Framework,
Workspace, Knowledge Store
(a437c633).
The same commit landed two cross-cutting canvases the deployment diagrams now reference instead of cluttering themselves with:
- The AFS at a glance — what’s actually inside the Analytical Framework. Four kinds of thing, each answering a different question: structural definitions, ingestion metadata, display metadata, and tools.
- The Scribe mechanism — separated from the deployment diagrams because who signs is a cross-cutting concern that applies the same way in every mode. Lifted out, it becomes a legible diagram instead of a marker on every arrow.
Reading order for the doc became the teaching order: fully local → fully cloud → owner-with-tunnel (P2P2P) → on-site+SIS (Semi-Cloud) → build-local + KLS-in-bucket (Cloud R2). Two pure anchors first, then the splits.
The Scribe / Log / Publish trinity completes
Section titled “The Scribe / Log / Publish trinity completes”W23 landed Sense 38 (Scribe) and Sense 47 (Log). W24 completed
the trinity with jin publish — Sense 21 Beat 3
(e2e56fe8).
The orchestrator makes no commits of its own — each sub-publisher
(bell, notes) signs under its own boundary’s Scribe. What jin publish adds is one publish_log.jsonl row per round capturing
kinds + counts + outcome, the higher-level “Beat 3 fired” record
distinct from the per-commit afs_commit_log entries the
sub-publishers already write. Five orchestrator tests, clidocs
updated, Sense 21 doc shows three Beat-3 deliverables ticked off.
Around it, the Scribe itself reached its mature shape:
- bell, notes, atelier wirings (5cada3d8)
— every credential boundary attributable. Plus a TypeScript
companion in
$lib/server/scribe.tsso atelier saves consult the same ladder from the Explorer side. - Tenant-scoped scribes (1bc5116d)
— the open question §1 of Sense 38 resolved. Per-tenant
jinflow.ymlis the primary lookup; user-machine and engine bundle are fall-backs. jinflow.yml, no dot (b05cb23a) — drift caught and fixed: the tenant manifest is the same name as the engine root manifest, distinguished only by location.- Drop the within-layer
default:sink (715d662d) — same anti-pattern asdefault_packin the engine yml: a default that silently picks a winner is worse than no default at all. Boundaries are a closed set; each must be declared explicitly. - Scribe config readable on the deployed binary (95cb4e4f)
—
~/.jinflow/config.ymlis the editable layer that survives PyInstaller bundle updates. - The canonical
BOUNDARIESregister (acb07925) — single source of truth for every credential boundary jinflow recognises today, wired and unwired. Closes the “will we remember cloud-make / action-runner when their code paths exist?” trap.
The pulse-bake idempotency hole closed at the same time: the
bake_pulse_data step now runs unconditionally when the KLS
exists, so logs that grow on every cycle (build_log,
afs_commit_log) reach pulse_event_log without waiting for an
engine-version bump.
Sense 13 V1 — the Tile substrate
Section titled “Sense 13 V1 — the Tile substrate”The Tile spec landed (4f5d0d93) on 06-09, then V1 — the wedge — implementation followed on 06-12 (b7a9a56b). A small but foundational addition: the substrate that lets the Atelier author visual assertions (charts, maps, ledgers) alongside textual ones (signals, smebits) using the same declarative discipline. The wedge name refers to its place in the Sense 13 corpus — a small reusable surface that any composing view can drop into.
Sense 16 — local launcher hardens
Section titled “Sense 16 — local launcher hardens”The Sense 16 work that started in earlier weeks (P2P2P, the
sovereignty principle) extended into the local launcher
shape this week — when the Explorer runs on the owner’s laptop and
the auth flow has to negotiate between local-launcher and hosted
modes:
- /auth-callback swaps
__sessionfor a long-lived template token (37004cbf) and closes the local-launcher sign-in loop (a3a16a36). jin exploresetsJINFLOW_LAUNCH_MODE=local-launcher(850505f0), the layout-server derivesclerkLaunchMode(594eac27), the+layout.sveltegates<ClerkProvider>on it (19ac9868), and/sign-inredirects to the Clerk hosted page when in local-launcher mode (c068d30e).- The launcher refuses foreign Clerk keys (ac1f99fb) — clean separation between weave-shipped and jinflow-shipped credentials.
A small chain of fixes, but the cumulative effect is large: P2P2P-style deployments now have a coherent local-launcher auth story without breaking the hosted-cloud path.
Sense 14.2 Phase 5 — wired-window scope + metric provenance
Section titled “Sense 14.2 Phase 5 — wired-window scope + metric provenance”The W23 Phase 4 closeout for currency made room for Phase 5 to arrive this week. The spec (b2ece5a1) landed alongside the cascade-coordination doc (453f0e48), and two threads shipped:
- Thread 1 —
window:SQL in three more signal types (7c2fc252). - Thread 2 — metric-cell provenance line (aec6851b).
The Sense 14.2 ↔ Sense 43 (Cascade) ratification (ebaa81f9) nailed down the dual-role coverage between typed signals and the config cascade.
The Landscape spreads to the landing page
Section titled “The Landscape spreads to the landing page”Sense 42’s rename from The Pipes to The Landscape (W23 d70b82bb) arrived at the docs site this week. The landing page got a diamond compass treatment (472379aa) that replaces the old engine diagrams, plus the edge-label polish (69a73579) into soft cream pills. The pipeline graph itself is now called the Garden in the docs vocabulary (2b9a4f91), with companion sweeps generalising hospital framing in the engine vocabulary (9e560847) and dropping the Supply-Org legacy from engine docs (d150010c).
Housekeeping
Section titled “Housekeeping”The W23 weekly journal landed (a61803e2)
mid-week. The senses index gained a senses-vitality rationale
page as a sibling (0af6e9a6,
3a1d131b)
and senses_sync learned to preserve out-of-band senses-*
rationale pages (450f344d)
so the auto-regen step stops eating hand-authored sibling docs.
A five-phase documentation sweep rippled through the docs: Phase 1 CLAUDE.md + CLI stat descriptions (55d54da3), Phase 2 sense doc cross-refs to the Landscape (cb455c82), Phase 3 cookbook + cheatsheet + fresh-install vocabulary (f99a755b), Phase 4 public docs guides + glossary (d3df5b09), Phase 5 sense doc prose + Explorer route refs (01458670). The cumulative effect: the docs site now speaks the same post-rename vocabulary end-to-end.
The alias-entry dialog got retired (0153e932) — authoring identity now comes from the Sense 25 chain.
Garden spinner forever-loop fix (ad58e446),
tilecompile honours --output-dir (bbae0538),
position engaged Insight nodes around the centre marker
(e528d3a9).
2 releases: 0.54.0 → 0.54.1 → 0.54.2.
Forward hook: Sense 48 The Stage now makes it possible to talk
honestly about which plane is being asked every time jin ...
touches a remote. That clears the runway for the next phase of
cloud-make work — the cloud-side build worker whose cloud-make
scribe is still reserved in the BOUNDARIES register. With dev
and prod planes truly separated and the Scribe / Log / Publish
trinity load-bearing, Make-as-a-Service moves from “named in the
operating-modes doc” to “the next implementation step.”