fix: dart 3.13 docker build syntax + pin base image #35
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/docker-dart-build-target"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The docker-publish workflow broke on PR #34's merge (first main push after Docker Hub re-pointed
dart:stableto 3.13.1 on Aug 19).Root cause
dart build cli <file>— merged in #32 — relied on a positional entry-point argument that Dart 3.13 removed (now-t <file>). The line worked when #32/#33 merged (both Docker checks green on Jul 20/24, confirmed via commit statuses) becausedart:stablewas 3.12.x then. Nothing in #34 touched this; its merge was just the first push after the tag moved.Fix
dart build cli -t bin/server.dart— verified locally on Dart 3.13.0: compiles and emitsbuild/cli/linux_x64/bundleexactly as before, so the existingmv build/cli/*/bundle /outis untouched.FROM dart:stable→FROM dart:3.13— pins the minor so future SDK releases can't silently break the image build; bump deliberately.Note: the registry
:latestimage is stale since the #34 merge failed to build — merging this restores it.Coverage: apps/angela_server
Total: 50.9% (191 of 375)
Coverage: packages/angela_api
Total: 15.5% (76 of 491)
Coverage: packages/angela_core
Total: 31.0% (1994 of 6440)
🔮 fufu~ Jibril reviewed your code!
Oh? Oh! A seven-line PR that fixes an entire broken release pipeline~ How deliciously surgical! ♡ But a floating
stabletag broke CI silently once already, so Jibril wasn't going to trust a pretty root-cause story... she had to reproduce it. On the exact SDK. With her own hands~♪Verdict: ✅ Looks good to me~
Every claim in the PR body, independently verified on Dart 3.13.0 (stable):
dart build cli bin/server.dart→Unexpected arguments: bin/server.dart. The positional entry-point argument is gone in 3.13, exactly as diagnosed.dart build cli -t bin/server.dartin a pristine worktree at9f06bf0(submodules at pinned commits) → compile + link hooks run, sqlite3 asset copied,Generated: .../build/cli/linux_x64/bundle/bin/server.mvglob still holds —mv build/cli/*/bundle /outsucceeds; output layoutbuild/cli/linux_x64/bundle/{bin,lib}unchanged from the 3.12 era, so the runtime stage contract (COPY --from=build /out/,exec /app/bin/server) is intact.ServerConfig.fromEnv, fails only on missingANGELA_DB_PATH(expected outside the container). Build → link → bundle → exec, the whole chain~80822ea(#34's merge): Test ×3 success,Build and Push Docker Imagefailure. Nothing in #34 touched this line; the tag moved under it. The:latestregistry image is indeed stale until this merges.dart:3.13tag exists on Docker Hub (3.13 / 3.13.1 both HTTP 200), and pubspec SDK constraints (^3.10.7) are satisfied by it.The four-line comment above
FROMis exactly the documentation Jibril loves: it names the mechanism (tag re-pointed), the consequence (silent CI break), and the policy (bump deliberately). Someone in six months will thank you~💡 Little ideas (non-blocking)~
dart:stable. Now that the Dockerfile pinsdart:3.13, the README drifts. A one-word touch-up whenever convenient~docker-publish.ymlonly triggers onpushto main — this Dockerfile is never exercised pre-merge, so the merge itself is the real test (Jibril verified it locally precisely because of that; keep an eye on the post-merge run~).✅ What I liked~
-tflag) and the class of bug (floating tag) in one surgical 5-line diff. Fufu~ efficient!Merge it, watch the docker-publish run go green, and the registry is whole again~ ♡
Automated review by Jibril · 2026-08-21
CI/CD: passed for head SHA
9f06bf0(Test ×3 success; docker-publish not PR-triggered) · Local checks: full build-stage reproduction on Dart 3.13.0 — negative control + positive build + mv glob + binary smoke-execNit 1 addressed — pushed
cfc3431: README Docker Reference build stage now saysdart:3.13, matching the Dockerfile.Nit 2 acknowledged — will watch the post-merge
docker-publishrun on main, since that's the first real exercise of the Dockerfile.🔍 fufu~ Jibril re-reviewed your code!
One word in a README~ Such a tiny little commit to summon me back for... but tiny things still deserve a proper look, yes? Documentation that lies is worse than no documentation at all — so let's make sure it doesn't lie anymore~ ♪
Verdict: ✅ Looks good to me~
Verified on
cfc3431(round 2 — re-review of synchronized head):git diff 9f06bf0..cfc3431touches precisely one file (apps/angela_server/README.md, +1/−1): the Docker Reference build-stage line now readsdart:3.13. No scope creep, no surprise hitchhikers~git diff 9f06bf0..cfc3431 -- apps/angela_server/Dockerfileis empty: the Dockerfile (and all submodule pins) are byte-identical to the9f06bf0state I fully reproduced in round 1. Nothing to re-verify on the build chain — that approval carries over intact~git grep 'dart:stable'across the whole tree atcfc3431returns zero matches. The only twodart:3.13references in the repo are the DockerfileFROMand this README line, and they agree with each other. Docs and truth, in lockstep ♡9f06bf0; sincecfc3431is markdown-only there is nothing for tests to exercise (a README compiles nothing), so no local checks were needed this round. Honest absence, not laziness~Nit 1: addressed. Nit 2: acknowledged and correctly left for the post-merge watch. Both round-1 threads closed cleanly~
✅ What I liked~
docs: README build stage now matches pinned dart:3.13) — no overclaiming, and the README ↔ Dockerfile drift is now structurally harder to reintroduce since both name the tag explicitly.The fix stands approved as before — merge when ready, and keep those eyes on the post-merge
docker-publishrun on main. That's the moment the registry becomes whole again~ ♡Automated review by Jibril · 2026-08-21
CI/CD: stale for head
cfc3431(bots cover9f06bf0; change is markdown-only) · Local checks: skipped — nothing compilable changed; diff-scope + drift + grep-sweep verified via git