Docs: correct what today's changes made false, and add the system-level reference - #283
Merged
Conversation
A day of infrastructure work left the documentation describing a system that no longer exists. Accuracy first — a confidently wrong doc costs more than a missing one, because nobody goes looking for a second source. docs/SENTINEL_AGENT.md — rewritten, not patched. It was still titled after the archived SourceBox-Sentinel repo, described the agent as a separate Fly app with its own secrets and deploy token, told readers to `pip install -r requirements.txt`, documented an Ollama client that no longer exists, and warned against poll mode because it "defeats auto_stop_machines" on a machine that is now deliberately always warm. It also contained a half-finished edit of mine sitting inside a code block. Preserved what was still true and good — the reliability layers, the multi-tenancy model, the limitations — and corrected the rest. docs/legal/SUB_PROCESSORS.md — this one has consequences. The Ollama Cloud entry is still factually right about who processes data (verified against the running configuration: ollama_chat/qwen3.5:cloud), but it described the agent as "a separate SourceBox-operated service" and, more importantly, predates the provider becoming a config value. LiteLLM means one environment variable now decides who receives customer camera imagery. That is a sub-processor change under the DPA — 14 days' notice, not a config tweak — so the warning is recorded both at the point of use and in the changelog, where someone editing LLM_MODEL will meet it. docs/runbooks/DISASTER_RECOVERY.md — justified Sync having no dump job because it "runs two machines" and a volume would cost redundancy. It runs one machine now and scales to zero, so the stated reason is false. The conclusion survives on stronger grounds: sentinel_sync holds a mirror whose source of truth is the operator's local SQLite, so losing it entirely costs one sync cycle. Rewritten to say that instead. docs/LAUNCH_HANDOFF.md — told the operator to verify `notifications.sourceboxsentry.com` as the Resend sending domain. That is the pre-rename brand and is not verified; AGENTS.md already records that sentinel-command.com is, with DKIM and SPF on send.sentinel-command.com. Following the old step at launch would have failed every send. README.md — the agent row linked to the archived repo. docs/README.md — pointed at sourceboxsentry.com, never indexed SENTINEL_AGENT.md, and told readers no runbooks existed in the same file that lists two of them. All 26 relative links verified to resolve. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was no document describing how the whole thing fits together.
README covers this repo, AGENTS.md covers Command Center's internals,
and nothing covered the level above both — which meant the answer to
"what talks to what" lived only in the heads of people who built it.
docs/ARCHITECTURE.md is that level: every repository, every deployed
service, and the paths between them. Written from the running
infrastructure rather than from memory, and it makes explicit several
things that were previously folklore:
- the live video path touches NO object storage, and the segment
cache's 384 MiB ceiling is coupled to the machine's 1 GiB — raise
one without the other and the OOM killer takes every org's streams
- two services scale to zero and two don't, and the reason is a
measurable one (Fly's proxy gives an auto-started machine ~8s to
bind; License needs ~4s, the agent ~10s)
- isolation between the three databases is by ROLE, not by cluster
- CI path filtering is asymmetric on purpose, and inverting it would
hang every PR on a check that never reports
- the GITHUB_TOKEN deploy gap, which is why only one repo here has an
auto-merge workflow
Indexed from both README.md and docs/README.md as the recommended
starting point.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two commits: an accuracy pass, then the document that didn't exist.
Accuracy — a day of infrastructure work left the docs describing a system that's gone
A confidently wrong doc costs more than a missing one, because nobody goes looking for a second source.
docs/SENTINEL_AGENT.md— rewritten, not patched. It was still titled after the archivedSourceBox-Sentinelrepo, described the agent as a separate Fly app with its own secrets and deploy token, told readers topip install -r requirements.txt, documented an Ollama client that no longer exists, and warned against poll mode because it "defeatsauto_stop_machines" — on a machine that is now deliberately always warm. It also contained a half-finished edit of mine sitting inside a code block. Preserved what was still true and good (reliability layers, multi-tenancy model, limitations); corrected the rest.docs/legal/SUB_PROCESSORS.md— this one has consequences. The Ollama Cloud entry is still factually right about who processes data (verified against the running config:ollama_chat/qwen3.5:cloud), but it called the agent "a separate SourceBox-operated service" and predates the provider becoming a config value.LiteLLM means one environment variable now decides who receives customer camera imagery. That's a sub-processor change under the DPA — 14 days' notice, not a config tweak. The warning is recorded both at the point of use and in the changelog, so someone editing
LLM_MODELmeets it.docs/runbooks/DISASTER_RECOVERY.mdjustified Sync having no dump job because it "runs two machines". It runs one now and scales to zero, so the stated reason is false. The conclusion survives on stronger grounds —sentinel_syncholds a mirror whose source of truth is the operator's local SQLite — and now says that instead.docs/LAUNCH_HANDOFF.mdtold the operator to verifynotifications.sourceboxsentry.comas the Resend sending domain. That's the pre-rename brand and is not verified;AGENTS.mdalready records thatsentinel-command.comis. Following the old step at launch would have failed every send.README.mdlinked the agent row to the archived repo.docs/README.mdpointed at the old domain, never indexedSENTINEL_AGENT.md, and told readers no runbooks existed — in the same file that lists two.The document that didn't exist
README.mdcovers this repo.AGENTS.mdcovers Command Center's internals. Nothing covered the level above both, so "what talks to what" lived only in the heads of the people who built it.docs/ARCHITECTURE.mdis that level — written from the running infrastructure, not from memory. It makes explicit several things that were previously folklore:GITHUB_TOKENdeploy gap, which is why only this repo has an auto-merge workflowAll 37 relative links verified to resolve.
🤖 Generated with Claude Code