Repository navigation
Banish the dead state-dir word: flag, modules, defaults, docs — with a guard test - #39
Merged
Merged
Conversation
The last root cause of the invisible-audio saga: a deployment-era CLI
flag pointed the whole runtime at a phantom directory next to the
checkout, silently — patterns kept loading (registry anchors by
__file__), the queue persisted into the phantom, and only the new
resolved-dir surfacing finally printed the path. The flag, the word,
and every way of spelling that mistake are now gone:
- --store -> --state-dir (global and map-level; dest state_dir). A
unit still passing the old flag refuses to start — loudly — instead
of quietly running beside the operator's files.
- create_app's own default was still a CWD-relative Path("var"): it
now resolves through runtime_state_dir like every other entrypoint.
- luminary/server/store.py -> geometry_store.py (class Store ->
GeometryStore); luminary/mapping/store.py -> records.py
(MappingStore keeps its name; bare `store` variables are gone).
- Help texts and docstrings say "geometry id", never the dead word;
deploy.md teaches --state-dir and the migration out of a phantom
tree; implementation-notes' runtime-layout section now tells the
truth (var/, not a gitignored tree by the old name).
- A guard test scans every python source: the bare token, a module by
that name, or the old flag fail the suite. Compounds (GeometryStore,
MappingStore, argparse's action names) stay legal.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N97HVk3sAr5jRGYodXcDoC
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.
Why
~/luminary/store/audioThe final root cause of the invisible-audio saga: the CLI still accepted the deployment-era
--storeflag, and an explicit flag wins verbatim over every anchored default — so a service unit (or wrapper) still passing it pointed the whole runtime at a phantom tree beside the checkout. Patterns kept loading (the registry anchors by__file__), the queue silently persisted into the phantom, and only PR #37's resolved-dir surfacing finally printed the path. Every way of spelling that mistake is now gone:--store→--state-dir(global and map-level, deststate_dir). A unit still passing the old flag refuses to start, loudly — no more running quietly beside the operator's files.create_apphad its own CWD-relative default (Path("var")), bypassing the anchored resolver — it now resolves throughruntime_state_dirlike every other entrypoint.luminary/server/store.py→geometry_store.py(Store→GeometryStore);luminary/mapping/store.py→records.py(MappingStorekeeps its compound name); every barestorevariable renamed.docs/deploy.mdteaches--state-dirand the migration; implementation-notes' runtime-layout section now describesvar/truthfully.test_the_word_store_never_returns) scans every Python source: the bare token, a module by that name, or the old flag fails the suite. Compounds (GeometryStore,MappingStore, argparse's action names) stay legal.Box migration (once, after merging)
Audio files are already in
var/audio/— after this, the stage finally reads them.Full suite green (guard included); mypy clean on the 2.1 module list; black clean;
luminary --helpsmoke-tested.🤖 Generated with Claude Code
https://claude.ai/code/session_01N97HVk3sAr5jRGYodXcDoC
Generated by Claude Code