home-hosted 0.7.2 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -135,15 +135,19 @@ a minor without one.
135
135
  `repo`/`tag`/`asset` (which release carries it, for `ui-update`) and `unix` (when it was built).
136
136
  `UiService` carries those fields into the installed `$HHOSTED_HOME/.ui/ui.json` unchanged and adds
137
137
  `uploadedAt`/`files` of its own.
138
- - **Bumping a UI ships a new asset, so its `ui.json` is part of the change.** Any commit that alters
139
- a UI under `uis/<name>/` bumps that `ui.json`'s `version` and sets `unix` to the commit's own epoch
140
- seconds: patch for a fix, minor for a feature, and **major only for a rewrite or a restyle**. The
141
- number is what tells a person how big the change is — `ui-update` prints it and holds it against
142
- the release it is offering. `tag` is what pairs an official UI with its panel, and it is **stamped
143
- by `build-uis.mjs`**, not trusted from the source file: a UI zip is built before its release is cut,
144
- so the committed value is always a release behind the asset it ends up inside. The release workflow
145
- passes `HHOSTED_UI_TAG`; anywhere else the build stamps `v<package.json version>`. Do not hand-edit
146
- `tag` to chase a release — a stale one makes `ui-update` re-install the same UI on every boot.
138
+ - **Bumping a UI ships a new asset, so its `ui.json` is part of the change — and it is bumped once,
139
+ when the commit is made, not on every edit.** A commit that alters what a UI *ships*
140
+ (`uis/<name>/src`, `public`, its build inputs — not `test/`, which is not in the asset) raises that
141
+ `ui.json`'s `version`: patch for a fix, minor for a feature, and **major only for a rewrite or a
142
+ restyle**. The number is what tells a person how big the change is — `ui-update` prints it and holds
143
+ it against the release it is offering. `unix` is that commit's own epoch, never a leftover from
144
+ whenever the file was edited: `scripts/stamp-uis.mjs` runs from the pre-commit hook, stamps it, and
145
+ refuses a commit that changed a shipped UI without raising its version. `tag` is what pairs an
146
+ official UI with its panel, and it is **stamped by `build-uis.mjs`**, not trusted from the source
147
+ file: a UI zip is built before its release is cut, so the committed value is always a release behind
148
+ the asset it ends up inside. The release workflow passes `HHOSTED_UI_TAG`; anywhere else the build
149
+ stamps `v<package.json version>`. Do not hand-edit `tag` to chase a release — a stale one makes
150
+ `ui-update` re-install the same UI on every boot.
147
151
  - `bin/home-hosted.mjs` — the published bin: `dist/cli.js`, or `src/cli.ts` through tsx when the
148
152
  build is missing (a linked checkout).
149
153
  - `scripts/` — `build-uis.mjs` (build one UI, optionally zip it), `typecheck-uis.mjs`,