Skip to content

fix(cmux-next stats): a week or a month draws one row of days across the page - #22954

Merged
teamleaderleo merged 2 commits into
feat-cmux-nextfrom
cmux/layout-pass-stats
Oct 21, 2026
Merged

teamleaderleo merged 2 commits into
feat-cmux-nextfrom
cmux/layout-pass-stats

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Layout pass, running list (lane: layout-pass; full list in cmuxterm-hq knowledge/layout-pass.md)

What

Stats draws activity as a week-column heatmap, 12px cells with one column per week. That works for 12 weeks. A week was two thin columns and a month was five, at the left edge of an 850px section.

  • A week or a month (31 days or fewer) now draws one row of days across the page, on the same 2px rhythm as the Time of day bars below it. Under a week each day is labelled with its weekday. Under a month, today and every seventh day before it show their date. Tooltips are unchanged.
  • 12 weeks keeps the week-column heatmap.
  • The store started out claiming a read was already on its way, so setRange(84) before start() read nothing. The app calls start() and never hit this, but the gallery's 12-week ("quarter") state sat on "Loading…". The store now starts idle.

Test

bun test test/stats-page.test.tsx (jsdom). New cases:

  • a week renders seven days in one row, labelled Tue to Mon with today last, and no heatmap grid;
  • a month renders 30 days, dated only on today and every seventh day before it;
  • 12 weeks keeps the 84-cell heatmap;
  • picking the default range before the first read starts a read.

Results:

  • Base (red commit 7931c3c): all four fail.
  • Head: 14 pass.

Screenshots

The Stats page's ?mock dev entry, Activity and Time of day sections. Before is the base, after is this branch.

Before After
Week, 900, dark
Week, 360, light
Month, 640, light
Month, 360, dark

Observed / Not run

  • Observed: the test above, red then green. tsc --noEmit reports no errors in the changed files. Clean: oxlint, vp fmt and every check:* script in webviews. prepush-gate.py: no new violations.
  • vp fmt also reflowed the five one-line heat-level rules in styles.css; their values are unchanged.
  • Not run locally: the full vp check and a gallery build, because heavy jobs are off huge-blue. The stills come from the dev entry, not the gallery.

Changelog

none (Stats is a preview feature until styled)

Agent session: huge-blue

🤖 Generated with Claude Code

teamleaderleo and others added 2 commits October 21, 2026 04:47
… page; the default range loads when picked first

The week-column heatmap drew a week as two 12px columns in an 850px section,
and a month as five. Ranges up to 31 days now draw one row of days on the hour
bars' rhythm, labelled with the weekday, or the date every seventh day. The
store no longer starts out claiming a read is on its way, so setRange(84) before
start() reads it (the gallery's 12-week state sat on Loading).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c2a-ee79-7910-9d76-ef0536b9880d&host=huge-blue
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

owner: 01a15c2a-ee79-7910-9d76-ef0536b9880d

@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 9ab7539: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr22954 -f ref=cmux/layout-pass-stats -f platform=macos -f backend_mode=local

Unclear: web / react-apps-check failed: no known signature; failed step: Check webview test shards. This PR merged before its CI finished: fix forward on main.

CI failed on 9ab7539dfe (run 39546342049 attempt 1): 4 code, 1 unknown.

Job Verdict Why
web / react-apps-check (3) code a web test failed
web / react-apps-check (1) code a web test failed
web / react-apps-check (4) code a web test failed
web / react-apps-check (2) code a web test failed
web / react-apps-check unknown no known signature; failed step: Check webview test shards

Failures:

  • seen on other PRs agent-pane-trust-ask-corner.test.ts the trust bar's corner is the composer card's: failed (job)
  • seen on other PRs agent-pane-trust-ask-corner.test.ts no caption stands between the open trust question and the card: failed (job)
  • seen on other PRs composer-mention.test.ts @ then letters lists the chat's matching files and Return writes the path: failed (job)
  • seen on other PRs composer-mention.test.ts after picking a path markdown escapes, typing on leaves the picker closed: failed (job)
  • seen on other PRs composer-mention.test.ts @proje lists other chats, then folders, then the chat folder's files: failed (job)
  • seen on other PRs composer-mention.test.ts a chat named for a long prompt does not take @app from the file: failed (job)
  • seen on other PRs composer-mention.test.ts a bare @ lists the most recent other chats: failed (job)
  • seen on other PRs composer-mention.test.ts an @ inside a word opens nothing and asks the host for nothing: failed (job)
  • seen on other PRs agent-pane-soft-edges.test.ts the transcript fades under the header once scrolled, and above the composer while more lies below: failed (job)
  • seen on other PRs composer-history.test.ts ↑ and ↓ in an empty prompt step through the chat's earlier prompts: failed (job)
  • ... 16 more in the job logs
Matched log lines
web / react-apps-check (3): (fail) the trust bar's corner is the composer card's [4666.08ms]
web / react-apps-check (1): (fail) the transcript fades under the header once scrolled, and above the composer while more lies below [4127.16ms]
web / react-apps-check (4): (fail) queued and steering prompts > the queue takes its own place in the stack: nothing is cut off or drawn over [1284.69ms]
web / react-apps-check (2): (fail) no description line on any Settings page is over 60 characters, in any language [14841.94ms]

Not re-run automatically: web / react-apps-check (3), web / react-apps-check (1), web / react-apps-check (4), web / react-apps-check (2), web / react-apps-check are not machine failures.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

red: web / Web status; base red: the same failure on the base f6b021a; does not block
red: web / react-apps-check; base red: the same failure on the base f6b021a; does not block
red: web / react-apps-check (1); base red: the same failure on the base f6b021a; does not block
red: web / react-apps-check (2); base red: the same failure on the base f6b021a; does not block
red: web / react-apps-check (3); base red: the same failure on the base f6b021a; does not block
red: web / react-apps-check (4); base red: the same failure on the base f6b021a; does not block

CI fast guards failed on 9ab7539dfe (https://github.com/manaflow-ai/cmux/actions/runs/39546287682). It does not block the merge; a red guard merged into main breaks it for every open PR.
The log named no failed step; see the run.

Agents: python3 scripts/ci/guard_attribution.py fix applies the mechanical fixes locally.

Tour of 9ab7539dfe (run): no media. The tour did not run: only webview code changed (5 path(s)), which the gallery advisory run checks in Linux Chromium on the pull request (its artifact holds any captures); add the media-tour-mac label to tour it on a Mac.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-utxmh created for this PR by the cmux coordinator.

@blacksmith-sh

blacksmith-sh Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Found 24 test failures on Blacksmith runners:

Failures

Test View Logs
src/pages/settings/rowSummary.test.tsx/rowSummary.test.tsx View Logs
src/pages/settings/rowSummary.test.tsx/rowSummary.test.tsx View Logs
test/agent-pane-adopted-tool-calls.test.ts/agent-pane-adopted-tool-calls.test View Logs
test/agent-pane-adopted-tool-calls.test.ts/agent-pane-adopted-tool-calls.test View Logs
test/agent-pane-column-edges.test.ts/agent-pane-column-edges.test View Logs
test/agent-pane-column-edges.test.ts/agent-pane-column-edges.test View Logs
test/agent-pane-queue-steer.test.ts/agent-pane-queue-steer.test View Logs
test/agent-pane-queue-steer.test.ts/agent-pane-queue-steer.test View Logs
test/agent-pane-soft-edges.test.ts/agent-pane-soft-edges.test View Logs
test/agent-pane-soft-edges.test.ts/agent-pane-soft-edges.test View Logs

...and 14 more test failures. View all on Blacksmith

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

teamleaderleo added a commit that referenced this pull request Oct 21, 2026
…y are allowed

tooltip-rules also fails on base for the saved environment's folder face
(#22406, full path behind a short name), the rail's checks mark and background
task command (#22368, text for screen readers only / cut with an ellipsis) and
the stats day cell (#22954, date and working time behind a short label). Each
title says what the visible text does not, so each gets tooltip-allow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-a2fb-7ac0-84d5-432ffea53b8b&host=cosmic-gray
teamleaderleo added a commit that referenced this pull request Oct 21, 2026
…ay why) (#23053)

* fix(webviews): Send now's help tooltip is allowed (tooltip-rules red on base)

#22834 gave the waiting steer's Send now button a title; tooltip-rules fails
on it because the button shows its own text. The title says what the text does
not (it stops only the current step, the turn goes on), so it is marked
tooltip-allow with that reason.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-a2fb-7ac0-84d5-432ffea53b8b&host=cosmic-gray

* fix(webviews): four more tooltips red on base are marked with why they are allowed

tooltip-rules also fails on base for the saved environment's folder face
(#22406, full path behind a short name), the rail's checks mark and background
task command (#22368, text for screen readers only / cut with an ellipsis) and
the stats day cell (#22954, date and working time behind a short label). Each
title says what the visible text does not, so each gets tooltip-allow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-a2fb-7ac0-84d5-432ffea53b8b&host=cosmic-gray

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant