sourceharbor

Runtime Truth Map

SourceHarbor has multiple truth layers on purpose.

Think of them like different ledgers in the same business:

If you mix those layers together, you start saying things that sound confident but are actually wrong.

Storage Truth

Layer What it is for What it is not
Postgres business truth for subscriptions, videos, jobs, ingest runs, knowledge cards, notification deliveries not the step-by-step execution trace
SQLite runtime trace truth for step runs, retries, and local step-level execution details not the source of business-facing job identity
Artifacts human-readable result truth: digest, transcript, outline, knowledge cards, and related files not the authoritative queue or delivery state

Runtime Truth

For local operation, the most important runtime truth file is:

.runtime-cache/run/full-stack/resolved.env

That file tells you:

Use it like a boarding pass, not like a comment in old code. If your terminal, docs, and running services disagree, the resolved runtime snapshot wins for local route truth.

Current cache/state contract:

Local Proof vs Remote Proof

Layer Safe claim
Docs truth "This is how the repo is intended to be run and interpreted."
Local runtime truth "This is what the current machine and current stack actually resolved to."
Remote proof truth "This is what current main, current releases, and live GitHub/distribution surfaces can prove externally."

Do not swap these claims:

First-Run Truth

The clean local first-run path is:

  1. ./bin/doctor
  2. ./bin/bootstrap-full-stack
  3. ./bin/full-stack up
  4. source .runtime-cache/run/full-stack/resolved.env
  5. ./bin/full-stack status
  6. optional: ./bin/smoke-full-stack --offline-fallback 0

The long smoke command is stricter than the base first-run path.

It intentionally steps into provider-backed lanes after the local supervisor path is already up. Treat it like an extended flight check, not like the same thing as doctor + up + status.

One important split now stays explicit:

./bin/bootstrap-full-stack now keeps those two ledgers separate. It can use a repo-owned local fallback for the core stack when Docker is unavailable but the local postgres / initdb / pg_ctl / temporal binaries exist. The reader stack still stays an explicit Docker-only optional lane, so it should not be treated as a first-run blocker unless you intentionally enabled --with-reader-stack 1.

./bin/full-stack up now also has one repo-owned self-heal step:

What ./bin/doctor is for:

What ./bin/doctor is not for:

Current video-first local truth:

What local browser login state is for:

What it is not for:

Live Hardening Truth

Wave 2 keeps five capabilities honest:

Capability Honest status rule
Retrieval implemented, but quality is not proven until the current DB has non-empty corpus and artifact bindings
Notifications / Reports implemented, but live send is still blocked until sender configuration is complete; RESEND_API_KEY alone is not enough without RESEND_FROM_EMAIL and a verified sender/domain
UI audit base audit can run with valid job_id or artifact_root; Gemini review now has a recent maintainer-local proof pass, but other environments still need Gemini access if they want that extra layer
Computer use implemented contract exists and a recent maintainer-local proof pass can reach the provider, but real runs still depend on Gemini access plus a valid screenshot/input contract
Long live smoke the strict smoke lane is real, the short repo-managed smoke path now passes again, and YouTube provider validation removed the stale-key 403 story as the main blocker; the remaining end-to-end stop is reopening the lane with operator-managed API access plus complete sender configuration

What You Can Say Publicly

These are safe:

These need stronger proof: