Skip to content

fix(ci): ratchet file sizes against the base tree - #3352

Merged
wesbillman merged 2 commits into
mainfrom
carl/differential-file-size-check
Jul 28, 2026
Merged

fix(ci): ratchet file sizes against the base tree#3352
wesbillman merged 2 commits into
mainfrom
carl/differential-file-size-check

Conversation

@wesbillman

Copy link
Copy Markdown
Collaborator

Summary

  • replace the whole-tree file-size gate with a stateless differential ratchet
  • allow inherited files over 1,000 lines to hold or shrink, but never grow
  • delete the 44-entry numeric override ledger and run the same policy across Desktop, Web, and Mobile CI
  • fail closed when the local base cannot be resolved and cover policy, Git status parsing, and base resolution in unit tests

This removes the shared mutable policy state that caused unrelated PRs to fail after neighboring merges. It does not by itself prevent two stale green PRs from becoming invalid when combined; that requires merge queue or up-to-date branch enforcement.

Related issue

None found. This follows the design discussion in the linked Buzz channel.

Testing

  • node --test scripts/check-file-sizes-core.test.mjs (6/6)
  • Desktop, Web, and Mobile ratchet entrypoints
  • just desktop-check
  • just web-check
  • Mobile analysis
  • git diff --check

The repository pre-push suite also exposed an unrelated existing Mobile widget failure in ChannelDetailPage keeps follow mode off while a tall newest message stays visible; it reproduces in isolation and this branch does not touch Mobile widget behavior.

@wesbillman
wesbillman requested a review from a team as a code owner July 28, 2026 18:35
Compare only files changed from the tested base tree. New and compliant
files retain the 1000-line ceiling; inherited oversized files may hold
or shrink but may not grow. This removes the shared numeric override
ledger that made unrelated PRs inherit main-side failures.

Co-authored-by: Carl <c7ebe626f000404285d3686e1dc74cc07cc60a9754a150041ba132e14bd3e2ec@buzz.block.builderlab.xyz>
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
@wesbillman
wesbillman force-pushed the carl/differential-file-size-check branch from cc8ead5 to edae41f Compare July 28, 2026 19:37
@wesbillman
wesbillman enabled auto-merge (squash) July 28, 2026 19:48
@wesbillman
wesbillman disabled auto-merge July 28, 2026 19:48
@cameronhotchkies cameronhotchkies added the triage-ready Appropriate for agentic review label Jul 28, 2026
Resolve the desktop checker conflict by retaining the differential check and
removing the shared override ledger as intended by this branch.

Co-authored-by: Carl <c7ebe626f000404285d3686e1dc74cc07cc60a9754a150041ba132e14bd3e2ec@buzz.block.builderlab.xyz>
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
@wesbillman
wesbillman enabled auto-merge (squash) July 28, 2026 21:50
@wesbillman
wesbillman merged commit 9227bdf into main Jul 28, 2026
32 checks passed
@wesbillman
wesbillman deleted the carl/differential-file-size-check branch July 28, 2026 22:17
tlongwell-block pushed a commit that referenced this pull request Jul 28, 2026
…-lock-order

* origin/main:
  fix(ci): ratchet file sizes against the base tree (#3352)

Signed-off-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@buzz.block.builderlab.xyz>
dophsquare pushed a commit to linxule/buzz that referenced this pull request Jul 28, 2026
* origin/main:
  feat: add explicit entry for claude-opus-5 in model config (block#2831)
  fix(desktop): clear stale thread new-message pill (block#3411)
  fix(ci): ratchet file sizes against the base tree (block#3352)

Co-authored-by: Phuoc (Phu) Do <91568955+dophsquare@users.noreply.github.com>
Signed-off-by: Phuoc (Phu) Do <91568955+dophsquare@users.noreply.github.com>

# Conflicts:
#	desktop/scripts/check-file-sizes.mjs
tlongwell-block pushed a commit that referenced this pull request Jul 29, 2026
…size gate

main's new base-tree file-size ratchet (#3352) flags UserProfilePanel.tsx
and UserProfilePanelSections.tsx: this branch's card-mint wiring pushed
both past 1000 lines. Move the primary-action button row components to
UserProfilePrimaryActions.tsx and fold the snapshot-export + card-mint
dialogs into UserProfilePersonaDialogs.tsx. No behavior change.

Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
tlongwell-block pushed a commit that referenced this pull request Jul 29, 2026
* origin/main:
  feat: add explicit entry for claude-opus-5 in model config (#2831)
  fix(desktop): clear stale thread new-message pill (#3411)
  fix(ci): ratchet file sizes against the base tree (#3352)
  chore(ci): bump desktop smoke E2E timeout to 30 minutes (#3409)
  release(chart): publish 0.1.7 (#3393)

Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@buzz.block.builderlab.xyz>
Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
surfingdev pushed a commit to surfingdev/buzz that referenced this pull request Jul 29, 2026
Editing "Who can talk to this agent" on a running managed agent instance
already persisted respond_to/respond_to_allowlist correctly, but the
harness process keeps the old gate baked into its env until restarted.
update_managed_agent never auto-restarts by design, and the only signal
was a passive "Restart required" badge — easy to miss, especially for an
agent that's continuously busy and never hits the idle-gated auto-restart
window (buzz#2501, buzz#2950).

Offer an immediate "Restart now" action in the save toast when the save
changed the gate and the backend confirms drift, reusing existing
respawn/restart primitives (respawnManagedAgentWithRules,
startManagedAgent/stopManagedAgent, clearActiveTurnsForAgentOnStop).

Rebased onto main's block#3352 (stateless file-size ratchet against the base
tree, replacing the static override ledger): AgentInstanceEditDialog.tsx
was already over the line cap and can no longer grow at all, so the
pre-existing "saved while stopped -> Start now" toast is extracted
alongside the new restart prompt into agentSaveOutcomePrompts.ts
(renamed from respondToRestartPrompt.ts), leaving the call site as a
net line reduction instead of a net addition. No behavior change to
either toast.

Signed-off-by: Ivan Itzcovich <surfingdevs@gmail.com>
atishpatel added a commit that referenced this pull request Jul 29, 2026
…ounting-and-solo

* origin/main:
  fix(acp): per-runtime env defaults at spawn — isolate Hermes from configured MCP startup (#3420)
  fix(relay): avoid subscription lock inversion (#3413)
  feat: add explicit entry for claude-opus-5 in model config (#2831)
  fix(desktop): clear stale thread new-message pill (#3411)
  fix(ci): ratchet file sizes against the base tree (#3352)
  chore(ci): bump desktop smoke E2E timeout to 30 minutes (#3409)
  release(chart): publish 0.1.7 (#3393)

Signed-off-by: Atish Patel <atish@squareup.com>
kbst9 added a commit to kbst9/buzz that referenced this pull request Jul 29, 2026
…e ratchet

Upstream block#3352 replaced the override map with a base-tree ratchet, so
the AppShell override entry no longer exists. Hoisting the
activeCommunity relay-url expression next to the other derivations
collapses the 3-line JSX prop to one line: 999 lines, under the limit
outright.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: kbst9 <kevinbsteiner@gmail.com>
kbst9 added a commit to kbst9/buzz that referenced this pull request Jul 29, 2026
Upstream block#3352's base-tree ratchet re-litigates fork-carried growth on
every deploy check because deploy's merge-base is always upstream's
tip. Record the delta-base convention (CHECK_FILE_SIZES_BASE=HEAD^1,
matching upstream CI's own semantics) for deploy runs; feature
branches keep the default so they stay upstreamable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: kbst9 <kevinbsteiner@gmail.com>
tlongwell-block pushed a commit that referenced this pull request Jul 29, 2026
* origin/main:
  feat(agent): fix Anthropic prompt caching with Databricks (+ MCP proxy/TLS passthrough) (#3463)
  Fix mobile attachment and gallery polish (#3370)
  fix(acp): per-runtime env defaults at spawn — isolate Hermes from configured MCP startup (#3420)
  fix(relay): avoid subscription lock inversion (#3413)
  feat: add explicit entry for claude-opus-5 in model config (#2831)
  fix(desktop): clear stale thread new-message pill (#3411)
  fix(ci): ratchet file sizes against the base tree (#3352)
  chore(ci): bump desktop smoke E2E timeout to 30 minutes (#3409)
  release(chart): publish 0.1.7 (#3393)
  feat(acp): steer claude-code and codex agents via _session/steering (#3007)
  feat(desktop): apply WebKit rendering workarounds at startup on Linux (#3271)
  fix(desktop): stabilize flaky DM expansion E2E ordering assertions (#2004)
  docs(contributing): document the Linux system libraries just ci requires (#3396)
  fix(desktop): paint community rail full height (#3382)
  fix(acp): disable goose cron scheduler in managed agent children (#3144)
  feat(desktop): add custom harness inline from agent dialogs (#3252)
  chore(compose): remove stale typesense env vars (#3332)
  feat(desktop): refine agent catalog sharing (#2439)
  fix(desktop): keep drafts out of the Inbox All view (#3217)
  docs: restructure DCO guidance into scannable subsection (#3337)
  Unify mobile loading spinners (#3314)
  fix(desktop): restore the inbox icon in the sidebar (#3341)
  fix(desktop): gate codex-acp on a minimum supported version (#3254)
  feat(cli): add users set-status command for NIP-38 profile status (#3253)
  fix(composer): scope multiline block formatting (#3246)
  feat(chart): add relay pod extension points (#3322)
  Refine mobile attachment picking (#3313)
  Polish mobile message and search layouts (#3121)
  Add mobile message image galleries (#3312)
  chore(release): release Buzz Desktop version 0.5.0 (#3213)

Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
wesbillman added a commit that referenced this pull request Jul 29, 2026
## Buzz Desktop release v0.5.1

### Changes since v0.5.0:

- perf(desktop): move observer-feed archive and decrypt commands off
main thread ([#3415](#3415))
([`294c8c821`](294c8c8))
- fix(desktop): preserve shared agent fidelity
([#3553](#3553))
([`f7a3988ba`](f7a3988))
- feat(agent): route Claude/GPT model families to their native gateway
wire ([#3538](#3538))
([`6438dedf8`](6438ded))
- Refine community invite limits
([#3529](#3529))
([`24d90d128`](24d90d1))
- feat(agent): fix Anthropic prompt caching with Databricks (+ MCP
proxy/TLS passthrough)
([#3463](#3463))
([`c405ad1d4`](c405ad1))
- feat: add explicit entry for claude-opus-5 in model config
([#2831](#2831))
([`90e058ebf`](90e058e))
- fix(desktop): clear stale thread new-message pill
([#3411](#3411))
([`55a3ed7b9`](55a3ed7))
- fix(ci): ratchet file sizes against the base tree
([#3352](#3352))
([`9227bdf58`](9227bdf))
- feat(desktop): apply WebKit rendering workarounds at startup on Linux
([#3271](#3271))
([`3ece4461d`](3ece446))
- fix(desktop): stabilize flaky DM expansion E2E ordering assertions
([#2004](#2004))
([`913d564ce`](913d564))
- fix(desktop): paint community rail full height
([#3382](#3382))
([`1d3b810ad`](1d3b810))
- feat(desktop): add custom harness inline from agent dialogs
([#3252](#3252))
([`b0503d80c`](b0503d8))
- feat(desktop): refine agent catalog sharing
([#2439](#2439))
([`a35771fc4`](a35771f))
- fix(desktop): keep drafts out of the Inbox All view
([#3217](#3217))
([`3afa129ee`](3afa129))
- fix(desktop): restore the inbox icon in the sidebar
([#3341](#3341))
([`00ede2e7a`](00ede2e))
- fix(desktop): gate codex-acp on a minimum supported version
([#3254](#3254))
([`4e3998f36`](4e3998f))
- feat(cli): add users set-status command for NIP-38 profile status
([#3253](#3253))
([`60158fce3`](60158fc))
- fix(composer): scope multiline block formatting
([#3246](#3246))
([`5457c947a`](5457c94))

**To release:** merge this PR. The tag and build will happen
automatically.

Signed-off-by: Wes <wesbillman@users.noreply.github.com>
wpfleger96 added a commit that referenced this pull request Jul 29, 2026
main's file-size ratchet (#3352) replaced the static per-file override map
with a git-diff base comparison, dropping the 1025-line ceiling that
UserProfilePanel.tsx had been living under. The 7-day ingress query was
agent-usage logic sitting in a profile file; moving it home puts the panel
back under the 1000-line limit with no behavior change.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
wpfleger96 added a commit that referenced this pull request Jul 30, 2026
The stateless file-size ratchet added in #3352 lets no already-over-limit file
grow, and a mandatory ManagedAgentRecord field adds one line to every struct
literal. Reclaimed the delta by condensing verbose comment blocks in the same
files, keeping every fact each block carried.

One reclaim is a correction rather than a reflow: the BUZZ_ACP_SETUP_PAYLOAD
note claimed the reserved-key strip depends on running after the user-env
write, but guard 1 (RESERVED_ENV_KEYS) is order-independent, so the ordering
caveat was misleading.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

triage-ready Appropriate for agentic review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants