Skip to content

feat(layout): grace-28 preset — 12 + 12 + inner ring of 4 - #133

Merged
pyramation merged 1 commit into
mainfrom
feat/grace-28
Sep 21, 2026
Merged

pyramation merged 1 commit into
mainfrom
feat/grace-28

Conversation

@pyramation

Copy link
Copy Markdown
Contributor

Summary

Grace Cathedral got three more lasers (25 → 28). New preset grace-28 keeps the two rings of twelve exactly as in grace-cathedral (indices 1–24 unchanged, so venue numbering and BEYOND mapping still hold) and replaces the centre dot with a ring of four at radius 0.25 (indices 25–28, a diamond at 12/3/6/9 o'clock).

'grace-28': () => ringsLayout({
  rings: [
    { count: 12, radius: 1, phase: 15 },
    { count: 12, radius: 0.62 },
    { count: 4, radius: 0.25 }
  ], ...
})

grace-cathedral is left untouched. Also added a "Grace 28" layout filter in the animation catalog and listed the preset in the CLI README. Test checks count, that fixtures 0–23 sit at the same positions as grace-cathedral, and that the four centre fixtures are ring 0 at radius 0.25.

Link to Devin session: https://app.devin.ai/sessions/c4872c2982734093bdee80d04a7d5ceb
Open in Devin Desktop: https://app.devin.ai/desktop/session/c4872c2982734093bdee80d04a7d5ceb?variant=devin
Requested by: @pyramation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@tenki-reviewer

tenki-reviewer Bot commented Sep 21, 2026

Copy link
Copy Markdown

Review complete. 🟠 1 high

📍 Findings outside the diff (1) — 🟠 1 high — defects on lines GitHub can't attach comments to

🟠 High — Catalog test omits new grace-28 filter

This PR adds the grace-28 entry to layoutFilters() (packages/animations/src/catalog.ts:161), but packages/server/__tests__/catalog.test.ts still asserts the old four-element id list, so the toEqual check fails once the change lands. The adjacent consumer touch-points were updated consistently, but this server catalog test was missed; the failure blocks CI.


This PR introduces a grace-28 layout preset built on ringsLayout, combining a 12-cannon outer ring, a 12-cannon mid ring (positions 1-24 preserved from grace-cathedral), and a 4-cannon centre ring at radius 0.25. The preset is registered in presets.ts, exposed via layoutFilters() in catalog.ts:161, documented in the CLI README, and covered by a new layout config unit test.

The catalogue and consumers were updated consistently, but one consumer, the server catalog test, was missed: adding the new filter makes layoutFilters() return five ids while packages/server/__tests__/catalog.test.ts:54 still asserts the old four-element list, so the toEqual assertion fails and blocks CI.

Files Change
packages/layout/src/presets.ts Adds the grace-28 rings layout preset definition
packages/animations/src/catalog.ts Registers the grace-28 entry in layoutFilters()
packages/layout/__tests__/config.test.ts Adds a unit test validating the grace-28 resolve and fixture indexing
packages/cli/README.md Documents grace-28 as an available preset

Reviewed commit: c46959e

@pyramation
pyramation merged commit 84560d7 into main Sep 21, 2026
5 of 6 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.

1 participant