Zum Inhalt springen

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.

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.

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.ts so 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.yml is 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 as default_pack in 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.yml is the editable layer that survives PyInstaller bundle updates.
  • The canonical BOUNDARIES register (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.

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.

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 __session for a long-lived template token (37004cbf) and closes the local-launcher sign-in loop (a3a16a36).
  • jin explore sets JINFLOW_LAUNCH_MODE=local-launcher (850505f0), the layout-server derives clerkLaunchMode (594eac27), the +layout.svelte gates <ClerkProvider> on it (19ac9868), and /sign-in redirects 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 1window: 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.

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).

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.”

jazzisnow jinflow is a jazzisnow product
v0.64.7 · built 2026-09-20 19:48 UTC