Files
settled-reach/client/scripts/build_version.gd
T
jpmschweitzerandClaude Opus 5.5 c597ec9131 docs(tooling): T-1253 — sweep the live references to retired tool paths
A script scanned every tracked doc, rule, skill, agent, hook and source file
for tooling/ paths that no longer exist, skipping historical records (sprints,
discussions, workshops, governance, generated wiki pages). It found 62. The
ones that tell a reader what to RUN now name the reach verb:

- The atlas skill still sent agents to tooling/atlas, atlas-verify,
  atlas-update-field and atlas-commit-and-sync — about forty lines, all
  retired in T-1285. They now name the `reach atlas` verbs, and the skill
  records that commit-and-sync STAGES by default (--commit to commit) and
  takes --corridor as an option.
- The clerk agent named tooling/clerk-review (now `reach dev clerk`). The Si
  and clerk briefings sent those agents to the retired tooling/db/decision
  and sqlite-query CLIs and to decisions/*.md paths that moved to
  governance/ in the pql migration. They now name pql.
- The ticket-cli rule documented `pql decisions read`, which does not exist;
  `show` already includes the body.
- The culture authoring guide and the RON sources name
  `reach validate ron`, with the same arguments as before.
- The 41 Blender payloads' usage lines ran the retired tooling/blender
  wrapper, and the docstrings still cited pre-carve-out paths. They now read
  `reach blender run <payload>`.
- Doc comments in server/, client/, wiki TOMLs and the domain modules.

What is left is deliberate: "Formerly …" provenance, dated plans and findings
docs, the retired-pipeline doc, and a build-artefact path.

project.yaml 0.4.14 (mirrored to the client). Comment-only, but four touched
files are in the canvas-version registry (trait_catalog_reader.rs, since
T-1289, canvas_sources.py itself, and two client files). The gate is
path-based and has no override. The previous push was rejected on exactly
this.

Three of the edits are stamped ledger sources, so systems.db is regenerated
and the stamp is fresh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 20:13:58 +02:00

32 lines
1.5 KiB
GDScript

extends RefCounted
## The running client's version string — the ONE place anything asks (T-1241).
##
## Reads `application/config/version` out of ProjectSettings, which Godot bakes
## into the exported PCK. That is the whole point: two call sites previously
## line-scanned `res://../project.yaml` at runtime, which resolves to the repo
## root in a dev run and TO NOTHING in an exported build — both returned their
## "?.?.?" fallback in a shipped game.
##
## For the Atlas disk cache (D-255, step_canvas_disk_cache.gd) that was not a
## cosmetic defect: the version tag is that cache's ONLY invalidation signal, so
## a constant sentinel meant every exported build stamped and compared the same
## string and a canvas cached by one build would be served by every later build,
## forever. T-1239 is what that failure looks like when it happens — eight days
## of a map drawn from a canvas whose generating code no longer existed.
##
## No file IO and no fallback branch, deliberately. A missing setting returns ""
## and callers can see that; there is no environment where this reads one thing
## in the editor and another in an export, which is exactly the property the
## project.yaml scan lacked.
##
## `project.yaml` remains the source of truth for the version (CLAUDE.md); the
## ProjectSettings entry is a mirror, and `reach check client-version` fails
## the push if the two drift.
const SETTING_KEY: String = "application/config/version"
static func current() -> String:
return str(ProjectSettings.get_setting(SETTING_KEY, ""))