Repository navigation
Commit 3fed1eb
spec(liveness): app.branding.logo is live — objectui AppMark renders it at the pin (#23830)
Fixes #23394
Clause-②: no
## What changes
`packages/spec/liveness/app.json`, `app.branding.children.logo` flips
from `planned` to `live` (`verifiedAt` 2026-10-16, `evidenceScope:
"cross-repo"`).
- **Reader, read at the `.objectui-sha` pin this tree carries
(`daeb77fc84`):** objectui
`packages/app-shell/src/layout/AppMark.tsx#AppMark` reads
`branding.logo` and draws it as an `object-contain` image (it falls back
to the `icon` tile when the key is absent or the image fails to load).
It is mounted by `AppSwitcher#AppSwitcher` at 22 px, on the top-bar app
pill and on every switcher row (the switcher is mounted in `AppHeader`),
and by `UnifiedSidebar#UnifiedSidebar` at 26 px, in the phone drawer
header. All three are cited in `evidence`.
- **`producer`:** kept and re-pinned to `daeb77fc`. The designer's
`AppCreationWizard`, `BrandingEditor` and `EditAppPage` still write or
pre-fill `branding.logo` at the pin.
- **`note`:** rewritten to say what renders it. The "PLANNED, carrier
objectui#10827" and "Flip to `live`" wording is gone, and so is the
paragraph about objectui's top-level `logo`, because objectui has since
retired that second spelling. The ONE SPELLING paragraph stays, because
it is still true: `AppSchema` declares only `branding.logo`, and the
alias table answers an app-level `logo` with `branding`
(`packages/spec/src/ui/app.zod.ts`).
- **`branding` container `note`:** only the sentence about `logo` is
changed. It now says `logo` reached nothing mounted at the 2026-09-27
drill and has since gone `live` through `AppMark`.
- **`state-counts/app.md`:** regenerated with `gen:liveness-counts`.
Before: `live 50 · planned 1`. After: `live 51 · planned 0`.
`classified` stays 59.
- **Changeset:** a `patch` changeset for `@objectstack/spec`.
`liveness/` is in the package's `files[]`, so the ledger ships.
No schema, objectui file or `.objectui-sha` changes.
## Verification
At head `0a6dbaf4`:
- `pnpm --filter @objectstack/spec check:liveness`: exit 1 before the
regeneration (the expected count drift, `| app | 50 | 0 | 0 | 8 | 1 | 59
|` to `| app | 51 | 0 | 0 | 8 | 0 | 59 |`), then exit 0 after
`gen:liveness-counts`. Every `live` entry's repo-local evidence
resolves, and `state-counts/` is current.
- `node scripts/pm/dispatch-gates.mjs --commands --repo
objectstack-ai/objectstack` derived 62 commands for this diff. 59 exited
0, `pnpm --filter @objectstack/spec run check:generated` among them,
after a spec build. 3 exited 3 because a prerequisite was missing (NOT
MEASURED, left to CI): `check:dual-build-cjs-loads` and
`check:lean-entry-closure` need a full workspace build, and
`check-plugin-teardown-shape.mjs --self-test` needs an unshallowed
clone. `--ran` reconciles: 62 derived, 59 run, 3 NOT-MEASURED, 0 UNRUN.
## Acceptance notes
- The ledger file's top-level `_note` still has the dated 2026-09-27
sentence "`branding` is now DRILLED: `logo` is `planned` with carrier
objectui#10827". It records history and sits outside this card's claimed
file surface (the row and the container note only), so it is left as it
was.
- `docs/audits/2026-06-appschema-property-liveness.md` lists
`branding.logo` among the unimplemented keys. It is a dated audit
snapshot, not a current-state page, and it is left as it was.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01PfJqaHVFSJ1Znqb9vBPZe2
---
_Generated by [Claude
Code](https://claude.ai/code/session_01PfJqaHVFSJ1Znqb9vBPZe2)_
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 0cfd0c4 commit 3fed1eb
3 files changed
Lines changed: 23 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
56 | | - | |
57 | | - | |
| 56 | + | |
| 57 | + | |
58 | 58 | | |
59 | | - | |
60 | | - | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
61 | 62 | | |
62 | 63 | | |
63 | | - | |
| 64 | + | |
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
0 commit comments