refactor: give the build status one owner and repair the tooling - #110
Merged
leoafarias merged 3 commits intoSep 8, 2026
Merged
Conversation
|
Visit the preview URL for this PR (updated for commit c2eb121): https://superdeck-dev--pr110-refactor-build-lifec-sp7omb78.web.app (expires Thu, 08 Oct 2026 19:27:08 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: bd68fc230762285849207e7e120aaf87cd4ca2f9 |
leoafarias
force-pushed
the
refactor/build-lifecycle
branch
2 times, most recently
from
September 8, 2026 19:00
ff15282 to
4ccab97
Compare
DeckBuilder now publishes the failure status for a direct build and for a watch build, so the CLI and the watch stream no longer write it themselves. The CLI keeps reporting failures raised before a builder starts. A failed status write no longer replaces the original build error. FileDeckLoader processes the status snapshot it already read, so one cycle cannot emit events for content that arrived after the comparison started. The `brb` and `brbc` aliases call the existing build-runner scripts again, and the unused `mix_lint` command is gone. The test scripts and AGENTS.md now state which command covers the package, desktop, browser, and live generation layers.
leoafarias
force-pushed
the
refactor/build-lifecycle
branch
from
September 8, 2026 19:19
4ccab97 to
cc55ed3
Compare
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.
Intent
Build failure status had two writers,
FileDeckLoaderread the status file twice per cycle, and two melos aliases pointed at scripts that no longer exist.This is PR 3 of a three-PR stack. It targets
refactor/generation-lifecycle(#109). Review the incremental diff against that branch.Changes
One build-status owner —
DeckBuilderpublishes the failure status for a direct build and for a watch build. The watch stream and the CLI no longer write it. The CLI keeps reporting failures raised before a builder starts, which is the only case a builder cannot own. A failed status write is logged and no longer replaces the original build error.Loader reads once —
FileDeckLoader._processStatustakes the snapshot the cycle already read and compares later, so one cycle cannot emit events for content the build replaced after the comparison started.Tooling —
brbandbrbccallbuild_runner:buildandbuild_runner:cleanagain. Thecustom_lint_analyzecommand is removed: its--depends-on=mix_lintfilter selected zero packages, and no package depends onmix_lint. Thecustom_lintanalyzer plugin inshared_analysis_options.yamlis untouched.Command clarity — the melos test script descriptions and the AGENTS.md testing section now state which command covers the package, desktop, browser, and live generation layers, and that no melos command runs the live generation tests. The live example selects the intended 10-slide fixture explicitly and explains the define-file requirement. Package responsibilities and internal-import guidance now match the workspace. All 16 documented Melos script names were checked against
pubspec.yaml.Remaining review work — the maintainer review plan now records the completed cleanup and keeps only the Markdown behavior contract, renderer comparison, and shared parser assembly review. Those changes remain a separate effort.
Plugin ordering, build serialization, watcher fallback behaviour, and CLI output formats are unchanged.
Impacted packages
packages/builderpackages/clipackages/superdeckpubspec.yaml,AGENTS.md, and the remaining Markdown review planTests
deck_builder_test.dart— failure status for a direct build, a later successful build replacing the failure status, and the build error surviving a failed status write.deck_builder_watch_test.dart— failure status for a watch build.file_deck_loader_snapshot_test.dart— the cycle emits the snapshot it read. It usesIOOverridesto script the status reads and fails on the pre-change double read.Commands run
Earlier platform validation reported both build aliases passing with no generated diff, 39/39 macOS integration tests, and 10/10 Chromium/WebKit tests. Those checks were not rerun locally for the documentation follow-up; the updated stack now gets fresh CI at every level.
Not covered
The live 10-slide smoke test has also passed for this stack: 18.778 seconds, three artworks, and 10/10 captures. The focused macOS notice layout/dismissal check passed with attached logs; the broader authoring walkthrough above is still outstanding.
The follow-up also passed code generation,
melos run fix, contract schema checks, and workflow lint, with no generated-file changes.