testing
All checks were successful
Build Authoring Service / build (push) Successful in 8s

This commit is contained in:
2026-07-09 17:06:10 +01:00
parent 4dd619d02c
commit 8329c00fcc
4 changed files with 5 additions and 5 deletions

View File

@@ -6,7 +6,7 @@ The hidden ecosystem has one friendly source of truth:
The live site still consumes generated constants in: The live site still consumes generated constants in:
- `assets/scripts/hidden-details.js` in `org_web` - `assets/scripts/features/hidden-details.js` in `org_web`
## Canonical Content ## Canonical Content

View File

@@ -48,7 +48,7 @@ POSTS_DIR = ROOT / "posts"
LIMA_DIR = ROOT / "lima" LIMA_DIR = ROOT / "lima"
IMAGE_ASSETS_DIR = ROOT / "assets" / "images" IMAGE_ASSETS_DIR = ROOT / "assets" / "images"
HZONE_ASSETS_DIR = IMAGE_ASSETS_DIR / "hzone" HZONE_ASSETS_DIR = IMAGE_ASSETS_DIR / "hzone"
HIDDEN_DETAILS_JS = ROOT / "assets" / "scripts" / "hidden-details.js" HIDDEN_DETAILS_JS = ROOT / "assets" / "scripts" / "features" / "hidden-details.js"
HIDDEN_CONTENT_JSON = ROOT / "assets" / "content" / "hidden-details.json" HIDDEN_CONTENT_JSON = ROOT / "assets" / "content" / "hidden-details.json"
HIDDEN_BACKUP_DIR = Path(os.environ.get("AUTHOR_HIDDEN_BACKUP_DIR", APP_ROOT / "backups" / "hidden-details")).expanduser().resolve() HIDDEN_BACKUP_DIR = Path(os.environ.get("AUTHOR_HIDDEN_BACKUP_DIR", APP_ROOT / "backups" / "hidden-details")).expanduser().resolve()
EXCLUDED_CONTENT_DIR_NAMES = { EXCLUDED_CONTENT_DIR_NAMES = {

View File

@@ -477,7 +477,7 @@ def load_hidden_store() -> dict[str, Any]:
migrated = True migrated = True
data = { data = {
"schemaVersion": 2, "schemaVersion": 2,
"generatedFrom": "assets/scripts/hidden-details.js", "generatedFrom": "assets/scripts/features/hidden-details.js",
"generatedAt": datetime.now().isoformat(timespec="seconds"), "generatedAt": datetime.now().isoformat(timespec="seconds"),
"entries": entries, "entries": entries,
"stories": stories, "stories": stories,
@@ -554,7 +554,7 @@ def validate_hidden_integrity(entries: list[dict[str, Any]], stories: list[dict[
def hidden_architecture_recommendations() -> dict[str, Any]: def hidden_architecture_recommendations() -> dict[str, Any]:
return { return {
"storage": "Use assets/content/hidden-details.json as the friendly source of truth for reusable memories, first-class stories, and story-only sections, then regenerate the editable constants in assets/scripts/hidden-details.js.", "storage": "Use assets/content/hidden-details.json as the friendly source of truth for reusable memories, first-class stories, and story-only sections, then regenerate the editable constants in assets/scripts/features/hidden-details.js.",
"backups": "Every save writes timestamped backups for both JSON and JS under backups/hidden-details/.", "backups": "Every save writes timestamped backups for both JSON and JS under backups/hidden-details/.",
"versioning": "Commit the JSON and generated JS together so the live site and authoring history stay aligned.", "versioning": "Commit the JSON and generated JS together so the live site and authoring history stay aligned.",
"collaboration": "For simultaneous editing, resolve conflicts by entry id and story id rather than by whole-file ownership.", "collaboration": "For simultaneous editing, resolve conflicts by entry id and story id rather than by whole-file ownership.",

View File

@@ -1989,7 +1989,7 @@ HIDDEN_APP_HTML = r"""<!doctype html>
<p><strong>Canonical model:</strong> fragments are tiny reusable lines, memories are richer observatory moments, interactions are triggers, lore is world material, and stories are curated routes through them.</p> <p><strong>Canonical model:</strong> fragments are tiny reusable lines, memories are richer observatory moments, interactions are triggers, lore is world material, and stories are curated routes through them.</p>
<p><strong>Story model:</strong> stories are first-class emotional routes. Entries can belong to multiple stories, but routes stay readable and authored in order.</p> <p><strong>Story model:</strong> stories are first-class emotional routes. Entries can belong to multiple stories, but routes stay readable and authored in order.</p>
<p><strong>Legacy links:</strong> old continuations, echoes, and symbolic links are retained for migration only. New authoring happens through Story Builder.</p> <p><strong>Legacy links:</strong> old continuations, echoes, and symbolic links are retained for migration only. New authoring happens through Story Builder.</p>
<p><strong>Storage:</strong> the friendly graph lives in <code>assets/content/hidden-details.json</code>; the live site still receives generated constants in <code>assets/scripts/hidden-details.js</code>.</p> <p><strong>Storage:</strong> the friendly graph lives in <code>assets/content/hidden-details.json</code>; the live site still receives generated constants in <code>assets/scripts/features/hidden-details.js</code>.</p>
</div> </div>
</section> </section>
</aside> </aside>