Skip to content

πŸš€ Promote develop β†’ main - #22

Merged
quotentiroler merged 7 commits into
mainfrom
develop
Aug 30, 2026
Merged

quotentiroler merged 7 commits into
mainfrom
develop

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Standing promotion PR, kept up to date by auto-pr.yml.

Merging this publishes brandc to the public npm registry. release.yml runs on
push to main and ships whatever package.json says, so bump the version in the PR
that adds the change rather than here. A merge whose version is already published
publishes nothing and says so in the run summary, which keeps a docs- or CI-only
merge green.

quotentiroler and others added 7 commits August 8, 2026 10:15
changelog-release.mjs claimed to refuse an undocumented release. It did not.
`/## \[Unreleased\]\s*\n([\s\S]*?)(?=\n## \[|$)/` let `\s*\n` consume the newline
the lookahead needed, so an EMPTY [Unreleased] captured the NEXT release's
section instead. That capture is non-empty, so the "document the changes first"
guard passed, and reinserting the swallowed text hid the damage. It is why 0.6.1
was stamped with no notes at all while the run stayed green.

Sections are now located by index, so the body can never reach past the next
heading. promoteChangelog is exported and pinned by test/changelog.test.mjs,
including the exact input that produced the empty 0.6.1.

Also documents what 0.6.1 actually contained, and carries the ci.yml β†’ check.yml
rename that missed the #19 merge.

0.6.2, not 0.7.0. The rhythm tokens deserved a minor but already shipped in
0.6.1, so a 0.7.0 now would publish byte-identical dist under a new number while
stranding every `^0.6.0` consumer behind a manual range bump for no new code.
The mislabelling is a documentation problem and is fixed in the changelog.
fix(release): stop the changelog gate failing open, and release 0.6.2
TypeScript was ^7.0.2 here and ^6.0.3 in every other max-network repo. We are
not moving to 7 yet, so this is the one repo that had, quietly and alone.
Pinned back to ^6.0.3; typecheck, build and all 38 tests pass on it.

@types/node was ^24.0.0 while CI runs Node 22 and the rest of the org pins
^22.20.1. Typing against a newer runtime than you execute on is how code
compiles here and fails there, since the types describe APIs the runtime does
not have. Now matches what actually runs.

auto-pr.yml calls the org's shared definition. Its header said it was "Copied
from max-network/worker-utils' auto-pr.yml ... rather than reinvented" β€” the
right instinct aimed at a copy, and after this it was the last one left in
the org.

release.yml is deliberately NOT shared, and now says so. brandc publishes to
the PUBLIC npm registry while the shared publish workflow targets GitHub
Packages under the @max-network scope, so they are not the same pipeline
wearing different names.
Reverts the previous commit's switch to max-network/.github. brandc is
PUBLIC and the shared workflow repo is private, and a public repository
cannot call a private repository's reusable workflow -- it fails at startup
with no job and no log, which is how the run went red.

hono-cms-core is in the same position for the same reason. I had already hit
this there and still did not check visibility before converting here; the
header now records the constraint so the next attempt does not repeat it.

The TypeScript 6 pin and the @types/node alignment from the previous commit
stand; only the workflow reverts.
CONTRACT_SCALARS stopped at `radius-lg`. Tailwind's ladder does not β€” it runs on
through `rounded-xl`, `-2xl`, `-3xl`, `-4xl` β€” and a step the brand leaves
undefined falls through to Tailwind's own default. So `maxhealth`, whose whole
shape language is flat and sharp (`radius: 0rem`, every shadow `none`), still
rendered `rounded-xl` at 0.75rem and `rounded-3xl` at 1.5rem.

Consumers noticed and each patched it locally: proxy-smart-admin-ui carries
`--radius-xl` through `--radius-4xl: 0rem` in its own `@theme inline` with a
comment explaining the contract "only flattens through --radius-lg", and
patient-portal and consent-app carry `calc(var(--radius) * 1.8 | 2.2 | 2.6)`
variants of the same idea. Three hand-written completions of one contract is the
drift this package exists to prevent, so the contract absorbs them.

`maxhealth` sets all four to `0rem`. `dashboard` continues its ladder β€” 1, 1.5, 2,
2.5rem β€” staying one step above Tailwind's defaults as its lower steps already do.
`toTailwindCss` maps every scalar by reference, so both files pick the new tokens
up with no change to the emitters.

The two pinned counts moved deliberately: scalars 26 -> 30, contract 78 -> 82, with
the README's stated size updated to match. Both are guarded by tests precisely so
this cannot happen as a side effect.

Verified: npm run check β€” build clean, 38 tests pass.
feat(contract): complete the radius ladder through 4xl
@quotentiroler
quotentiroler merged commit 7a94d9d into main Aug 30, 2026
3 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