Skip to content

Fix v1.0.178: 10 confirmed blockers from the v1.0.177 review - #249

Merged
robertohluna merged 1 commit into
mainfrom
fix/v1.0.178-blockers
Sep 5, 2026
Merged

Fix v1.0.178: 10 confirmed blockers from the v1.0.177 review#249
robertohluna merged 1 commit into
mainfrom
fix/v1.0.178-blockers

Conversation

@robertohluna

Copy link
Copy Markdown
Contributor

Fixes the ten confirmed defects filed after v1.0.177 shipped (#238-247), plus makes /fast honest per-provider and adds the /health workspace field the launcher's ownership check depends on.

What's fixed

# Area Fix
#238 release CI ScreenShare/build.sh is location-independent; publish() refuses to ship unless all 6 platform assets + sidecars are present and non-empty (v1.0.177 published green with no macOS artifacts)
#239 + #245 goal loop ungated triage call doubled goal-turn round-trips (8 vs budget 3); now runs maybe_gate/1's guard chain
#240 TUI ESC + multi-byte panic fixed at the shared escape_len_at scanner (all 6 slice sites)
#241 TUI failed session-create no longer wedges input; Err clears the pending flag
#242 TUI all three onboarding exits resolve the session (first-run no longer queues forever)
#243 goal loop awaiting_user halt appends the answer to history before stopping
#244 providers Codex /fast strips :service_tier; retry fires on detail-less 4xx
#245 launcher /health reports workspace; bin/osa proves ownership before adopt/stop
#246 providers per-provider tier allowlists; Gemini/Bedrock/xAI/OpenRouter stop emitting unverified tiers; /fast reports truthfully
#247 providers Codex ceiling uses the transport window; settings cascade resolved

Verification (local)

  • test/agent — 1650 tests, 0 failures
  • test/providers — 991 tests, 0 failures
  • Rust TUI — 1562 tests, 0 failures
  • New regression tests for every fix; each confirmed to fail without its fix.

Known pre-existing failures (NOT introduced here, filed separately)

These fail on main today, independent of this PR:

ToolchainPinTest fails locally only (dev machine on Elixir 1.19.5 vs pinned 1.17.3); passes in CI. PromptTemplateTest is issue #208 test-order pollution — passes in isolation.

Fixes the ten confirmed defects filed after v1.0.177 shipped (#238-247), plus
makes /fast honest per-provider and adds the /health workspace field the
launcher's ownership check depends on.

Release / infra
- #238 release.yml shipped NO macOS artifacts: ScreenShare/build.sh passed
  CWD-relative source paths to swiftc, so the macOS job died before upload and
  publish() (if:always) shipped a green, partial release. build.sh is now
  location-independent (SCRIPT_DIR-derived), and publish() gained an asset gate
  that refuses to publish unless all six platform assets + sidecars are present
  and non-empty. The helper step also asserts the binaries were rebuilt this
  run, since priv/helpers/ is tracked and a stale copy would bundle silently.
- #245 daemon adoption crossed workspaces: /health now reports `workspace`
  (Workspace.Cwd.original_cwd/0), and bin/osa proves ownership by that before
  adopting or letting `osa stop` kill a daemon, with a pidfile/lsof fallback
  for older daemons.

Agent loop
- #239 + #245 goal-turn round-trips: the continuation budget was never broken;
  GoalVerifier.maybe_wait_for_user/2 ran an ungated triage LLM call after every
  tool-call-free generation, doubling round-trips (8 against a budget of 3). It
  now runs maybe_gate/1's guard chain (activated?, paused, run cap, stall,
  reverify_due?).
- #243 goal handoff dropped the model's answer from history: the awaiting_user
  halt now appends the assistant content before stopping, so it survives
  /goal approve.

TUI
- #240 panic on ESC + multi-byte char from raw tool output: fixed at the shared
  scanner (util.rs escape_len_at) so all six byte-slicing call sites are safe.
- #241 failed session-create wedged the TUI: the Err arm now clears
  session_creation_pending so the user can retry.
- #242 first-run installs queued every message forever: all three onboarding
  exits (complete-ok, complete-err, cancel) now resolve the session.

Providers
- #244 /fast hard-failed every turn on Codex: request_opts/2 strips
  :service_tier at the Codex chokepoint, and the retry also fires on a
  detail-less 4xx when a tier was sent.
- #246 tier vocabulary was forwarded raw: per-provider allowlists; Gemini,
  Bedrock, xAI and OpenRouter stop emitting an unverified tier rather than
  eating a doubled round-trip every turn. /fast now tells the truth about
  whether it accelerates on the current provider.
- #247 Codex context ceiling used the public window, not the transport window;
  settings session cascade now resolves the full file cascade.

Pre-existing, filed separately, NOT addressed here: #248 (attack_orchestrator
undefined calls), ComputerUse missing get_tree/0, StaticBaseSize base drift.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/channels Channel adapters area/ci CI and workflow config area/lib Core library code area/priv priv resources area/tui Rust TUI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant