Repository navigation
1.39.0: staggered restores, CI performance gate, release notes - #54
Merged
Merged
Conversation
…n every push qa:perf-gate drives a fixture agent through idle, working (two tiles repainting at 10fps) and a 20,000-line stream, and fails on what DevDeck has actually shipped before, in units that do not depend on the runner: running CSS animations and DOM churn on an idle deck, DOM churn outside the terminals while working, the main process's longest event-loop stall, and long UI tasks. Each limit was checked against its regression injected on purpose: infinite CSS animation -> idle running animations 1 (limit 0) sidebar render per PTY chunk -> 8,395 mutations outside terminals (limit 400; normal 145) 700ms sync block in main -> stream main-process stall 710ms (limit 600; normal ~13) The Windows journey job also runs qa:images, qa:images-remote and qa:update now, and gets 20 minutes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NLGwiBY5uEivJqERQzcoY
…t finished starting Restores were sequential in name only: each step returned as soon as the process existed, so eight `claude --resume` startups ran at once. Measured with a 133MB transcript: one resume peaks at 1.6GB and ~10 CPU-seconds; four at once peaked at 6.6GB and 88 CPU-seconds within five seconds, and each kept ~1.3GB afterwards. The paired PC in the field log restores ~8 sessions after every reconnect (offline periods: 31, median 78s), and has had transcripts past 500MB — every core and many GB at once is the "other PC freezes for two or three minutes" report. Launch restore, restore after an update, "Restore all" and the update-all reopen now wait for each agent to finish starting (output arrived, then 1.5s quiet; or 6s of silence for an already-running adopted session; at most 12s) before starting the next. qa/restore-pacing.mjs: a fixture agent that draws for 2s while it boots. Before: launch gaps of 48, 49 and 26ms. After: 4.2s each. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NLGwiBY5uEivJqERQzcoY
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NLGwiBY5uEivJqERQzcoY
The perf gate waited for its fixture's marker in the VISIBLE rows, and a screen printed before the terminal reached its final size scrolls it out of view — which staggered restores made routine. It now reads each session's output buffer, and only the stream's end is required on screen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NLGwiBY5uEivJqERQzcoY
A multi-line pwsh run step fails only on its last command's exit code, so an earlier harness could fail without failing the step. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NLGwiBY5uEivJqERQzcoY
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
claude --resumeof a 133MB transcript peaks at 1.6GB / ~10 CPU-s; four at once 6.6GB / 88 CPU-s in 5s — the "other PC freezes 2–3 min" report (field log: ~8 sessions restored per reconnect, 31 offline periods, median 78s). Harness: launch gaps 48/49/26ms → 4.2s each.qa:perf-gate): fixture agent; idle animations/DOM churn, chrome churn while working, main-process stalls, long tasks. Each limit verified by injecting its regression.Supersedes #53.
Test plan
🤖 Generated with Claude Code
https://claude.ai/code/session_016NLGwiBY5uEivJqERQzcoY