Readable accents, the "Cred…" fix and the 1.1.0 release material #25

Merged
claude merged 11 commits from oss-oo/z-readable-accents into main 2026-10-28 01:33:13 +00:00
Member

The family update for Z Usage Monitor 1.1.0, part 2: readable accents, the screenshot corner, the "Cred…" fix and the release material.

Readable accents (from ChatGPT Usage Monitor 1.1.0): UsageFormat.legibleAccent moves an accent in tenths toward the theme text until it reaches 3:1 on the text's side of the popup surface (the content box over the menu actor, blended by alpha). Z's "Z.ai" title gradient, the plan pill and the credit figures and bars use it. Dark popups keep the tuned colors unchanged (pixel diff of dark captures: only countdown text and ring arcs differ, which move with time); on Mint-Y the title, the pill and the credits read again instead of washing out. A title translation that does not start with "Z.ai" stays a plain heading; the pill gets a faint text-colored shade on light popups.

Screenshot corner: the radius comes from the layer that paints the popup (get_border_radius(St.Corner.TOPLEFT), 0 stays square under a top or left panel; the content box in Cinnamon's default theme); theme-read failures in repaint paths are logged once.

"Credits:" no longer reads "Cred…" (pre-existing since 1.0.10): measured in a private session, text widths jump at font hinting thresholds (the line needs 366 px below 100% and 377 px from 100% in its 373 px row), and the font fit's growth step crossed that threshold and kept the overflowing size. A step that no longer fits is taken back; tests/test-credits-fit.js replays the measured widths (fails on the old loop with the live symptom, 377 px at 100.1%).

Release material

  • README screenshots retaken in private sessions (they dated from 1.0.6: tilde markers, 0.00%, minute durations), social preview rendered again from the new plan-only capture.
  • Rights inventory covers every asset again (retired icons out, README captures and the Z.ai chat/ZCode glyphs in) and make check runs tests/check-rights-inventory.py, as claude-usage does; the shared backdrop is named the maintainer-provided AI-generated (ImageGen) artwork it is, not "hand-painted".
  • docs/README.md documents the local state files and the tracking reset SECURITY.md referred to.
  • Skills (repo layer): the release skill follows the station rules (standing approval for the laboratory chain after green checks and a fresh review, fleet law v2 identities, no --validate download, social preview upload, theme probes, README recapture); the live-sync skill knows the replay state and the key-free helper command line.

Not changed: the threshold colors (normal/warning/critical) stay as configured, also on light themes (user settings, same in both siblings); the popup's corner specks in the social preview are a family-wide follow-up; Cinnamon's default theme still stops capture-variant's content check (the scroll bar sits past the visible width, also on 1.0.10).

🤖 Generated with Claude Code

The family update for Z Usage Monitor 1.1.0, part 2: readable accents, the screenshot corner, the "Cred…" fix and the release material. **Readable accents** (from ChatGPT Usage Monitor 1.1.0): `UsageFormat.legibleAccent` moves an accent in tenths toward the theme text until it reaches 3:1 on the text's side of the popup surface (the content box over the menu actor, blended by alpha). Z's "Z.ai" title gradient, the plan pill and the credit figures and bars use it. Dark popups keep the tuned colors unchanged (pixel diff of dark captures: only countdown text and ring arcs differ, which move with time); on Mint-Y the title, the pill and the credits read again instead of washing out. A title translation that does not start with "Z.ai" stays a plain heading; the pill gets a faint text-colored shade on light popups. **Screenshot corner**: the radius comes from the layer that paints the popup (`get_border_radius(St.Corner.TOPLEFT)`, 0 stays square under a top or left panel; the content box in Cinnamon's default theme); theme-read failures in repaint paths are logged once. **"Credits:" no longer reads "Cred…"** (pre-existing since 1.0.10): measured in a private session, text widths jump at font hinting thresholds (the line needs 366 px below 100% and 377 px from 100% in its 373 px row), and the font fit's growth step crossed that threshold and kept the overflowing size. A step that no longer fits is taken back; `tests/test-credits-fit.js` replays the measured widths (fails on the old loop with the live symptom, 377 px at 100.1%). **Release material** - README screenshots retaken in private sessions (they dated from 1.0.6: tilde markers, `0.00%`, minute durations), social preview rendered again from the new plan-only capture. - Rights inventory covers every asset again (retired icons out, README captures and the Z.ai chat/ZCode glyphs in) and `make check` runs `tests/check-rights-inventory.py`, as claude-usage does; the shared backdrop is named the maintainer-provided AI-generated (ImageGen) artwork it is, not "hand-painted". - `docs/README.md` documents the local state files and the tracking reset SECURITY.md referred to. - Skills (repo layer): the release skill follows the station rules (standing approval for the laboratory chain after green checks and a fresh review, fleet law v2 identities, no `--validate` download, social preview upload, theme probes, README recapture); the live-sync skill knows the replay state and the key-free helper command line. **Not changed**: the threshold colors (normal/warning/critical) stay as configured, also on light themes (user settings, same in both siblings); the popup's corner specks in the social preview are a family-wide follow-up; Cinnamon's default theme still stops capture-variant's content check (the scroll bar sits past the visible width, also on 1.0.10). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude agent added 5 commits 2026-10-28 01:01:23 +00:00
The family colors of ChatGPT Usage Monitor 1.1.0, applied to Z's brand
gradient, plan pill and credit accents.

- UsageFormat.legibleAccent moves an accent in tenths toward the theme
  text until it reaches 3:1 on the text's side of the surface; the
  surface is the content box over the menu actor, blended by alpha.
- The "Z.ai" title gradient, the plan pill and the credit figures and
  bars use it; dark popups keep the tuned colors byte for byte, the
  credit bars keep their lighter top only there, the plan pill takes a
  faint text-colored shade on light popups, and a title that does not
  start with "Z.ai" stays a plain heading.
- The screenshot corner reads the painting layer's top-left radius
  (0 stays square, under a top or left panel); theme-read failures in
  repaint paths are logged once per message.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The shared social backdrop is the maintainer-provided, AI-generated
  (ImageGen) abstract artwork, not a hand-painted night landscape
  (ATTRIBUTION.md, the preview source notes, the rights inventory).
- Release skill: the laboratory chain is standing-approved after green
  checks and a fresh independent review (owner 2026-10-27), fleet law v2
  identities, no --validate download, the social preview upload, theme
  probes and the README recapture rule.
- Live-sync skill: the replay state and the key-free helper command line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The six README captures are retaken in private sessions (they dated
  from 1.0.6: tilde markers, 0.00%, minute durations); the social
  preview is rendered again from the new plan-only capture.
- docs/rights-inventory.json covers every asset in the tree again
  (retired chat-bubble/terminal-bot icons out, the README captures and
  the Z.ai chat and ZCode glyphs in, hashes refreshed) and make check
  runs tests/check-rights-inventory.py, as claude-usage does.
- docs/README.md documents the local state files and the tracking
  reset that SECURITY.md referred to.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The credits row allocates its children by their preferred widths while
the consumption tail paints its own Pango width. On 1.0.10's one-decimal
k values the tail preferred 8 px more than it painted; the fit stopped at
100.6% on the paint width, the row overflowed by 4 px and the box
squeezed "Credits:" into "Cred…" (measured in a private session: row
373 px, preferred sum 377 px). The fit now uses the larger of both widths.
tests/test-credits-fit.js replays the measured widths and fails on the
old fit (378.1 px at 101%).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Credits fit: take back a growth step that no longer fits
All checks were successful
Checks / Functional checks (pull_request) Successful in 41s
b35782f153
Measured in a private session (instrumented fit): the preferred and the
painted tail width are equal (239 px); the line needs 366 px below 100%
and 377 px from 100% in its 373 px row, because text widths jump at
font hinting thresholds. The fit's growth loop took the step across the
threshold and kept it, so the box squeezed "Credits:" into "Cred…". The
loop now takes such a step back. The previous commit's preferred/paint
explanation was wrong; its max() of both widths stays as a guard, and
tests/test-credits-fit.js now replays the measured threshold (it fails
on the old loop with 377 px at 100.1%, the live symptom).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
README screenshots and social preview from the final 1.1.0 popup
All checks were successful
Checks / Functional checks (pull_request) Successful in 38s
b9796baed6
Retaken in private sessions on b35782f (the credits fit included):
"Credits:" reads in full again; the pixel differences to the previous set
are the credits line and the time-dependent countdowns. Rights hashes
refreshed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tests: wrong-side accents, the credit bar color, a tail wider than it paints
All checks were successful
Checks / Functional checks (pull_request) Successful in 51s
d6b528f601
Closes three survivors of the accents mutant run: an accent readable only
on the wrong side of a mid-dark surface follows the text color, the
credit bars run the readable credit color, and a tail whose preferred
width exceeds its painted width is fitted by the preferred width. The
remaining survivor (skipping fully transparent layers) is equivalent: a
zero alpha adds nothing to the blend.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review round 1 (#25): settled credits fit, readable figures, provenance
All checks were successful
Checks / Functional checks (pull_request) Successful in 35s
34f9264a17
- The credits fit takes a growth step back only on a real overflow (the
  slop band no longer rejects steps that fit), and a size that fits and
  is the largest whole step that does stays: later passes no longer
  pulse the line between two sizes.
- The balance figure is fully opaque on light popups (76% pulled the
  readable color back below 3:1); the plan pill's gradient reads against
  the pill's own shade; an accent the surface does not change keeps its
  own form, so a translucent rgba() normal color stays translucent.
- The rights records no longer claim a fallback background generator
  that does not exist.
- Release skill: the test count, and the live sync named as the
  documented release-chain step.
- Tests: multi-pass stability (threshold and smooth widths), the opaque
  figure, translucent settings, the pill shade.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
README screenshots and social preview from the settled credits fit
All checks were successful
Checks / Functional checks (pull_request) Successful in 44s
6ec4bc042b
Retaken in private sessions on 34f9264; rights hashes refreshed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review round 2 (#25): growth tries every step; light popups paint opaque
All checks were successful
Checks / Functional checks (pull_request) Successful in 37s
0e5ff23d51
- The credits fit's growth loop always tries the next whole step and
  keeps it only if the line still fits, so narrower rows and shorter text
  settle on the same size every pass too (the reviewer's drifting cases:
  a 360 px row, text 2% shorter).
- A translucent normal color keeps its own form only on dark popups; a
  light popup gets the opaque readable color.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
README screenshots and social preview from the final credits fit
All checks were successful
Checks / Functional checks (pull_request) Successful in 40s
621816d5a8
Retaken in private sessions on 0e5ff23 (the merge payload); rights
hashes refreshed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent merged commit aa62a52f4d into main 2026-10-28 01:33:13 +00:00
claude agent deleted branch oss-oo/z-readable-accents 2026-10-28 01:33:13 +00:00
ClaudiuSchuster referenced this pull request from a commit 2026-10-28 01:35:58 +00:00
claude agent referenced this pull request from a commit 2026-10-28 01:54:07 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
OSS-Singularity/cinnamon-z-usage!25
No description provided.