Skip to content

docs(service): the case header holds no icon - #1710

Merged
os-steve merged 1 commit into
mainfrom
claude/issue-1701-header-has-no-icon
Sep 6, 2026
Merged

os-steve merged 1 commit into
mainfrom
claude/issue-1701-header-has-no-icon

Conversation

@claude

@claude claude Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Closes #1701

Description

The case detail layout's Header bullet listed "an icon" among the things the
header carries, and closed the list with That is the whole header. icon was
removed from page:header in @objectstack/spec 17.0.0 (#6946, ADR-0087 D2)
— deleted, not renamed, because no renderer ever read it — and no page:header
under src/pages/ authors one. The enumeration promised an element the renderer
has no way to draw.

The exhaustiveness claim is what made it worth correcting. A list that says it is
the whole header gives a reader no reason to doubt any item on it, so the one
entry the renderer cannot draw was the entry a reader would hunt for longest.

This is a deletion, not a rewrite. The breadcrumb and the action buttons named
in the same sentence are both real, so only the icon clause goes and the
completeness claim is left standing — now true, and matching the component's
properties block item for item:

doc says the header holds case_detail.page.ts page:header
the case number and subject as the title title: '{case_number} · {subject}'
the account as the subtitle subtitle: '{crm_account}'
a breadcrumb breadcrumb: true
the action buttons actions: ['escalate_case', 'close_case', 'log_call']

Type of Change

  • Documentation update

Related Issues

Closes #1701

Filed from this card's expansion sweep, not fixed here: #1709.

Changes Made

  • content/docs/service/cases.mdx — "plus an icon, a breadcrumb and the action buttons" becomes "plus a breadcrumb and the action buttons".
  • content/docs/service/cases.zh-Hans.mdx — 「此外只有一个图标、面包屑和几个动作按钮」 becomes 「此外只有面包屑和几个动作按钮」.
  • content/docs/service/cases.zh-Hant.mdx — 「此外只有一個圖示、麵包屑和幾個動作按鈕」 becomes 「此外只有麵包屑和幾個動作按鈕」.
  • .changeset/case-header-holds-no-icon.md — new.

One clause per face, three changed lines in total. Character-level diff on the two
Chinese faces is exactly 一个图标、 and 一個圖示、 removed — nothing else moved, so
the three faces stay structurally equivalent (same line, same bullet, same
sentence count, no table or blockquote touched). The Chinese faces keep their own
register rather than being re-translated around the gap.

⛔ No src/ metadata changed. The deletion-explaining comments in
src/pages/*.page.ts are correct and are untouched. No gate and no test added
(AGENTS.md, Scope rule 3).

The expansion sweep — reported even though it is empty

The sentence is inherited, so it was searched for by behaviour, not by the word
icon
: every page describing what a record header holds, every completeness
assertion ("that is the whole …", 就这些 / 就這些 / 此外只有 / 再无其他 / 仅此而已),
and the other nouns the three faces could have used (图标 / 圖示 / 图示 / 头像 /
頭像 / 徽标 / 標誌 / avatar / logo / glyph / emblem / kicker / eyebrow / thumbnail),
across all 201 .mdx files.

The difference set is empty. No account, lead or opportunity page carries this
sentence in any locale:

  • sales/leads has no detail-layout section at all — no header sentence to be wrong.
  • sales/accounts has "Account detail layout", but it describes only the tabs; it makes no header claim.
  • sales/opportunities does have a Header bullet, but it is a different sentence with a different history — no icon, no completeness claim. It is wrong in its own way, which is filed as sales/opportunities describes an opportunity header that carries a stage badge, amount, close date and owner — page:header carries none of them (all three locales) #1709 rather than ridden along here: correcting it is a rewrite of the bullet (it conflates page:header, record:path and record:highlights), not this card's one-item deletion.
  • Every other icon hit in content/docs is a legitimate one: Fumadocs Card icon= props, Action.icon and ObjectSchema.icon in code samples (both real properties), browser and nav chrome, the account's avatar-accent field, and 标志 used to mean flag.

Provenance — all three faces got the clause in one commit, #946, the change
that rewrote this bullet away from an older stale enumeration at a time when icon
was still believed to be a header property. It was never a shared template, which
is why it never spread and why deleting it here finishes it.

Testing

  • pnpm verify fully green — the repo's whole chain, run in one go: validate → typecheck → lint → lint:i18n-gate → hygiene → hygiene:tokens → build → test.
✓ Validation passed (1277ms)
✓ i18n lint gate: 0 `i18n/missing-*` issues
✓ no raw control bytes in first-party files
✓ source hygiene clean
✓ source token ratchet clean
✓ Build complete (1405ms)

 Test Files  161 passed (161)
      Tests  3408 passed | 1 skipped (3409)

Checked before editing, as the card required: no docs-* wording pin asserts
these sentences. The distinctive tokens ("whole header", 此外只有, 面包屑, 图标,
圖示, breadcrumb) have no assertion site anywhere under test/; the only
page:header pin is action-references.test.ts, which resolves action ids and is
untouched by prose. Nothing turned red, so no assertion needed relaxing.

Checklist

  • I have added a changeset — .changeset/case-header-holds-no-icon.md, with 'hotcrm': patch frontmatter.
  • I have performed a self-review of my own code
  • My changes generate no new warnings
  • New and existing unit tests pass locally with my changes

Why 'hotcrm': patch and not the empty-frontmatter form

Both forms are live in this repo, so the choice was measured rather than recalled.
The empty frontmatter is genuinely sanctioned — .github/workflows/changeset-check.yml
documents it as the "this PR releases nothing" declaration, on par with the
skip-changeset label — but it is not what this class of change uses. Across all
203 changesets, the split is by kind, not by date: in September, changes that
touch content/docs used 'hotcrm': patch 36 times against 2 empty ones
(both the same security-page pair, 2026-09-03), while the 31 empty ones were
internal — guard headers, hook comments, test harnesses, pin rescopes. Every
content/docs change in the last three days took the patch form, including #1702,
the immediately preceding change to this very bullet list. content/docs is the
shipped product documentation, so a correction to it is a change a reader sees, and
the release notes carry it.


Generated by Claude Code

The case detail layout's header bullet listed "an icon" among the things the
header carries, and closed the list with "That is the whole header". `icon` was
removed from `page:header` in @objectstack/spec 17.0.0 (#6946, ADR-0087 D2) —
deleted, not renamed, because no renderer ever read it — and no `page:header`
under `src/pages/` authors one, so the enumeration promised an element the
renderer has no way to draw.

The exhaustiveness claim is what made it worth correcting: a list that says it
is the whole header gives a reader no reason to doubt any item on it.

This is a deletion, not a rewrite. The breadcrumb and the action buttons named
in the same sentence are both real (`breadcrumb: true`; `actions` names
`escalate_case`, `close_case` and `log_call`), so only the icon clause goes and
the completeness claim is left standing — now true, and matching the component's
properties block item for item. The Chinese faces drop the same item in their
own register rather than being re-translated around the gap.

The sibling detail-page docs were swept by behaviour rather than by the word
"icon" — header-content descriptions, completeness assertions, and the other
nouns the faces could have used. The difference set is empty: no account, lead
or opportunity page carries this sentence in any locale.

No `src/` metadata changed; the deletion comments in `src/pages/*.page.ts` are
correct and are untouched. No gate and no test added.

Co-authored-by: Claude <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
hotcrm Ignored Ignored Sep 6, 2026 12:35pm UTC

Request Review

@os-steve
os-steve marked this pull request as ready for review September 6, 2026 12:39
@os-steve
os-steve added this pull request to the merge queue Sep 6, 2026
Merged via the queue into main with commit a6f469d Sep 6, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

service/cases says the case detail header carries an icon — page:header dropped icon in spec 17.0.0 and nothing draws one (all three locales)

2 participants