flutter_agent_harness 1.0.554 copy "flutter_agent_harness: ^1.0.554" to clipboard
flutter_agent_harness: ^1.0.554 copied to clipboard

Cross-platform AI agent harness for Dart and Flutter: streaming provider adapters, agent loop with tools, session persistence, context compaction.

Changelog #

Older entries: CHANGELOG_ARCHIVE.md — moved out on 2026-10-09 (gh-1452): pub.dev server-rejects a publish whose CHANGELOG.md exceeds its 262144-byte content cap, so this file keeps a bounded recent window and scripts/check_changelog_size.sh fails fast when the cap is approached. Since gh-1522 this file is CURATED-ONLY: add new lines under ## Unreleased and the release folds them into the tag's section at publish-staging time — the published artifact's changelog is generated (and trimmed under the cap by stamp_staged_release.sh), and the publish job only WARNS on this repo file, so this file's size can never block a release again.

1.0.554 #

  • gh-1522: tag-sourced versions — the git tag is the single source of truth. The release-bot file bumps are retired: cutting a release = a tag + GitHub Release (zero commits to main, zero file mutations). Both pubspecs carry the fixed 0.0.0-dev placeholder (CI guards hand-bumps), the publish job stamps the staged pubspec + generated changelog section from the tag (scripts/stamp_staged_release.sh, staged version == tag guarded pre-upload), store builds stamp --build-name/--build-number from the derived tag version (pubspec.lock stops churning across releases), and install_local.sh stamps version.txt from git describe.

1.0.506 #

  • fix(#1044): AIIN mobile/macOS add-provider — sign-in completes but the provider is never added (#1194)
  • fix(ci): pass flutter-version explicitly — awf no longer defaults a toolchain (#1205)

1.0.507 #

  • gh-1208 [BENCH] fix-git task image broken on CI runners — docker compose build fails in BOTH TBench-1 runs (unknown_agent_error, trial never starts) (#1218)
  • gh-1206 WIP auto-save 2026-10-04T05-52-28 (#1216)
  • gh-1209 [BENCH] usage fold skips failed trials — agent_timeout rows report 0/0 tokens though the session JSONL has full usage (#1123 follow-up) (#1215)

1.0.508 #

  • fix(cli): gh-1459 — headless fa -p no longer orphans live background shell jobs. _awaitHeadlessBackgroundJobs drained only in-flight subagent jobs, so a run whose model was still waiting on a bash background:true command (gh-1440's full test suite) printed the detach summary and exited, killing the job with the container — the result it was explicitly waiting for never reached anyone. Live shell jobs now drain exactly like subagents: the settles ride the existing _onShellJobSettled fresh-turn path (steered into reaction runs the drain awaits, loop capped at 10 rounds), suppressed jobs (suppressSettleNotification — result already landed in-turn) are not awaited, and a settle landing outside a round still gets its reaction run awaited before exit. BOTH loops share ONE wall-clock ceiling, the new headless: config section (shellJobDrainMs, default 30 min, strict parse; 0 restores the detach-immediately behavior) — a never-settling watch-loop detaches with an observable ⏳ … drain ceiling … — detaching line instead of hanging headless, and the detach summary stays the documented degradation, never the default path. The drain prints a ⏳ waiting: … line (#1055 parity) naming what the run stays alive for. While it waits, the drain also steers interim liveness notices (gh-1459 ask #4): every headless.shellJobQuietMs (default 5 min; 0 = off) of a still-running awaited shell job, ONE compact system-notice (job <id> running · <elapsed> elapsed · tail: … plus the bash_job output/stop escape hatch) keeps the model able to wait, inspect, or kill instead of blocking blindly to the ceiling; a crossing the model probed itself (bash_job status/output bumps the entry's probe generation) is skipped, one steer budget per threshold, never a spam loop.
  • feat(providers): issue #1398 — stall-recovery tuning becomes per-provider and data-driven. Registry entries (customProviders:, models.custom:, roles chain entries, providersQueue: entries) accept optional connectTimeoutMs/streamIdleTimeoutMs (strict positive-int parsing); resolution is entry > the providerTimeouts: section > the 180 s/300 s defaults, per field, and every seeded entry prints its effective values at boot. The wire seams (sendWatchedProviderRequest connect watchdog, createSseIterator idle watchdog) resolve per request URL, so all adapters inherit the tuning; runs without entries are byte-identical (AC6). Also: the retry backoff contract — a parseable delta-seconds Retry-After wins over the ladder for that attempt, hard-capped at the 60 s ceiling (the clamp names the advertised value; 0 counts as absent, malformed/HTTP-date headers fall back to the ladder with a trace note) — and the dual retry budgets (connection-class cap 4, stream-class cap 3, independent counters, the terminal story carries both). Trace lines pin the format budget=<connection|stream> attempt=<n>/<cap> delay=<ladder|server|clamp>; the tuning report prints per-model p50/p95 inter-chunk gap + watchdog-fire counts with the streamIdleTimeoutMs ≈ 2× p95 recipe (the production feeder lands with #1392's LatencyMeter).
  • feat(hosts): gh-1322 — the wireAgentCore host-adoption gaps: an embed guide (docs/embedding.md, with the explicit "hosts ride wireAgentCore, never adk_dart" rule), the host-facing key-slot resolver (AgentCoreServices.resolveKey + HostKeyResolver — the effective slot NAME, pinned-twin drift hints identical to the CLI's migration notes, registry-leg knownSlotNames, injected env/store readers only), and lifecycle telemetry for in-process hosts (AgentCoreServices.telemetry: the pure interface + in-memory ring in core, the fa.log file sink behind lib/io.dart; requestStart/firstToken/turn/tool/run records with durations and the provider HTTP status).
  • chore(ci): document the sm-kicker head-completeness codeless-head crash (upstream awf#15) — the factory job's gh api calls put --jq before --arg/--argjson, so a CODELESS branch head (2 parents, 0 changed files: a routine branch-sync merge with no content diff) crashes the job with accepts 1 arg(s), received 4 — even when CI is fully green on that head, and the job's own rescue dispatch can never heal exactly those heads. Workaround until the upstream fix: keep the branch head code-bearing. Live instance: run 37193754301 on head 1fe9b1232.
  • fix(messaging): gh-1180 — schedule_message self-chains no longer die silently at the agent-chatter wake cap. The idle inbox-wake gate (InboxWakePolicy, shared by the CLI and the app hosts) now exempts a delivered scheduled self-reminder ([scheduled] prefix, from == to) from the 10-consecutive-wake streak: a deliberate agent-chosen cadence (night watch, periodic sweep) wakes forever, while foreign agent-to-agent chatter stays capped (anti-storm REG) and user-kind mail always wakes. A 30s cadence floor bounds a zero-delay re-schedule spin (E5). Refused wakes are visible ([mail] wake refused, once per episode) and every lifecycle step is receipted to <messagesRoot>/_scheduled/receipts.jsonl (ScheduledReceiptLog): scheduled / delivered / delivery_failed / scan_failed / wake_attempted / turn_started / wake_refused. A failed scheduler scan (transient listDir error) now re-arms at failureBackoff with an onError log instead of silently disarming the delivery heartbeat.
  • fix(messaging): gh-1180 review round — refusal receipts and the visible refusal line are gated once per refusal EPISODE (the latch lives in InboxWakePolicy next to the streak and re-arms on the same resets), so a held gate no longer appends per-tick wake_attempted rows (~43k duplicate lines/day) and a repeat episode after user input is announced and receipted again. The app host receipts its wake path (wake_attempted / turn_started / wake_refused) onto the same trail — AC4 is no longer CLI-only. A self-reminder adopted across a session-id change delivers FROM the live mailbox (from re-addressed alongside to), so the resumed chain stays self-shaped and exempt instead of falling back to the capped chatter lane. Plugin-only pending batches are explicitly classified as chatter (the contract is stated, not accidental), the wake cap is single-sourced from InboxWakePolicy.defaultMaxInboxWakeStreak, and the policy file lost a stale copy-pasted ignore_for_file.

1.0.509 #

  • chore(pin): awf workflows track @main — always-latest policy (owner directive 2026-10-04). All five machine-loop stubs (teammate, SM, merge, sm-kicker, merge-trigger) flip from immutable SHA pins to dmtools-agentic-workflows@main, so awf fixes (kicker real ticks awf#13, per-SHA concurrency awf#14, teammate defaults awf#12) go live on merge with no re-pin ceremony. Security trade-off (owner-accepted): a mutable ref executes whatever sits at the awf main head — mitigated by awf main being review-gated, by test/machine_kit/factory_stub_ref_test.dart now guarding ALL FIVE uses: refs resolve to exactly main (never a stale SHA, never a random ref) in lockstep, and by the agents ENGINE pin staying an immutable 40-hex SHA via factory_ref. The secrets: policy is settled per-callee in the same guard: teammate/sm/merge map SOURCE_GITHUB_TOKEN explicitly (their factories declare it required), while merge-trigger keeps the factory-documented secrets: inherit PAT passthrough (factory-merge-trigger declares no secrets) and the kicker carries no secrets block. Stale immutable-SHA pin comments in ai-teammate.yml / machine-sm.yml rewritten to state the always-main policy (#1222).

1.0.510 #

  • gh-1226 [BUG] 1.0.505 (with #1190 aboard): mail-wake turn after /sessions restore still loses the provider/key binding — copilot-401 error on a z.ai session + fused guidance text (#1237)
  • gh-1199 [GOAL] Deterministic-only Quality gate: mock LLM everywhere, live models move to supervised benches (#1229)
  • feat(1101): Agent Wire Protocol v1 — web reference client (sdk/web), conformance runner, browser example (#1228)
  • gh-1224 [BUG] iOS 1.0.504: all wasm interpreters (python/qjs/lua/sqlite3) dead — 'no lazy loader' in FOREGROUND bash _forJob() clone drops moduleLoader (regression suspect #1163) (#1225)

1.0.511 #

  • gh-1164 [GOAL] built-in js-apps skill (promoted from app asset, decisive apps-vs-widget routing) + JS render/runtime errors reported back to the authoring agent as failures (blocked by #1151) (#1246)
  • gh-1244 [FLAKE] PTY integration: secret_sheet_test «IT-mask: masked from the first keystroke» waits for exactly 5 bullets while typing races ahead (red main, run 37232401938) (#1245)
  • gh-1241 [GOAL] Session token-usage ledger: resume-aware usage.json fold over the session chain (provider-reported, estimated marked) (#1243)
  • ci(quarantine): skip scheduled_indicator_test.dart in the gate (flake, https://github.com/IstiN/flutter_agent_harness/issues/1252) (#1253)
  • gh-1077 [GOAL] flutter_app compaction parity with CLI — mobile sessions never compact (roles/smol absent, wrong context window, silent failure, no over-window relief) (#1239)
  • ci(quarantine): skip job_board_stability_pty_test.dart in the gate (flake, https://github.com/IstiN/flutter_agent_harness/issues/1250) (#1251)
  • gh-1235 Wire jsr.openUrl + webView host into the app JS engine (js_widget_runtime = 0.4.154) (#1238)
  • gh-1226 [BUG] 1.0.505 (with #1190 aboard): mail-wake turn after /sessions restore still loses the provider/key binding — copilot-401 error on a z.ai session + fused guidance text (#1237)
  • gh-1199 [GOAL] Deterministic-only Quality gate: mock LLM everywhere, live models move to supervised benches (#1229)
  • feat(1101): Agent Wire Protocol v1 — web reference client (sdk/web), conformance runner, browser example (#1228)
  • gh-1224 [BUG] iOS 1.0.504: all wasm interpreters (python/qjs/lua/sqlite3) dead — 'no lazy loader' in FOREGROUND bash _forJob() clone drops moduleLoader (regression suspect #1163) (#1225)

1.0.513 #

  • fix(1096): reseed fa-extension size floor for intentional js-apps skill growth (gh-1164) (#1258)

1.0.514 #

  • fix(#1197): TUI frame pipeline self-heals a throwing view/render (gh-1197 AC3) — a mid-run render exception now logs loudly, invalidates the diff state (no stranded DEC 2026 BSU), and repaints instead of dying or freezing; PTY liveness regression test proving paced thinking + answer text + a long silent tool call paint continuously (AC1/AC2/AC4), via the scripted stream's new paced chunks/pace_ms, thinking, and sleep_ms steps

1.0.515 #

  • gh-1292 fa-tokens line must reach stdout in headless/CI runs (ledger emission invisible to the GH log) (#1295)
  • gh-1296 [BUG] iOS build red in CocoaPods layer: package:sqlite3 build_hook fails — Podfile.lock drift (pods cache re-rolls weekly) never-again: ALL lockfiles committed + enforced (#1298)
  • feat(1096): mac size diet — wasm_run_flutter.framework + never-loaded assets, ratcheted (#1227)
  • chore(merge-trigger): track awf @main + map_pr_labels: true (#1285)
  • ci(quarantine): skip secret_sheet_test.dart in the gate (flake, https://github.com/IstiN/flutter_agent_harness/issues/1283) (#1284)
  • fix(1280): CLI arch matrix gates the merge; release binaries boot-smoked (#1282)
  • gh-1276 [BUG] iOS: memory_search returns garbage + memory_list hides user-scope notes (agent fell back to memory_delete by exact text) (#1281)
  • ci(quarantine): test/integration/theme_readability_pty_test.dart (flake) (#1255)
  • gh-1274 [BUG] iOS sandbox bash: relative paths resolve to a nonexistent CWD — files written in the sandbox are invisible to relative-path commands (still broken on 1.0.512 after #1225) (#1279)
  • gh-1266 [BUG] nightly red: macOS flutter_app suite — 5-test cluster around apps panel / open_app launcher / dynamic_message tiles (suspects #1139, #1173) (#1278)
  • gh-1275 [BUG] Built-in skills (#1151) not packaged into the apps: iOS ships EMPTY skill dirs (create-goal/fa-self-config/js-apps exist, SKILL.md missing) — verify macOS/Android too (#1277)
  • gh-1272 [BUG] [URGENT] 1.0.512 TestFlight (build 205): EVERY JS widget dead — engine eval error 'Unterminated regular expression literal /[ ⇥' on all widgets (source corruption in assembly/catalog path) (#1273)
  • gh-1265 [BUG] nightly red 5 nights: native desktop builds broken by a TRANSITIVE flutter_inappwebview nobody declares — linux WPE missing + windows MSVC 14.51 STL1011 (lockfile not committed) (#1268)
  • gh-1261 [BUG] Play listing deploy fails: clear_images! HTTP 400 — invalid image_type "images" for en-US/phoneScreenshots (daily-publish Play leg red) (#1264)
  • feat(#1079): SDK slice 2 — live agent-stack wiring (wireAgentCore); CLI converts to the shared builder (#1230)
  • gh-1197 [BUG] TUI fixes (recovered dev leg) (#1263)
  • ci(quarantine): skip dap_wake_hang_test.dart in the gate (flake, https://github.com/IstiN/flutter_agent_harness/issues/1248) (#1249)
  • gh-1073 Session JSONL grows unboundedly (12 GiB ledger records) → resume fails with 'Failed to read session' + heap-exhaustion crash (#1247)
  • fix(1096): reseed fa-extension size floor for intentional js-apps skill growth (gh-1164) (#1258)

1.0.516 #

  • gh-1299 [BUG] [URGENT] main red 13 legs: release commit v1.0.515 bumps version WITHOUT regenerating pubspec.lock — new --enforce-lockfile (#1268) hard-fails every leg (#1304)

1.0.517 #

  • gh-1299 [BUG] [URGENT] main red 13 legs: release commit v1.0.515 bumps version WITHOUT regenerating pubspec.lock — new --enforce-lockfile (#1268) hard-fails every leg (#1304)

1.0.518 #

  • gh-1307 [BUG] nightly macOS suite red: js_app_error_capture_test — load error NOT captured (empty list) regression from #1273's engine fix, merged green through the PR exclusion-zone hole (#1309)
  • fix(918): omp_ref reference fixtures captured on PTY host + nerd-glyph parity wiring (#1231)
  • gh-1310 [CI] Tag CI for v1.0.513 red — 4+ jobs fail (Android APK, web debug, Hostile ambient env, PTY screenshots) → release asset-less, legs fall back to v1.0.511 (#1312)
  • gh-1303 [CI] Pages 'Build landing + web demo' red on main — '41 packages have newer versions incompatible with dependency constraints' (blocks publish + merge-trigger) (#1305)
  • gh-1299 [BUG] [URGENT] main red 13 legs: release commit v1.0.515 bumps version WITHOUT regenerating pubspec.lock — new --enforce-lockfile (#1268) hard-fails every leg (#1304)

1.0.520 #

  • fix(1250): assert frozen-row invariant, not an unsampleable mid-drain frame (#1286)
  • gh-1300 [ENH] PTY integration tests: pay toolchain+boot ONCE per shard, not per test (~30s spawn overhead × N tests) — boot-once + reset between tests (owner design), FA_BIN AOT seam as the cheap first cut (#1306)

1.0.521 #

  • fix(1248): dart_tui guard misfires ghost mail-wake turns — log-and-keep-running (#1289)
  • gh-1257 [FLAKE] PTY integration: convert the 5 residual exact-bullet-count anchors (secret_sheet_residual_test / password_prompt_pty_test) to the gh-1244 property anchor (#1287)

1.0.522 #

  • fix(ci): play edit-commit sets changesNotSentForReview (#1367)
  • fix(1339): surface recovered trials, terminal failure modes, and model ids in the bench summary (#1351)
  • feat(1331): iOS size diet — IPA dSYM strip + never-loaded fixture prune + ratchet (#1333)

1.0.523 #

  • gh-1341 Bump js_widget_runtime pin to 9d57570 / ^0.4.156 — flutter_js hostCall/capture channel fix (fa-craft lag, voxel-sandbox spinner) (#1366)
  • fix(1349): deny bare long foreground sleeps; enrich liveness reminders with the background hint (#1355)
  • fix(1293): dap start exit-0 guarantees the dial credential is durably on disk (#1354)

1.0.524 #

  • ci(quarantine): skip shell_job_countdown_pty_test.dart in the gate (flake, https://github.com/IstiN/flutter_agent_harness/issues/1365) (#1347)
  • fix(1368): pub.dev publish — push-tag-only OIDC path, dart-only gate, verify waits instead of false-alarming (#1370)
  • fix(1339): review hardening — session-archive traversal guard on every branch (#1369)
  • fix(1323): live thinking streams in the TUI — reasoning deltas commit the transient-retry attempt (#1325)

1.0.525 #

  • ci(quarantine): skip subagent_integration_test.dart in the gate (flake, https://github.com/IstiN/flutter_agent_harness/issues/1372) (#1373)
  • fix(1254): quarantine dracula theme-flake + wait headroom for starved shard (#1288)
  • fix(1234): whole-tree CRAP ratchet 12→8, loc-gate migration, all top offenders fixed (#1291)
  • fix(1252): widen scheduled-indicator reminder window past loaded-runner pre-check (#1290)

1.0.526 #

  • feat(1322): wireAgentCore host-adoption gaps — embed guide, host key resolver, lifecycle telemetry (#1327)
  • fix(1319): route paging history notifies through the guarded bridge (follow-up to #1320) (#1324)

1.0.527 #

  • gh-1393 [GOAL] Mobile agent parity: bash-identical sandbox shell (glob/grep/cd/dev-null) + first-class jsr widget testing (jsr.test.*, check_app) (#1401)

1.0.528 #

  • feat(1379): Compaction 2.0 second tier — agent-initiated hide, LRU re-hide, per-segment pins (#1383)
  • fix(1402): pre-flight Play listing language gate + edit-discard on commit failure (#1405)
  • feat(1380): obligations ledger substrate — verbatim entries + level-0 context block (A1 slice 1) (#1382)

1.0.529 #

  • feat(1377): auto_update tri-state flag — notify banner, autonomous verified self-update, /update (#1384)

1.0.531 #

  • fix(1406): bench ConnTrace dark inside tmux — launch-line env + loud-empty guard (#1416)

1.0.532 #

1.0.533 #

  • gh-1412 [GOAL] Near-miss elimination: FinalizeGate contract + TaskLedger — the agent verifies produced state against task text before declaring done (#1418)
  • gh-1403 [daily-publish] testflight leg failed (#1424)
  • feat(bench): per-task test-budget override table + planner fairness guard (gh-1407) (#1417)

1.0.534 #

  • fix(1408): harness-induced bench failures — isolated job logs, redacted at rest, shape-only bash interceptor (AC1–AC3; AC4 documented) (#1410)
  • gh-1415 [GOAL] Subagent status line-language: one compact live row per subagent in the CLI TUI (omp-density, ten named deltas) (#1420)

1.0.535 #

  • gh-1426 [GOAL] Model capability negotiation (rework): the resolver's loud notes now ride the built Model (capabilityNotes) and render on the status surfaces — /model-edit prints them next to the resolved triple, and the single-model boot prints them in the boot notice — so a gated pin (E3), an override-vs-endpoint divergence (E1), and a catalog-miss override (E4) are never silent. Also: applicationNote('models') says "applies live to the next model build" (the flow live-applies; "next boot" was wrong), the duplicate _capabilitySummaryFor collapsed onto _capabilitySummary, the two capability remove paths share one _removeCapabilityYaml body, the omit-max-output menu row names its adapter scope ("openai-completions only"), the dead resolveModelRefCapabilities export is dropped, and the resolver's ceiling-table lookup and documented wire field both read the same effective api (api ?? spec?.api).
  • Behavior change (gh-1426, deliberate — AC6): pre-existing thinkingLevel pins (a roles: chain entry, the FA_PROVIDER_CONFIG preconfig, or a models.overrides pin) now reach the wire for the first time on the openai-completions family (reasoning_effort) and google (thinkingConfig); on origin/main they were carried but wire-silent there. Consequences: (1) REG-1's "no overrides → byte-identical payload" corpus holds only for sessions with NO thinking pin at all — a session with a bare roles pin changes payloads by design; (2) an endpoint that rejects reasoning_effort (strict gateways, o-series rung spelling) can now 400 where it previously worked — unpin the level (/settings → Model capabilities → thinking level → off) or pin omitMaxOutputTokens where the max-output field is the problem. The boot note that claimed the openai-completions adapter "is not wired" to the config-carried level is corrected and now fires only for the genuinely unwired adapters (dial, copilot, chatgpt-codex).

1.0.537 #

  • feat(1374): animated two-tone kaomoji thinking indicator — app + web TUI (#1419)

1.0.538 #

  • gh-1433 [GOAL] Workflow log fidelity: non-interactive headless renders EVERYTHING the model says — thinking deltas AND assistant text, default-on (the post-hoc log IS the UI) (#1437)
  • gh-1425 [GOAL] Resume loses structured-compaction folds — marathon session reopens at 143% of window make fold projection resume-equivalent and cap every detonation path (#1427)
  • gh-1430 [GOAL] Headless stream-liveness: fa must heartbeat provably-alive reasoning streams, and the bench stall-gap must defer to fa's own watchdog (round-4 RCA: 13 tasks ≈ 16% killed mid-thinking) (#1436)
  • chore(1431): reseed fa-extension size baseline for the 3.47.7 engine rev (#1432)
  • gh-1409 [GOAL] Compaction-pinned skill operative lines — instructions must survive folding (image-carrier precedent) (#1428)
  • feat(1374): animated two-tone kaomoji thinking indicator — app + web TUI (#1419)

1.0.539 #

  • gh-1438 bash_job: resolve near-miss/stale job ids instead of 'unknown background job' dead-ends bound status output GC exited jobs (#1447)

1.0.540 #

  • gh-1441 Voxel nodes render as the “Voxel world” placeholder — Fa app builds JsonWidgetRenderer without voxelWorld (fa-craft 0.2.18, voxel-sandbox 1.0.0) (#1445)

1.0.541 #

  • feat(1079): SDK slice 6 — IT-5 record-level runtime parity for extension hosts (YoClip scenario) (#1456)
  • gh-1449 [GOAL] Orphan-result notices: reported once, never a user turn, always identifies the call (#1451)
  • gh-1439 [GOAL] Live-follow etiquette: scrolling up while the agent works never yanks the user back down (TUI + app + web: follow-mode contract + «jump to live» affordance) (#1443)

1.0.542 #

  • gh-1450 [GOAL] SSO/OAuth login must always show the full authorization URL and allow opting out of the default browser (CodeMie/OpenRouter/ChatGPT family) (#1464)

1.0.543 #

  • gh-1450 [GOAL] SSO/OAuth login must always show the full authorization URL and allow opting out of the default browser (CodeMie/OpenRouter/ChatGPT family) (#1464)

1.0.545 #

1.0.546 #

  • chore(factory): flip engine pin to agents-rel-20261009-181034 (206a8c62) (#1474)
  • gh-1477 [BUG] build-mobile Derive version: fetch-depth:0 checkout outgrew its own 10-min timeout — daily leg cancelled mid-fetch (time bomb, grows with every tag) (#1482)
  • gh-1444 [GOAL] iOS sandbox ergonomics: skills resolve, networks fail loudly, secrets prove presence, timeouts tell the truth (#1453)

1.0.547 #

  • gh-1446 [GOAL] TUI chrome diet: textless fold rule, running/lost-only jobs line, live activity animation in the reserved _ Fa brand slot (#1454)
  • fix(1431): size gate survives Flutter rev-hash churn — normalize 20+hex rev dirs, vendored carve-out, exact-patch SDK pin (#1486)
  • gh-1471 [GOAL] bench.yml: provider selection for tbench runs (zai-glm default, kimi-for-coding) with a dedicated bench key (#1475)
  • gh-1452 Release blocked: CHANGELOG.md exceeds pub.dev 256 KiB cap (262 672 B on main) — v1.0.538 not on pub.dev trim + pre-flight guard needed (#1462)

1.0.548 #

  • gh-1478 [ENH] daily-publish auto-filer: signal-first failure excerpts + cancelled-run digests + root-cause dedup (never-again for noise filings) (#1480)

1.0.549 #

  • chore: pin factory_ref to agents-rel-20261010-170624 (fb32c3c8) — brings gh-843 ghost fix + gh-840 sweep to the fa tick; live: #1457 ghost #2 BLOCKED with green-on-head (previously cost ~2h) (#1513)

1.0.550 #

  • chore: pin factory_ref to agents-rel-20261011-002034 (aa5ddd8bd78e64c9ce77a43b31bc63b40b0f8d7a) — minter fix (gh-848/#849): gh-748 never cancels pre-materialization; unblocks fa #1457/#1520 (ghost-seized) (#1527)

1.0.551 #

  • gh-1459 [BUG] Headless exits with live background shell jobs (detached, results lost) — must drain+steer like subagents (gh-1440 run orphaned its full-suite job) (#1463)
2
likes
0
points
9.38k
downloads

Publisher

unverified uploader

Weekly Downloads

Cross-platform AI agent harness for Dart and Flutter: streaming provider adapters, agent loop with tools, session persistence, context compaction.

Homepage
Repository (GitHub)
View/report issues

Topics

#agent #llm #ai #streaming #flutter

License

unknown (license)

Dependencies

archive, characters, crypto, cryptography, dart_tui, fa_hub_client, flutter_agent_memory, http, image, meta, mime, pointycastle, sqlite3, yaml

More

Packages that depend on flutter_agent_harness