Skip to content

chore(design-sync): sync HeartbeatToolCall into the design system#3636

Merged
ThomasK33 merged 1 commit into
mainfrom
heartbeat-design-sync
Jun 25, 2026
Merged

chore(design-sync): sync HeartbeatToolCall into the design system#3636
ThomasK33 merged 1 commit into
mainfrom
heartbeat-design-sync

Conversation

@ThomasK33

Copy link
Copy Markdown
Member

Summary

Enroll the HeartbeatToolCall tool card into the design-system sync config so it ships to the Mux Design System (claude.ai/design) alongside the other tool cards (GetGoal, HookOutput, Todo). The card itself already merged in #3631; this is the .design-sync follow-up. The component has already been uploaded to the project — this commits the repo-side state so future re-syncs keep including it.

Implementation

  • ds-barrel.ts — export HeartbeatToolCall (matches gen-barrel.mjs's convention; confirmed by re-running the generator).
  • config.jsontitleMap "Heartbeat" → "HeartbeatToolCall"; overrides.HeartbeatToolCall.cardMode: "column" (the CustomMessageWrapping story renders at a pinned 375px, wider than a grid cell, so column mode keeps all stories full-width and uncropped).
  • gen-barrel.mjs — add WorkflowRunToolCall.timeout to EXCLUDE_IMPORT. The heavy WorkflowRunToolCall is excluded via its "WorkflowRun" title segment, but its timeout stories title to .../WorkflowRun/Timeouts (segment Timeouts), which slipped the segment exclusion and would have pulled shiki/mermaid/recharts into the bundle, over the 5 MB cap. Also titleMap "Timeouts": null to drop the sub-story from the converter.
  • previews/HeartbeatToolCall.tsx — hand-authored isolated preview (one cell per story; the stories import the app via meta.tsx, so previews are hand-authored here, consistent with every other card).
  • NOTES.md — re-sync risks for the above, plus the accepted Ubuntu Mono fallback-font note.

Validation

  • /design-sync re-sync ran clean: package-validate reports 34 components, 0 bad / 0 thin; bundle 4.69 MB and the new preview 3.21 MB are both under the 5 MB cap.
  • All 10 HeartbeatToolCall stories graded match against the reference Storybook; the card is live in the project.

Risks

Low — .design-sync/ config/tooling only, no src/ or runtime change. The gen-barrel.mjs edit narrows exclusion (keeps a heavy component out of the bundle); worst case is a design-system preview difference, caught by the sync's own validation.

@ThomasK33

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 56d6909e68

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .design-sync/gen-barrel.mjs Outdated
Enroll the HeartbeatToolCall tool card and push it to the Mux Design System
claude.ai/design project (now 34 components):

- ds-barrel.ts: export HeartbeatToolCall (gen-barrel-confirmed).
- config.json: titleMap "Heartbeat" -> "HeartbeatToolCall"; overrides cardMode
  "column" (the CustomMessageWrapping story renders at a pinned 375px, wider than
  a grid cell); "Timeouts": null to drop the WorkflowRun timeout sub-story.
- gen-barrel.mjs: add "Timeouts" to EXCLUDE_HEAVY (a segment exclusion) so the heavy
  WorkflowRun component (shiki/mermaid/recharts, over the 5 MB cap) stays out of the
  bundle — its ".../Timeouts" title segment slipped the "WorkflowRun" seg exclusion.
  Segment (not path) exclusion so the generated titleMap also nulls "Timeouts" and
  stays consistent with cfg.titleMap (a path exclusion would drift from config).
- previews/HeartbeatToolCall.tsx: hand-authored isolated preview, one cell per story
  (all 10 graded match against the reference Storybook).
- NOTES.md: re-sync risks for the above, plus the accepted Ubuntu Mono fallback font.

Change-Id: Iaa6a1c73ddcef47c2cff85c7a0d3d95bac633a94
Signed-off-by: Thomas Kosiewski <tk@coder.com>
@ThomasK33 ThomasK33 force-pushed the heartbeat-design-sync branch from 56d6909 to fbbe29e Compare June 25, 2026 13:43
@ThomasK33

Copy link
Copy Markdown
Member Author

@codex review

Good catch — fixed the config/generator drift. Changed the WorkflowRun-timeout exclusion from a path exclusion (EXCLUDE_IMPORT) to a segment exclusion: added "Timeouts" to EXCLUDE_HEAVY in gen-barrel.mjs. Now gen-barrel nulls Timeouts in the generated .cache/titlemap.json, so it stays consistent with the committed cfg.titleMap "Timeouts": null — a future merge of the generated map can no longer drop the exclusion. Verified: re-running gen-barrel emits "Timeouts": null, keeps WorkflowRunToolCall out of ds-barrel.ts, and leaves HeartbeatToolCall present.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🎉

Reviewed commit: fbbe29e310

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@ThomasK33 ThomasK33 added this pull request to the merge queue Jun 25, 2026
Merged via the queue into main with commit 97c0f41 Jun 25, 2026
21 checks passed
@ThomasK33 ThomasK33 deleted the heartbeat-design-sync branch June 25, 2026 13:51
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.

1 participant