STATUS

Status & changes

Where the current public surface stands, what changed recently, and what still needs work.

Current phase: core refactor + internal dogfooding. Public pilots are not open.

CURRENT WORK FOCUS

Most active work is still below these pages: owned mutation paths, operator output, retained run memory, and clearer exception handling.

The site is already useful as a public reading surface. The underlying runtime is still under active refactor.

Recent changes

The newest update stays open. Earlier entries sit behind one disclosure so the page stays readable.

TsqDoc keeps retained ledger views and run history together

Changed

TsqDoc now exposes ledger list and health views plus last-run history manifests, so errata and impressions can point to one retained run instead of a floating alias or a manual file path.

Why it matters

Retained run memory becomes easier to inspect and share.

Limits

Retention improved. This is still not a general analytics layer.

Related pages
  • TsqDoc stores overview
  • TsqDoc ledger and retained history spec
  • TsqDoc ledger CLI surface
Show earlier recent changes

Operator status reads from live usage data

Changed

Account status now comes from live usage data. The TUI status and approval surfaces were tightened, and replay-backed checks were added around status behavior.

Why it matters

The visible status line stops drifting from live account state, and replay-backed checks reduce quiet UI regressions.

Limits

Truer status only. The product claim is not broader because of that.

Related pages
  • Live account status source
  • Status surface truth walkthrough

Exceptions move onto one visible surface

Changed

Triage and exception handling moved onto platform types and ports, then surfaced through first-class views such as exceptions list, explain, and health.

Why it matters

Exception debt becomes visible in one place instead of hiding in scattered YAML.

Limits

Visibility improved. Exception debt still exists and still needs judgment.

Related pages
  • Sadave exceptions surface core
  • Exceptions inventory schema
  • Exceptions surface spec

Failures become typed records across the gating path

Changed

Introduced `FailureV1` and schema-backed failure/report artifacts so runtime and tool-run failures land in typed records instead of ad-hoc strings.

Why it matters

Stops and tool failures become easier to trace, share, and compare.

Limits

Better records, not automatically better policy.

Related pages
  • Platform FailureV1 spec
  • Platform failure schema v1
  • Subprocess run report v2 schema

Pre-write gates go repo-wide and explain themselves

Changed

Canonicalized config discovery and apply-patch hook wiring, enforced repo-tree invariants on any write, and hardened hook reports to emit stable reason and rule identifiers.

Why it matters

Unsafe repository mutations are blocked earlier and with clearer explanations.

Limits

Fast pre-write guardrail only. Broader or heavier checks still belong later.

Related pages
  • Repo-local hook language pack config
  • Hook rust-check report mapping

Crate graph budgets enter the canonical driver

Changed

Added deterministic budgets to the Rust crate-graph policy module and wired them into the strict code-gates path.

Why it matters

Architecture weight stops depending only on reviewer memory.

Limits

Budget numbers are policy choices.

Related pages
  • Code gates: crate graph budgets module
  • Sadave pack: Rust crate graph policy (budgets + layering)

Sadave infra adapters move into shared platform adapters

Changed

Migrated Sadave infrastructure adapters for state storage, artifact store, and language packs into shared platform adapters.

Why it matters

Shared retained outputs and state handling stop forking across subsystems.

Limits

Ownership move only. Acceptance behavior changes only when rules change.

Related pages
  • Platform adapter: SQLite state store (Sadave infra)
  • Platform adapter: language packs filesystem store

Code-gates driver becomes canonical

Changed

Canonized the code-gates driver and capability resolution so entrypoints run the same module set and emit stable metadata.

Why it matters

Acceptance decisions stop depending on ad-hoc entrypoint wiring.

Limits

Driver unification only. The rule set stays the same.

Related pages
  • Code gates driver (platform_adapter_code_gates_std)
  • Code gates capabilities (platform_adapter_code_gates_std)

Hooks fail closed on unknown response fields

Changed

Hook response parsing now denies unknown fields instead of silently accepting drift.

Why it matters

The enforcement surface either matches the contract or fails closed with a reviewable error.

Limits

Contract hardening only.

Related pages
  • fs.write.pre hook response parsing (deny unknown fields)

Router path avoids a nested Tokio runtime

Changed

Refactored the router path to avoid constructing a nested Tokio runtime.

Why it matters

One class of runtime edge cases is removed, and runs stay calmer under stress.

Limits

Stability fix only.

Related pages
  • Router path: avoid nested Tokio runtime

OpenAI Responses adapter tolerates unknown wire fields

Changed

The OpenAI Responses adapter now tolerates unknown upstream wire fields while keeping parsing deterministic for the known schema.

Why it matters

Upstream wire drift is less likely to break the boundary.

Limits

Boundary hardening only.

Related pages
  • OpenAI Responses adapter: wire parsing (forward-compat)

Pre-write hook config becomes repo-local and runtime-rooted

Changed

Canonicalized hook configuration under `.tsqoba/musha/**` and tightened repo-tree invariants against legacy runtime roots.

Why it matters

Runtime state stays quarantined and discoverable in one place.

Limits

Repo-shape rule only. It is not a security boundary.

Related pages
  • Musha hook config (language pack hooks, repo-local)
  • Repo tree invariant: forbidden runtime roots

Walkthrough budgets are enforced

Changed

Enabled walkthrough budget invariants and added an anti-snapshot rule to keep fixtures and golden diffs out of production code.

Why it matters

Replay materials stay lightweight enough to run, inspect, and ship without quiet fixture bloat.

Limits

Budget and hygiene rules only.

Related pages
  • Sadave pack: repo tree invariants (runtime roots + budgets)
  • Rust rule: RUST-ANTI-SNAPSHOT-001 (no snapshots in prod code)

Pre-write hook runs code gates in-process

Changed

Wired the Rust pre-write hook to run the platform code gates engine in-process against an overlay filesystem, emitting a typed hook report.

Why it matters

Fast guardrails run at the moment of change without shelling out into uncontrolled subprocesses.

Limits

Quick preflight only. Stricter later checks still matter.

Related pages
  • Tsqoba hook adapter: in-process code gates (QuickFile)
  • Tsqoba hook report: in-process code gates mapping

Typed tool runner moves onto platform ports and adapters

Changed

Migrated the typed external tool runner interface into platform ports, with a standard adapter that emits schema-backed tool run reports.

Why it matters

Subprocess execution moves onto one visible path for budgets, output capture, and retained artifacts.

Limits

Execution substrate change only.

Related pages
  • Port: platform_typed_tool_runner_ports
  • Adapter: typed_tool_runner_std

Known rough edges

These are the clearest current limits of what is public today.

  • The main repo is still closed, so some mechanisms are easier to describe than to inspect directly.
  • Public pilots are not open yet; the site still speaks from internal dogfooding only.
  • Published material is still selective and first-party, even when technically detailed.
  • The map below is a coarse snapshot, not a score.

Current public surface map

A coarse map of what can be inspected publicly today. Read it as visibility plus current use, not as a benchmark.

Musha is the repo runtime. Sadave is the write-time policy layer on owned paths. Sinji is the replay harness. Those are local names. The jobs matter more than the labels.

How usable each area looks today

Snapshot: 2026-03-27

1

Tsqoba

The public site is coherent: home, status, articles, cases, and artifacts work together, but they still expose only a slice of the underlying system.

2

Musha

The repo runtime is real: live status and replay-backed truth checks work today, but usage remains internal rather than open-pilot.

3

Sadave

The write-time policy layer is live and inspectable: reason-coded outcomes and the exceptions surface are real, but the public slice is still narrow.

4

Sinji

The replay harness works for deterministic walkthroughs and status-truth checks, but it is still specialist rather than broad.

All four sit near the early / partial corner because public coverage is still selective and early. Shared platform work behind them is not shown as a fifth point.

Inspect deeper

Go deeper when you need the explanation, one concrete episode, or the retained material behind it.

Articles

Current mechanics, product boundaries, and trade-off notes.

Cases

One operating episode at a time: trigger, response, outcome, and why it mattered.

Artifacts

Retained screenshots, ledgers, diffs, inventories, and preserved files behind those pages.

Background: how the current shape emerged

A short background layer for readers who want the transitions behind the current view.

Show earlier background waves

2025-04-16 → 2026-02-19

Before the current product story

The repository has a long prehistory. Multiple product lines and support layers accumulated before later work pulled them toward one stricter platform and clearer operator surfaces.

Why it matters now It explains why later waves look like convergence and hardening rather than greenfield invention.

2026-02-20 → 2026-02-26

Shared platform work replaced parallel truths

Shared runtime, tool running, failure types, and repo-tree rules moved onto one platform layer instead of staying scattered.

Why it matters now Less duplicated substrate made later visible behavior easier to trust.

2026-02-27 → 2026-03-02

Strictness became explainable

Repo hygiene rails, the failure-code registry, write-gate UX, and staged grammar work made strictness easier to read when it blocks.

Why it matters now This is where strictness started to feel legible instead of merely heavy.

2026-03-15 → 2026-03-18

We paused to make later change safer

Coverage thresholds, repo health tests, archive extraction work, and audit-log clarification reduced the chance that later visible changes would quietly regress older behavior.

Why it matters now The safety envelope was strengthened before the next visible wave.

2026-03-21 → 2026-03-24

Status became a real product surface

Transport support widened, operator surfaces got cleaner, account status became more truthful, and retained history became more useful. TsqDoc gained ledger views and retained run history. Musha pulled status from live usage data. Sadave added readiness and inspection surfaces.

Why it matters now This is the point where status stopped being scattered notes and started acting like part of the product.

2026-03-26 → 2026-03-28

The public site became coherent

Positioning aligned, website prep established a controlled runway, and articles, artifacts, and cases started reading as one library.

Why it matters now This is the chapter that justifies the split between home, status, and deeper library reading.