Skip to content

Latest commit

 

History

History
2101 lines (1597 loc) · 86.5 KB

File metadata and controls

2101 lines (1597 loc) · 86.5 KB

Changelog

This is the canonical product changelog for Codewith, the @hasna/codewith CLI, and the stable Codewith rust-v0.1.* product release tags in this fork. GitHub Releases remain the place for binaries, checksums, installers, and DotSlash artifacts, but release notes should be copied from this file instead of generated from the release bump commit.

The fork-specific history starts after upstream commit 20fedafff8 on 2026-05-21. The first fork-only commit is 809fe3130c, feat: add scheduled loop tasks.

Sources used to rebuild this changelog: local git history and tags, origin/main, release branches for 0.1.27, 0.1.28, and 0.1.46, GitHub Releases, and npm metadata for @hasna/codewith.

Known evidence gaps:

  • GitHub Releases currently exist for 0.1.26, 0.1.27, 0.1.28, 0.1.29, 0.1.33, 0.1.39, 0.1.40, 0.1.41, 0.1.42, 0.1.43, 0.1.45, and 0.1.46.
  • GitHub Releases were not found for 0.1.30, 0.1.31, 0.1.32, 0.1.34, 0.1.35, 0.1.36, 0.1.37, 0.1.38, or 0.1.44, though matching local tags and/or npm publications exist for some of these versions.
  • The GitHub Release bodies for 0.1.29 and 0.1.33 were generated from tag commit messages, not this changelog.
  • npm has published 0.1.4, 0.1.6, and 0.1.15, but no matching local tag or committed release bump was found in the current refs.
  • npm metadata still has old timestamps for 0.1.0 and 0.1.1, but npm view @hasna/codewith versions currently starts at 0.1.2.
  • 0.1.27, 0.1.28, and 0.1.46 live on release branches, not origin/main; 0.1.46 was cut from fix/loops-runtime-0.1.46.
  • origin/main now carries the rust-v0.1.66 release tag. Earlier notes about origin/main lagging at 0.1.45 were superseded by later release trains.
  • The rust-v0.1.46 GitHub Release is metadata-only and is not marked latest; use a later full asset-bearing release once platform assets are available for that tag.
  • This file intentionally excludes pre-fork alpha tags rust-v0.1.0-alpha.*, upstream high-version rust-v* tags, python-v* SDK tags, and rusty-v8-v* dependency artifact tags.
  • rust-v0.1.81 tag exists (workspace version bump only, PR #465) but its release run failed at the changelog-notes step before publish-npm, so nothing was ever published to npm under that version. Its two included fixes (#462, #463) are documented under 0.1.82 below instead, which is the first version this fork actually published after 0.1.80.
  • rust-v0.1.89 tag exists, but its release run was cancelled before publish-npm after the hosted app-server test exposed an invalid idle schedule fixture. No 0.1.89 package was published; the candidate's product changes and the corrected fixture are published together in 0.1.90.

[Unreleased]

[0.1.90] - 2026-08-12

Tag: rust-v0.1.90 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.90 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.88...rust-v0.1.90

This release publishes the complete 0.1.89 candidate after correcting the hosted idle-schedule regression fixture that stopped the earlier release. It completes the post-0.1.88 workflow execution and scheduling repairs, adds verifiable Instructions provenance for background-agent launches, restores the Blacksmith remote test route, and includes the goal, loop, and skill-loading repairs that landed on current main before publication.

Added

  • Background agents now validate the managed Instructions session-render manifest before thread startup, revalidate its bytes and rendered files after the thread starts, and persist a redacted, immutable launch receipt binding the adopted session prompt and instruction-source set to adapter, source provenance, route, permissions, capabilities, runtime, and durable lineage. (#545)
  • Test infrastructure now includes a supported Blacksmith Testbox workflow and skill for remote Codewith validation. (#497)
  • Goal plans can explicitly clear inherited per-goal and plan-wide token budgets while preserving omitted budget fields. (#555)

Fixed

  • Workflows now propagate scoped branch execution packets, including the requested worktree and task context, into isolated branch workers. (#540)
  • Workflow verifier failures now stop the affected workflow at the configured boundary instead of allowing later steps to proceed. (#543)
  • codewith start-worker now loads the runtime context required by the delegated worker before execution begins. (#542)
  • Workflow activation failures are surfaced to callers, and cancellation now reaches a terminal state instead of remaining partially active. (#544)
  • Background-agent retries now reject changed launch receipts atomically while accepting byte-identical receipt replays. (#545)
  • Instructions manifest, source-hash, adapter, or capability expectations now fail closed when no managed session-render manifest is present. (#545)
  • Workflow supervisors remain attached after post-admission errors so the run can report and finalize its actual failure state. (#546)
  • Scheduled loops now reuse one pending occurrence while the target thread is busy, preserving the configured recurrence instead of creating counted deferred runs and repeated deferred notifications on every idle retry. (#547)
  • The hosted idle-admission regression fixture now claims owner-scoped due occurrences, so the release gate exercises the intended busy-retry behavior without failing before product admission logic. (#550)
  • Delegated goal-plan work now resumes correctly after inherited budgets are cleared. (#556)
  • Native loops can persist without an expiry while an omitted expiry still receives the existing seven-day default. (#558)
  • Skill discovery treats unreadable directories as non-fatal and continues loading from the remaining configured roots. (#569)

Tests

  • The app-server busy-deferral regression now covers the configured ten-minute recurrence interval.

[0.1.89] - 2026-08-11

Tag: rust-v0.1.89 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.89 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.88...rust-v0.1.89

This release completes the post-0.1.88 workflow execution and scheduling repairs, adds verifiable Instructions provenance for background-agent launches, and restores the Blacksmith remote test route.

Added

  • Background agents now validate the managed Instructions session-render manifest before thread startup, revalidate its bytes and rendered files after the thread starts, and persist a redacted, immutable launch receipt binding the adopted session prompt and instruction-source set to adapter, source provenance, route, permissions, capabilities, runtime, and durable lineage. (#545)
  • Test infrastructure now includes a supported Blacksmith Testbox workflow and skill for remote Codewith validation. (#497)

Fixed

  • Workflows now propagate scoped branch execution packets, including the requested worktree and task context, into isolated branch workers. (#540)
  • Workflow verifier failures now stop the affected workflow at the configured boundary instead of allowing later steps to proceed. (#543)
  • codewith start-worker now loads the runtime context required by the delegated worker before execution begins. (#542)
  • Workflow activation failures are surfaced to callers, and cancellation now reaches a terminal state instead of remaining partially active. (#544)
  • Background-agent retries now reject changed launch receipts atomically while accepting byte-identical receipt replays. (#545)
  • Instructions manifest, source-hash, adapter, or capability expectations now fail closed when no managed session-render manifest is present. (#545)
  • Workflow supervisors remain attached after post-admission errors so the run can report and finalize its actual failure state. (#546)
  • Scheduled loops now reuse one pending occurrence while the target thread is busy, preserving the configured recurrence instead of creating counted deferred runs and repeated deferred notifications on every idle retry. (#547)

[0.1.88] - 2026-08-10

Tag: rust-v0.1.88 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.88 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.87...rust-v0.1.88

This release prepares the workflow activation repair for publication and includes the full post-0.1.87 monitor, provider-profile, migration, and workflow execution delta on main.

Fixed

  • Monitors: persist and enforce command authorization before running persistent monitor commands. (#527)
  • Provider profiles: persist dispatch leases for mailbox and scheduled work so concurrent automation keeps using the reserved provider profile. (#528)
  • State: move usage-profile lease migration 0068 to 0069 to repair the duplicate migration version. (#532)
  • State: repair stores that already stamped the legacy usage-profile migration under the old duplicate version. (#534)
  • Monitors: reauthorize monitor commands immediately before spawning their process. (#535)
  • Monitors: close the stopped-monitor pre-spawn race so stopped monitors do not launch after cancellation. (#536)
  • Workflows: activate workflows correctly when goal plans already have active goals and when workflow sources are not repository-backed. (#537)

[0.1.87] - 2026-08-09

Tag: rust-v0.1.87 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.87 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.86...rust-v0.1.87

This release prevents capability-shaped values stored in coordination metadata from reaching the model through compact mission-control overview fields. It also keeps long-lived prompt input responsive, scopes spawned-child listeners to their parent lineage, and avoids reusing incompatible app-server daemons.

Fixed

  • Mission control: redact capability-shaped values from session titles and compact schedule or interaction previews before returning model-visible overview data. (#525)
  • App server: inherit spawned-child listeners only from connections subscribed to the parent thread, while preserving global manual-thread discovery.
  • TUI: update pending-approval state incrementally and compact buffered transcript events when a persisted closed thread can be reloaded.
  • TUI: reuse the default app-server daemon only when its reported version exactly matches the TUI; fall back to the embedded server after a mismatch, failed handshake, or two-second version-probe timeout without restarting the existing daemon.

[0.1.86] - 2026-08-09

Tag: rust-v0.1.86 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.86 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.85...rust-v0.1.86

This release makes workflow execution and review context deterministic across retries, resumes, and branch work, and restores unsigned macOS npm staging when the preferred signed artifact is unavailable.

Fixed

  • Workflows: persist and revalidate immutable requested and effective model routes across execution retries and resumptions. (#512)
  • Workflows: deliver persisted branch bootstrap context and deterministic, bounded review contracts for oversized candidates. (#520)
  • Release packaging: accept unsigned macOS npm artifacts when the preferred signed artifact is absent, while preserving signed precedence and canonical archive validation. (#523)

[0.1.85] - 2026-08-08

Tag: rust-v0.1.85 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.85 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.84...rust-v0.1.85

This release gives station-local coordination checks a stable, non-secret task identity in live codewith exec process arguments without changing task authority or execution behavior.

Added

  • Exec: add a global --task-marker <TASK_UUID> identity option that accepts only canonical lowercase hyphenated Todos UUIDs and remains present in the leaf process argv for local liveness accounting. The marker grants no task or credential authority. (#507)

Fixed

  • Release packaging: reject unsigned-only macOS workflow artifacts before downloading them for npm staging because they do not contain the required Codex package archives. (#507)

[0.1.84] - 2026-08-08

Tag: rust-v0.1.84 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.84 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.83...rust-v0.1.84

This release hardens authentication and provider-error handling, durable-worker and workflow execution, unified exec sessions, and goal-plan continuity. It also makes review and release automation safer while improving release metadata and CI coverage.

Added

  • Durable workers: validate admission before spawning a background worker, including the persisted evidence and external-system checks needed to reject an unsafe or ambiguous launch. (#469)
  • Workflow isolation: add an inert safety foundation for later isolated execution without changing current runtime behavior. (#496)

Fixed

  • Model configuration: reject a configured reasoning effort that the selected model does not support instead of starting a session with an invalid combination. (#473)
  • Login: fail a forced API-versus-ChatGPT method mismatch without deleting shared root authentication or clearing the active-profile marker. (#487)
  • Provider errors: remove reflected credential fragments from HTTP and Responses WebSocket authentication failures before they can reach logs, retries, protocol events, JSONL, or stderr, while preserving safe diagnostics such as status, request ID, and allowlisted provider codes. (#488)
  • Unified exec: carry process and session IDs as unsigned 32-bit values so write_stdin accepts valid live IDs above i32::MAX; signed exit codes and the allocator range remain unchanged. (#492)
  • Durable workers: require model attestation before a background agent starts. (#499)
  • Skill installation: make retries transactional, preserving prior destinations and cleaning failed clone state. (#498)
  • Workflow verification: fence verifier effects by run generation and allow a successor to reclaim expired verifier ownership safely. (#500)
  • PR babysitting: keep signed CI capability URLs out of transcripts while preserving URL-free status and rerun controls. (#502)
  • Unified exec: keep code cells live while nested descendant sessions are still running. (#501)
  • Goal plans: restore deferred nodes to pending when a durable plan resumes. (#505)
  • Goal plans: prevent an unfinished active plan from ending on a terminal response while allowing completed delegate sessions to stop. (#506)

Changed

  • Review workflows: accept one independent adversarial reviewer and retain same-reviewer focused remediation semantics. (#494)
  • npm metadata: add searchable keywords to the published @hasna/codewith package. (#485)
  • CI: name receipt-cursor literal arguments and make the required argument-comment lint include manually declared Rust test binaries instead of relying only on the //codex-rs/... wildcard. (#490, #491)
  • Release process: route Codewith releases through the hosted workflow, reject unsafe tag movement, and verify the installer that owns the active executable. (49be67a)
  • Dependencies: update async-trait to 0.1.91, diffy to 0.5.1, predicates to 3.1.4, and socket2 to 0.6.5. (#479, #482, #483, #484)

[0.1.83] - 2026-08-01

Tag: rust-v0.1.83 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.83 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.82...rust-v0.1.83

This release keeps secret-assignment redaction from breaking shell snapshots that contain trailing escape backslashes. It also restores selectable repository-local agent roles in the default MultiAgentV2 spawn_agent tool without exposing its locked execution metadata controls.

Fixed

  • Shell snapshots: preserve the trailing backslash run when redacting a secret-like assignment value, so the following quote keeps its escape parity and fresh sessions can validate and use the redacted Bash snapshot. (#471)
  • Multi-agent tools: restore agent_type as the repository-local role selector in the default MultiAgentV2 spawn_agent schema. Hidden mode keeps configured model, provider, reasoning-effort, and service-tier metadata out of role descriptions, while those controls and auth_profile remain absent from the caller-settable parameters. (#472)

[0.1.82] - 2026-08-01

Tag: rust-v0.1.82 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.82 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.80...rust-v0.1.82

This release fixes a false-positive auth-profile health check, a spawn-receipt cursor underflow that failed every durable background agent at start, and a TUI provider-save error message that discarded the real validation cause.

Fixed

  • Usage: codewith usage --auth-profile <name> now exits 2 when a target cannot be verified instead of 0, tags every field sourced from the local auth file so it cannot be misread as a live health signal, and reports a STATUS: line and an ok field per target so a caller does not have to know to look inside targets[..].error. (#462)
  • App server: fix a saturating_sub underflow that produced a negative lookback cursor for the durable background-agent spawn-receipt poll on every fresh run; the retention guard rejected the negative cursor as "event cursor has been compacted" and aborted the worker before it could start. (#463)
  • TUI: stop discarding the real config/batchWrite validation error when a model provider save fails — the provider-save handler now formats the error with the same chain-aware formatter already used by the sibling default-model and status-line save handlers. (#467)

[0.1.80] - 2026-07-30

Tag: rust-v0.1.80 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.80 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.79...rust-v0.1.80

This release hardens model-visible command output so secrets are redacted before truncation, including at ambiguous collector omission boundaries. It also carries the portability and dependency repairs merged after 0.1.79.

Fixed

  • Tools: redact sensitive assignments before every model-visible unified-exec output is truncated, including Responses input, code mode, post-tool hooks, and persistent log previews. Exact collector omission markers are preserved, while ambiguous retained tail content is conservatively redacted so a secret split across discarded bytes cannot leak. (#455, #460)
  • CI: replace platform-specific shell and batch external-agent test fixtures with a native test binary so the release gate behaves consistently on Windows ARM as well as Unix targets. (#450)
  • Dependencies: update regex to 1.13.1, including the upstream correction for reverse suffix and inner-literal match offsets. (#442)

[0.1.79] - 2026-07-28

Tag: rust-v0.1.79 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.79 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.78...rust-v0.1.79

Release headlined by a hardened Responses tool namespace boundary, account-wide usage inspection and profile switching, and durable per-goal line-change accounting. It also carries the portability and CI repairs needed to keep the feature train green across Linux, macOS, and Windows.

Added

  • Accounts: get_usage can inspect usage and rate limits across every saved ChatGPT auth profile concurrently, report per-profile health, and recommend the best available profile without exposing private email or account identifiers. manage_auth_profiles can switch through the normal session settings path or toggle session-local automatic switching, and low-capacity sessions receive a targeted usage-tool prompt. (#418)
  • Goals: track lines added and deleted for active goals and aggregate totals for goal plans across app-server, mission control, TUI, and persisted state. Accounting follows committed and uncommitted work, isolates linked worktrees, serializes concurrent writers, and correctly subtracts reverted changes. (#415, #433)

Fixed

  • Tools: enforce the reserved Responses namespaces and canonical first-party contracts for image generation and web search across extension registration, deferred discovery, runtime admission, and provider request serialization. Untrusted or stale extension metadata can no longer claim those namespaces or bypass the boundary after admission. (#424)
  • Portability: make CLI working-directory snapshot tests reliable on Windows, preserve Windows read-only app-server workers and unmaterialized archive threads, and gate Unix-only daemon and exec-policy test items correctly. (#431, #434, #436, #447)
  • CI: repair cross-platform Rust lint failures, verify Git snapshot isolation by object semantics, and resolve full-matrix toolchains from the checked-in Rust manifest while keeping platform test shards isolated and correctly sized. (#430, #432, #435)

[0.1.78] - 2026-07-26

Tag: rust-v0.1.78 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.78 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.77...rust-v0.1.78

Release headlined by scalable deferred skill discovery, richer durable goal plans, environment-aware session continuation, and more reliable auth-profile switching. It also hotfixes the standalone updater so automatic hourly checks cannot restart the shared app-server and reset active Unix WebSocket clients.

Added

  • Skills now scale to large catalogs. When the full skill catalog does not fit the 2% skills context budget, the developer message renders a small starter list instead of every skill, and the model reaches the rest through a new skills.list catalog-search tool (available in the app-server and MCP-server extension registries). The starter list is dealt round-robin across skill scopes, so bundled system skills cannot starve a workspace's own skills. (#394)
  • skills.list supports paging: limit (default 5, max 50) and an unbounded offset, with a next_offset cursor in the response, so every ranked match is reachable without rewording the query. The walk is bounded by the catalog and nothing else - there is no offset ceiling, next_offset always strictly advances, and any cursor the tool emits is a cursor it accepts. Responses carry total_matches and has_more so exhaustion is distinguishable from a partial page. Ranking is lexical token overlap with light plural/verb-form stemming, so charts finds a chart skill; it has no synonym or embedding layer.
  • skills.list can enumerate. query is optional: omit it (or pass an empty string) to page through the whole catalog alphabetically. Lexical ranking can only surface skills whose metadata shares a token with the request, so without enumeration a skill whose wording the model cannot guess was unreachable in principle, not merely hard to find.
  • New codex.thread.skills.deferred_total metric reports how many skills were held back from the starter list. codex.thread.skills.truncated now also flags deferral, so a large catalog can no longer report a big drop in kept skills alongside truncated = 0.
  • Goals: edit, insert, complete, and reopen durable goal-plan nodes, and compose recursive or chained goal plans up to the configured depth. (#414, #419)
  • Sessions: persist terminal, profile, and thread context for environment-aware recovery; resume or restart a project session from a chosen history point; and use /continue <session-id> to synthesize prior-session context. (#397, #403, #413)
  • TUI: enrich the switchable-agent list, add multi-level keyboard navigation to /config, and let Shift+Enter flush all queued messages into the active stream. (#392, #393, #398)
  • Providers: expose documented xAI reasoning-effort controls and dynamic, reset-aware usage-limit alerts. (#396, #416)
  • Config: add per-error retry and model switching to the self-healing category. (#401)

Changed

  • Auth: bind profiles to their subscription provider and model catalog while preserving explicit provider/model selection, and group the /profile picker into active and exhausted profiles. (#412, #420)
  • Tools: harden AuthCapsule to the fixed MCP-only v2 policy. (#402)
  • Agents: require durable admission for background agents and improve multi-agent wait and follow-up guidance. (#390, #395)
  • SDK docs now distinguish the published TypeScript SDK from unpublished support surfaces. (#423)
  • CI: add the Blacksmith Testbox workflow, configurable build commands, required Linux packages, and truthful build-command exit handling. (#407, #408, #409, #421)

Fixed

  • The starter-list cap only applies when it is actually needed: a catalog that can be listed at all inside the skills context budget still renders in full (with descriptions shortened as required) rather than hiding skills, and an embedder that installs no skills.list tool always gets the complete list rather than a truncated one it cannot search past.
  • Deferring skills is never silent. Whenever the starter cap holds skills back, the session emits a warning naming how many skills are shown, how many exist, and that the rest stay searchable.
  • The ## Skills intro no longer claims the list is incomplete when it is complete, and no longer points at skills.list on threads where that tool is not installed.
  • The per-turn ranked skills fragment carries the usage rules itself when no ## Skills developer block was emitted. Core builds that block from the host skill outcome, so a catalog served entirely by remote or executor providers used to leave the model with bare skill lines, no usage rules, and a reference to a section that did not exist.
  • The average description-truncation telemetry is no longer diluted by the full catalog size, which rounded real per-skill truncation down to zero on large catalogs and disarmed the truncation warning.
  • The per-turn ranked skills fragment no longer repeats the How to use skills preamble already present in the developer-message skills block, saving roughly 2.5k characters on every turn that matches a skill.
  • Building the host skill catalog is no longer quadratic. It ran on every turn and de-duplicated with a linear scan per insert over long common-prefix filesystem paths.
  • Auth-profile auto-switch now resumes the interrupted turn on the new profile. When a turn fails on a rate-limited profile and no usage reset is available, the agent switches to a healthier profile and automatically re-runs the failed request, instead of switching silently and forcing the user to re-type go.
  • Auto-switch selection preserves each cached profile's server-reported reset time, so exhausted profiles are ranked by their real reset instead of being treated as reset-unknown. When every alternate profile is also rate-limited, the agent no longer switches onto an exhausted profile and instead reports the earliest reset time so the user knows when a profile becomes usable again. (#391, #406)
  • App server: automatic standalone-updater checks now install and re-exec only the updater; they never stop or restart the shared app-server, so active remote-control WebSocket sessions are not reset. (#425, #427)
  • Auth: scope usage-cache invalidation to the profile that was relogged. (#410)
  • Goals: harden blocked-goal hold semantics and durable admission. (#379)
  • TUI: preserve queued messages and flush the intended steer. (#411)
  • Tools: reject first-party tools that collide with the reserved image_gen namespace before sending a provider request. (#389)
  • Models: normalize the ultra reasoning-effort alias consistently. (#405)

[0.1.77] - 2026-07-23

Tag: rust-v0.1.77 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.77 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.76...rust-v0.1.77

Release headlined by multi-agent orchestration upgrades: the parent agent is now auto-notified when a sub-agent completes (wake-if-idle, with an honest wait and follow-up guidance), spawn_agent can pick any model, provider, and reasoning effort per sub-agent, and a running goal can be paused and resumed. It is paired with TUI polish — per-reset expiry in the banked-reset menu and a status line that wraps across up to three rows — plus fixes for friendly agent names in the tree path, compaction on over-window history, platform-independent fleet_comms hash checks, and ref-scoped release concurrency.

Added

  • Core: auto-notify the parent agent when a sub-agent completes (wake-if-idle), with an honest wait and follow-up guidance. (#364)
  • Core: let spawn_agent choose any model, provider, and reasoning effort for sub-agents. (#385)
  • Goal: pause and resume a running goal (model-callable and via the /goal command). (#384)
  • TUI: show the expiry for each banked reset in the interactive menu. (#382)
  • TUI: wrap the status line across up to 3 rows before truncating. (#386)

Fixed

  • TUI/Core: give spawned agents friendly names in the tree path (root/name instead of root/uuid). (#387)
  • Core: don't let compaction fail on over-window history; chunk and truncate before summarizing. (#383)
  • Hooks: make fleet_comms trusted-hash checks platform-independent to fix a red Windows Bazel build. (#381)
  • CI/Release: ref-scope the rust-release concurrency group so re-tags and releases don't cancel each other. (#380)

[0.1.76] - 2026-07-22

Tag: rust-v0.1.76 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.76 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.75...rust-v0.1.76

Maintenance release focused on multi-agent messaging and process reliability: inter-agent messages now deliver over chat-wire providers with mailbox-full surfaced back to the sender, monitor event injection is reliable with no mid-turn drops, and per-session app-servers are reaped when their owning TUI exits. It also stops a false-positive weekly-limit cascade across auth profiles and renders the goal indicator truly inline in the statusline.

Fixed

  • Core/API: deliver inter-agent messages on chat-wire providers and surface a mailbox-full error back to the sender. (#377)
  • TUI: render the goal indicator truly inline in the statusline row (· separated), including the active goal plan. (#373)
  • Core: make monitor event injection reliable with a queue and wake-if-idle so events are not dropped mid-turn. (#376)
  • App server: terminate the per-session app-server when its owning TUI exits so no orphan processes are left behind. (#372)
  • Auth: stop a false-positive weekly-limit cascade across auth profiles. (#374)

[0.1.75] - 2026-07-22

Tag: rust-v0.1.75 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.75 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.74...rust-v0.1.75

Release headlined by two new model providers — Google Gemini (with Gemini 3.6 Flash and 3.5 Flash-Lite) and xAI Grok 4.5 — paired with multi-agent TUI and session-resume fixes: the Spawned cell now renders the agent path instead of a raw, duplicated thread id, wait_agent cell spam collapses into a single compact completed-agents cell, and resuming a session reloads the running sub-agent subtree.

Added

  • Models: added a Google Gemini provider with the latest Gemini models (Gemini 3.6 Flash and Gemini 3.5 Flash-Lite). (#367)
  • Models: added xAI Grok 4.5 to the known-provider model catalog. (#368)

Fixed

  • TUI: render the agent path in the Spawned cell instead of a raw, duplicated thread id. (#371)
  • TUI: stop wait_agent cell spam; keep a single compact completed-agents cell. (#366)
  • Core: reload the running sub-agent subtree on session resume. (#370)

[0.1.74] - 2026-07-22

Tag: rust-v0.1.74 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.74 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.73...rust-v0.1.74

Release headlined by TUI polish and goal-planning ergonomics: a hierarchical agent-tree path (root/agent/sub-agent) replaces raw thread UUIDs in the statusline, the login flow becomes a provider → auth-method chooser with profile-picker fixes, and the automatic goal-plan caps grow larger and configurable. It is paired with faster session resume, an inline goal-pursuit statusline indicator, an external-agent child-thread fork fix, and Codewith's own announcements and tips in place of OpenAI product marketing.

Added

  • TUI: render a hierarchical agent-tree path (root/agent/sub-agent) in place of raw thread UUIDs. (#356)
  • TUI/CLI: replaced the login flow with a provider → auth-method chooser and fixed the profile picker. (#362)
  • Goal: made the per-node goal-plan objective cap configurable (default ~600 words). (#365)

Changed

  • Branding: replaced OpenAI product-marketing announcements and tips with Codewith's own. (#359)

Fixed

  • TUI: render the goal indicator inline in the statusline row (· separated) with a distinct color from the session name. (#357)
  • TUI: clear the composer input after an unrecognized slash command. (#358)
  • TUI: fixed an external-agent child-thread fork that failed with "no rollout found" during TUI bootstrap. (#360)
  • Goal: raised the default automatic goal-plan cap from 12 to 48 nodes. (#363)

Performance

  • App server / rollout / TUI: sped up session resume. (#361)

[0.1.73] - 2026-07-22

Tag: rust-v0.1.73 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.73 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.72...rust-v0.1.73

Release headlined by an opt-in keep-going / auto-resume mode: a new /keep-going slash command and a [keep_going] config section let a turn keep working toward the active goal and auto-resume instead of stopping early. It ships alongside a /privacy-filter readiness check, a cluster of app-server, TUI, and usage correctness fixes, and nine Dependabot dependency bumps (including the rust-toolchain 1.97.0 to 1.97.1 update).

Added

  • Keep-going: added an opt-in keep-going / auto-resume mode — a /keep-going slash command and a [keep_going] config section that let a turn keep working toward the active goal and auto-resume instead of stopping early. (#353)
  • Privacy filter: added a /privacy-filter readiness check and an opt-in config toggle. (#138)

Fixed

  • App server: hardened additionalContext boundaries. (#178)
  • Diagnostics: made diagnostic truncation UTF-8 safe. (#228)
  • App server: backported app-server/protocol nullability and legacy-client fixes, and refreshed the schema fixtures. (#279)
  • TUI: repaired the thread-routing stack. (#211)
  • Usage: recorded prompt cache-write tokens and exact per-response usage. (#330)

Dependencies

  • Rust toolchain: bumped from 1.97.0 to 1.97.1, keeping the release workflow in sync. (#343)
  • CI: bumped actions/setup-node from 6.3.0 to 7.0.0. (#344)
  • CI: bumped astral-sh/setup-uv from 8.3.1 to 8.3.2. (#345)
  • CI: bumped taiki-e/install-action from 2.82.10 to 2.83.2. (#346)
  • CI: bumped softprops/action-gh-release from 3.0.1 to 3.0.2. (#347)
  • Rust: bumped regex from 1.12.3 to 1.13.0. (#348)
  • Rust: bumped age from 0.11.2 to 0.12.1. (#349)
  • Rust: kept cpal at 0.15.3; the 0.18.1 bump (#350) was reverted because cpal 0.18 changed SampleRate from a tuple struct to a type alias, breaking the macOS-gated audio code. Migrating audio_device.rs to the cpal 0.18 API is a deferred follow-up.
  • Rust: bumped axum from 0.8.8 to 0.8.9. (#351)
  • Rust: bumped ctor from 1.0.7 to 1.0.10. (#352)

[0.1.72] - 2026-07-21

Tag: rust-v0.1.72 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.72 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.71...rust-v0.1.72

Release headlined by a fix that restores the model's ability to spawn subagents: the upstream #23144 deferral is reverted for this fork so the multi-agent spawn tools are visible to the model again. It is paired with two statusline improvements — the goal-pursuit indicator now renders inline (locked on) and a toggleable active-agent (Main [default]) segment — plus an upstream hardening and correctness cluster and four feature merges (subagent auth profiles, OpenRouter preflight, rollout alias cleanup, and macOS remote control).

Added

  • Statusline: added a toggleable active-agent (Main [default]) statusline segment. (#341)
  • MCP: preserve encrypted content and custom-tool namespaces in tool outputs. (#316)
  • Unified exec: bound output collection and parallelize write_stdin. (#327)
  • Models: respect per-model reasoning-summary parameter support. (#331)
  • Workflows: added explicit user approval for gated workflow steps. (#296)
  • Workflows: added a thread workflow delete RPC and wired /workflow delete. (#300)
  • Core: select an auth profile for subagent spawn. (#126)
  • OpenRouter: preflight the workflow branch auth before running. (#130)
  • macOS: wire remote-control status and machine registry management. (#181)

Fixed

  • Multi-agent: restored the model's ability to spawn subagents by reverting the upstream #23144 deferral for this fork; the spawn tools are visible to the model again. (#339)
  • Statusline: render the goal-pursuit indicator inline in the statusline (locked on). (#340)
  • TUI: ported upstream streaming, status, and reasoning UX correctness fixes. (#328)
  • MCP: retry transient streamable-HTTP init and tools-list, and enforce a startup timeout. (#321)
  • Compact: retry previous-model remote compaction with the selected model. (#329)
  • Core: fork full-history subagents from ephemeral parents. (#298)
  • Rollout: removed deprecated conversation-list aliases. (#160)

Security

  • Exec server: bound untrusted JSON-RPC input (DoS hardening). (#319)
  • Network proxy: keep the MITM CA private signer in memory only. (#324)
  • Exec policy: harden forced-rm detection and migrate legacy allow rules. (#325)

Performance

  • Build: added a tiered validation harness to cut PR-drain wall time. (#288)

[0.1.71] - 2026-07-21

Tag: rust-v0.1.71 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.71 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.70...rust-v0.1.71

Release headlined by a fix for banked usage-limit resets not surfacing in /usage, plus usage credit and spend-control visibility, several upstream adopts, and macOS durable agent attach.

Added

  • Usage: /usage now surfaces the account credit balance and the spend-control limit, and the usage auto-recovery configuration is documented. (#333)
  • MCP: MCP client quality-of-life improvements and an rmcp 1.8.0 bump. (#314)
  • Prompts: adopted upstream system-prompt improvements, merged with the fork's customizations. (#332)
  • Core: ported upstream "core small" adopts (shell-snapshot PATH handling, retry logging, and dead-code cleanup). (#320)
  • macOS: wired durable agent attach/control and pending interactions. (#132)

Fixed

  • Usage: banked usage-limit resets now surface as available in /usage. (#336)
  • Usage: banked usage-limit resets stay visible when the reset-credit ledger refresh degrades, instead of disappearing. (#337)
  • Background agent: runs now fail on silent turn errors, and migration-skew guidance is clarified. (#283)

Security

  • App server: reject remote images at ingress (SSRF hardening). (#317)

Performance

  • TUI: cache flex heights per frame and finalized markdown renders. (#326)

Docs

  • App server: aligned the v2 guidance with the split protocol modules. (#150)

[0.1.70] - 2026-07-20

Tag: rust-v0.1.70 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.70 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.69...rust-v0.1.70

Feature release delivering the unified Infinity Agent tool-policy and attestation layer.

Added

  • Policy: unified the Infinity Agent tool policy and attestation onto a single fail-closed enforcement path. A signed (ed25519) VerifiedToolPolicy envelope is now the single source of truth for the infinity-agent tool policy: the tool router plans only the exact signed allowlist, dispatch-time rechecks reject any tool not authorized by the verified process policy, and construction fails closed when no policy is bound or the system trust key is missing. Consolidates the previous duplicate ToolsPolicy enum onto the single ToolPolicy enum (ConfigRequirements gains allowed_tool_policies + infinity_agent_trust_key), derives the auth-capsule capability document from the enforced allowlist, and — under the Infinity Agent policy — disables auth-profile auto-switch, usage self-heal, session recap, optional features, external instructions, history, and telemetry, forbids named auth profiles, and constrains MCP bridges to signed, credential-free HTTPS sources. (#307)

[0.1.69] - 2026-07-20

Tag: rust-v0.1.69 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.69 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.68...rust-v0.1.69

Release rolling up the features, fixes, and test/CI work merged since 0.1.68: a Kimi (Moonshot) subscription provider, an external-agent ACP adapter seam, documented OpenAI context windows, mailbox-dispatcher hardening, a read-only auth-profile crash fix, goal-plan resume, and assorted protocol/state fixes, plus a clean rustfmt pass to keep CI green.

Added

  • Model providers: added a Kimi (Moonshot) subscription login provider. (#297)
  • External agents: a common ACP (Agent Client Protocol) adapter seam so external-agent vendors share a single integration surface. (#285)
  • State: backfill managed worktree path keys. (#266)

Fixed

  • App server: the mailbox dispatcher now acknowledges mailbox claims before waking and hardens dispatcher ownership, preventing duplicate or lost claim handling. (#280)
  • Models: OpenAI API models now report their documented context windows instead of a stale fallback (for example the GPT-4.1 family's 1,047,576 window and the current GPT-5.x windows). (#281)
  • Login: auth-profile directory setup now tolerates a read-only CODEWITH_HOME by classifying read-only and permission-denied filesystem errors, so preflight/health runners no longer crash on immutable homes. (#284)
  • Goal plans: deferred goal-plan nodes now resume after an independent node completes instead of stalling. (#289)
  • Protocol: preserve the originating HTTP status for UnexpectedStatus turn errors. (#276)
  • Schedules: derive a schedule's last_completed_at from completed runs only. (#277)
  • merge-pr: made preflight checks robust across gh CLI versions. (#275)
  • Core: repaired a broken feedback_tags doctest in util.rs. (#292)
  • Formatting: reapplied cargo fmt (imports_granularity=Item) across code merged since 0.1.68 so the cargo fmt --check and just fmt-check CI gates pass. (#308)

Tests

  • Model providers: added cross-provider integration coverage. (#293)
  • SDK/CI: added bun and npm install smoke tests for the TypeScript SDK. (#287)

CI / Docs

  • CI: added a PR-drain sandbox template for E2B. (#270)
  • CI: pin the workspace root in the apply_patch move-traversal test for the Bazel sandbox. (#282)
  • CI: removed unsupported v8 rust-toolchain inputs. (#240)
  • Docs: documented building codex-rs on remote sandboxes (Blacksmith) instead of locally. (#305)
  • Docs: added an open-codewith runtime development skill. (#269)

[0.1.68] - 2026-07-20

Tag: rust-v0.1.68 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.68 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.67...rust-v0.1.68

Hotfix release fixing a standalone image-generation runtime 400 and restoring a clean workspace compile.

Fixed

  • Image generation: moved the standalone imagegen tool off the Responses-API reserved image_gen namespace to the non-reserved images namespace (new wire name images.imagegen, code-mode name images__imagegen). This fixes a runtime 400 Function 'image_gen.imagegen' is reserved for use by this model error while keeping image_gen in the reserved-namespace allowlists.
  • thread-manager-sample: added the missing tools_policy field to Config, restoring a clean workspace compile.

[0.1.67] - 2026-07-16

Tag: rust-v0.1.67 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.67 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.66...rust-v0.1.67

Hotfix release for ChatGPT subscription GPT-5.6 model compatibility. This release carries forward the banked usage-reset controls and remote-compaction history preservation shipped in 0.1.66.

Fixed

  • Model selection: removed the unsupported bare gpt-5.6 entry from ChatGPT model catalogs and defaults, and normalized exact legacy ChatGPT/OpenAI selections to gpt-5.6-sol across startup, resume, per-turn switching, and spawned agents. OpenAI API-key profiles and custom-provider model semantics remain unchanged.

[0.1.66] - 2026-07-16

Tag: rust-v0.1.66 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.66 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.65...rust-v0.1.66

Hotfix release for banked usage-limit resets and remote-compaction history preservation.

Added

  • Usage limits: /usage can now redeem an available banked reset, and a new default-off /config toggle can automatically redeem an exact weekly reset after Codewith revalidates the account, profile, credit, exhaustion window, and reset generation immediately before consumption.

Fixed

  • Compaction: V1 and V2 remote compaction now stop when the provider rejects the request for context overflow, preserving the complete unsummarized semantic history and leaving live history unchanged instead of deleting an older prefix before retrying.

[0.1.65] - 2026-07-14

Tag: rust-v0.1.65 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.65 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.64...rust-v0.1.65

Hotfix release for GPT-5.6 Sol backend version gating.

Fixed

  • Model selection: Codewith now advertises upstream Codex API compatibility 0.144.4 instead of the fork's low 0.1.x package version, so gpt-5.6-sol requests do not fail with the backend "requires a newer version of Codex" gate.
  • Model discovery: ChatGPT model catalog refreshes now use the same advertised Codex API compatibility version for model-list cache/version checks, keeping model availability aligned with request headers.

[0.1.64] - 2026-07-13

Tag: rust-v0.1.64 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.64 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.63...rust-v0.1.64

Hotfix release for ChatGPT subscription context-window compaction.

Fixed

  • Compaction: ChatGPT-authenticated OpenAI GPT-5.4, GPT-5.5, and GPT-5.6 model metadata now clamps API-sized fallback or stale remote context windows to the subscription-sized 272K raw window by default, so auto-compaction uses the 244.8K default compact threshold and the 258.4K effective full-window cap instead of waiting for a 1M-class API budget.
  • Status: ChatGPT profile switches and resumed/forked token-count replay now refresh or clamp stale API-sized context-window denominators while preserving smaller backend-reported ChatGPT replay windows.

[0.1.61] - 2026-07-09

Tag: rust-v0.1.61 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.61 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.60...rust-v0.1.61

Hotfix release for auth-profile switch status context windows.

Fixed

  • Status: sessions opened under a non-API/ChatGPT profile now refresh token-count context windows immediately after switching to an OpenAI API-key profile, so /status stops showing the prior 258K denominator and reflects the API model's 1M-class window without waiting for a new session.

Security

  • Dependencies: updated crossbeam-epoch to 0.9.20 to resolve RUSTSEC-2026-0204 from the release gate.

[0.1.60] - 2026-07-08

Tag: rust-v0.1.60 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.60 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.59...rust-v0.1.60

Hotfix release for restored OpenAI API-key profile status context windows.

Fixed

  • Status: resumed and forked sessions now refresh restored token-usage context windows from the active model metadata for API-key profiles, so /status does not continue displaying an old 258K denominator after a GPT model is configured with a 1M-class context window. ChatGPT login profiles preserve their replayed ChatGPT-catalog context behavior.

[0.1.59] - 2026-07-08

Tag: rust-v0.1.59 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.59 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.58...rust-v0.1.59

Hotfix release for OpenAI API-key profile context-window metadata.

Fixed

  • Provider model metadata: OpenAI API-key and provider-auth profiles now keep the bundled GPT-5.5 and GPT-5.4 1.05M context-window values when stale remote or cached OpenAI model metadata reports a smaller window. This fixes /status showing an effective 258K context denominator for API profiles instead of the effective 998K window after the configured 95% cap. ChatGPT login profiles continue to use the remote ChatGPT model catalog as the authoritative source.

[0.1.57] - 2026-07-05

Tag: rust-v0.1.57 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.57 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.56...rust-v0.1.57

Hotfix release for the loop-worker fork-conflict failure class, plus a user-facing agent max-threads control and the CI npm publish repair (#121, #123).

Fixed

  • Core: a full-history subagent fork (fork_context=true on stable v1, fork_turns=all on multi_agent_v2) combined with agent_type, model, or reasoning_effort no longer hard-rejects the spawn. Those overrides were already ignored on the full-fork path (the child config is built from the parent), so the reject was converted into a notice of the ignored fields (logged via tracing::warn) and the fork proceeds with inherited values. This removes the conflict-class errors that were failing routed loop workers in production; tool-schema descriptions now state the fields are inherited on a full-history fork. (#121)
  • Release: the publish-npm job now authenticates with the NODE_AUTH_TOKEN repository secret. npm trusted publishing (OIDC) was never configured for the @hasna/codewith* packages, so no fork release had ever published from CI; every prior npm release was published by hand. (#123)

Added

  • TUI: /config gains an agent max-threads control for the existing [agents] max_threads cap (preset choices, persisted to config.toml, live-applied to the session), replacing hand-editing of ~/.codewith/config.toml. Hidden while multi_agent_v2 governs threads. (#121)

[0.1.56] - 2026-07-04

Tag: rust-v0.1.56 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.56 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.55...rust-v0.1.56

Stability and provider-compatibility release. Follows 0.1.55 with 17 merged pull requests (#90-#107) focused on sqlite state-layer contention, chat and responses API compatibility across providers, TUI robustness, and the release toolchain pin that unblocks reproducible platform builds.

Fixed

  • State layer: writes are serialized on a single-connection pool to eliminate intra-process SQLITE_BUSY (517) under concurrent sessions; hot write paths (mailbox, logs, rollout) retry BUSY_SNAPSHOT and use BEGIN IMMEDIATE.
  • Chat-Completions tool-calling hardened for compatibility providers; dropped SSE items are now observable and function_call_arguments.delta is handled; reasoning is read and replayed on the chat-completions path.
  • reasoning_effort: none maps to low for Cerebras/NVIDIA chat/completions; namespace tools are disabled for the xAI responses API; Gemini thought_signature round-trips and the stray client_version query parameter is dropped.
  • Provider catalog: ollama and lmstudio built-in providers restored; known provider-model metadata and fallbacks refreshed.
  • TUI: /fork degrades gracefully on a thread with no rollout yet; /apps surfaces the underlying app/list failure reason; Enter dispatches the exact slash alias (/exit no longer opens /experimental).
  • Core: router FunctionCallError auto-log downgraded from error to debug; arg0 helper-symlink spawn race closed under concurrent sessions.
  • Release: Rust toolchain pinned to 1.96.1 in the release workflows for reproducible cross-platform builds.

Performance

  • State: default INFO-level log capture, bounded HTTP traces, off-transaction prune, and WAL checkpoints across all pools.

[0.1.55] - 2026-07-02

Tag: rust-v0.1.55 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.55 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.54...rust-v0.1.55

Consolidation release: merges all outstanding work since 0.1.51 (40 pull requests, 17 branches, and the 0.1.52-0.1.54 release lineage whose tags never published). Versions 0.1.52-0.1.54 were tagged but never reached npm due to release-pipeline failures fixed here.

Fixed

  • Release pipeline: libcap-2.75 musl download now falls back across verified mirrors (kernel.org -> OSUOSL -> Debian) with mandatory checksum; macOS builds use CARGO_PROFILE_RELEASE_CODEGEN_UNITS=16 and the aarch64 primary runs on macos-15-xlarge, ending the 3-hour timeouts that killed 0.1.52-0.1.54.
  • Goals state: databases stamped by published 0.1.48 are repaired before migration, preventing a permanent VersionMismatch(5) that disabled the sqlite state layer (threads, schedules, mailbox, goals) after upgrade.
  • OpenRouter GLM-5.2 metadata restored (parallel tool calls, High/XHigh reasoning presets, gpt-oss-120b as default fallback).
  • Usage-profile broker: scheduled dispatches now defer while all sibling profiles are cooling down instead of feeding the failure circuit breaker.
  • Remote and sandboxed filesystems support symlink-safe reads, so project instructions (CODEWITH.md/AGENTS.md) load in remote sessions.
  • Mailbox: queued-input API restored; delivery defer rolls back on enqueue rejection; delivery-policy parsing matches the SQL claim filter; queued context delivery is bounded.
  • Loops/schedules: deferred runs during usage waits; stale-scheduler guards; live-session owner routing; scheduled turns no longer truncate interactive session history.
  • macOS app: dock re-open restores the hidden window; deploy script bundles a real CLI binary with CLI-derived bundle version.

Added

  • /teach, /variant, /usage, /pair TUI commands; slash-command alias dedupe.
  • Webhook event inbox; session PR worktree mode; nested loops to depth five; goal plan appends; approval-gated agent MCP management; compact CLI output; experimental smart suggest; CODEWITH.md native instruction imports.
  • Auth profile usage health checks and hardened usage-profile autoswitch.
  • Codewith bridge adapter surfaces (profile list --json, authProfile in thread inventory); workflow model routing contract; sourced additional context.
  • Security hardening: canonical PR-mode cwd, thread-monitor path handling, remote-control-origin RPC gating, mission-control model tool hardening, update-RPC import blocking, symlinked project-instruction rejection, remote-control credential handling.
  • macOS app: navigation data and session controls, profile settings flows, visual system aligned with the Hasna dashboard.
  • Release CI: sccache (fail-open) across release workflows for warm-cache builds from 0.1.56 onward.

Security

  • Node supply-chain advisories patched; anyhow 1.0.103 (RUSTSEC-2026-0190); quick-xml advisories documented as compile-time-only exposure; gitleaks config with tightly-scoped test-canary allowlist.

Known issues

  • Windows argument-comment-lint CI job fails on aws-lc-sys feature probes under clang-cl (pre-existing; release builds unaffected).
  • sccache resolves its latest release at install time (fail-open; pin planned).
  • Remote no-follow reads have a documented TOCTOU window between metadata and read RPCs.

Fixed

  • Recovered loop-driven and long-running turns from context-window overflow errors by compacting mid-turn and retrying once before surfacing the failure.

[0.1.54] - 2026-07-02

Tag: rust-v0.1.54 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.54 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.53...rust-v0.1.54

Fixed

  • Tuned macOS primary release builds to override the workspace release codegen-units = 1 setting, preventing the full CLI release build from timing out before npm publishing can run.

[0.1.53] - 2026-07-01

Tag: rust-v0.1.53 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.53 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.52...rust-v0.1.53

Fixed

  • Preserved durable resumed thread cwd, workspace roots, permission profile, auth profile, model settings, approval policy, and reasoning effort unless a codewith exec resume caller explicitly overrides them.
  • Restored permission profiles from persisted rollout history when resuming headless threads, preventing ambient caller sandbox defaults from replacing the original agentic work sandbox.
  • Fixed the human startup summary for resumed codewith exec sessions so it reports the effective resumed session configuration instead of the local caller process defaults.

[0.1.52] - 2026-07-01

Tag: rust-v0.1.52 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.52 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.51...rust-v0.1.52

Fixed

  • Added explicit durable headless execution flags for codewith exec (--durable and --persist) while keeping persistent execution as the default and rejecting conflicting --ephemeral usage.
  • Preserved GPT-5.5 model metadata at the full 272k context window and added focused regression coverage for GPT-5.5 context-window handling and auto-compact behavior.

[0.1.51] - 2026-06-26

Tag: rust-v0.1.51 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.51 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.50...rust-v0.1.51

Fixed

  • Added a SQLite-level guard so already-running stale Codewith scheduler processes cannot claim a /loop that belongs to a fresh live interactive session, preventing background execution from stealing turns that should be visible in the TUI.
  • Hardened manual /loop run-now claims with the same live-owner protection, including regression coverage for legacy claim suppression, foreign live-owner rejection, and owner-scoped successful claims.

[0.1.50] - 2026-06-26

Tag: rust-v0.1.50 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.50 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.49...rust-v0.1.50

Fixed

  • Fixed fresh interactive /loop sessions so creating a loop materializes the thread rollout before the loop can fire, allowing cold resume and cross-process recovery instead of failing with thread not found.
  • Routed due scheduled loop claims away from other local Codewith processes while a fresh live owner is active, so background pollers cannot consume a loop that should inject into the visible interactive session.
  • Added regression coverage for fresh no-turn loop materialization, foreign active-owner claim suppression, stale-owner recovery, and repeated visible scheduled-turn injection.

[0.1.49] - 2026-06-26

Tag: rust-v0.1.49 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.49 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.47...rust-v0.1.49

Notes

  • Corrective release that intentionally supersedes 0.1.48. The 0.1.48 publish came from a broad spark01 preservation branch and could trigger local SQLite migration checksum failures; this release returns to the migration-safe 0.1.47 base and reapplies the loop and mailbox fixes.

Fixed

  • Hardened scheduled /loop execution so usage waits and busy threads defer runs without incrementing failure counts, then re-arm correctly after retry.
  • Restored repeated interval loop injection as visible interactive turns, with regression coverage proving each firing creates a fresh turn, persists user and assistant messages, and submits a distinct model request.
  • Reapplied mailbox dispatcher fixes on the safe migration base, including queued mailbox input handling and local active-session migration stability.

[0.1.46] - 2026-06-24

Tag: rust-v0.1.46 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.46 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.45...rust-v0.1.46

Fixed

  • Hardened scheduled Codewith runs so usage-profile handoff, auth-profile fallback, and usage-exhaustion retry timing are resolved before a scheduled turn starts.
  • Hardened scheduled-run turn bookkeeping so immediate approval, permission, or startup failures do not lose the run mapping before the model-side wait can resume.
  • Improved scheduled-run failure messages with contextual error reporting and structured handling for turn errors.
  • Clarified the scheduled-run prompt so cadence text is treated as schedule context and durable follow-up work uses native goal tools rather than accidental nested schedules.

Release

  • Published @hasna/codewith 0.1.46 as a scheduled-run hotfix from the fix/loops-runtime-0.1.46 release branch.
  • Left @hasna/codewith-sdk and @hasna/codewith-responses-api-proxy at 0.1.45; those packages are staged by the release packaging script from source manifests that intentionally keep template versions.
  • Reconciled the missing GitHub Release metadata for rust-v0.1.46 as a metadata-only, non-latest release during the 2026-06-24 release-compliance follow-up; no platform binaries, installers, checksums, or DotSlash artifacts were attached to this hotfix release.

[0.1.45] - 2026-06-24

Tag: rust-v0.1.45 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.45 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.43...rust-v0.1.45

Changed

  • Prepared the branch and worktree drain release after merging the completed non-macOS backlog PRs into main.
  • Bumped the Codewith CLI, Rust workspace, and npm package metadata to 0.1.45.

Fixed

  • Included the merged drain hardening for queued rules, session machine context, schedule auth recovery, pending interaction responses, provider usage accounting, managed worktree cleanup, SQLite feedback log churn, TUI PR surfaces, statusline summaries, and goal title display.
  • Moved the x86_64 macOS release build to the macos-15-xlarge runner so the signed platform package matrix can complete.

Verification

  • Rebuilt and smoke-tested the Linux ARM64 release binary and npm package before publish; the rust-release workflow builds and publishes the remaining signed platform packages from this tag.

[0.1.43] - 2026-06-21

Tag: rust-v0.1.43 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.43 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.42...rust-v0.1.43

Added

  • Added /tmux --session <name> --window <name> handoff support so an active Codewith TUI can move into a specific existing tmux session and window, while preserving the existing automatic session creation behavior when no target is supplied.
  • Added workflow run management surfaces for creating, listing, starting, pausing, resuming, and cancelling workflow runs from the TUI and model-visible workflow management tool.
  • Added /changelog in the TUI so release notes are available inside the product.
  • Added Mission Control schedule visibility and schedule-aware empty states.
  • Added Z.ai GLM-5.2 model metadata with the documented glm-5.2 model ID, 1M context window, text-only input modality, native tool/web-search support, and GLM-5.2 reasoning presets.

Changed

  • Promoted workflows into the experimental feature menu while keeping them disabled by default.
  • Updated model instruction templates and catalog metadata to ask models for effort estimates when planning work.
  • Improved loop and schedule manager rows so prompts are the primary label and status/spec details stay in row descriptions.
  • Aligned Claude external-agent auth with Claude Agent SDK guidance by using API-key/provider environment auth for launches and hiding Claude.ai from the generic new subscription-profile picker.

Fixed

  • Hardened workflow lifecycle handling around run control, boxed display responses, and model-facing unavailable states for unsaved threads.
  • Hardened app-server daemon startup so embedded/local daemon starts can use the active Codewith binary while managed installs still use the managed binary.
  • Hardened background-agent managed worktree release so active background-agent leases use the lease release path and cannot be bypassed by generic worktree detach or release.
  • Hardened background-agent stop/delete ordering, diagnostics pending counts, and rollout/thread validation.
  • Hardened durable background-agent supervisor attach/stop behavior for delivered interactions, delete-requested runs, and unclaimed queued runs.
  • Preserved usage accounting when resuming blocked or usage-limited goals.
  • Kept usage self-heal retry tests active even when retry behavior is gated by config defaults.

[0.1.42] - 2026-06-20

Tag: rust-v0.1.42 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.42 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.41...rust-v0.1.42

Fixed

  • Fixed strict Responses API schemas for Mission Control tools so optional arguments are represented as nullable required fields and invalid strict tool schemas are rejected locally before reaching the provider.

[0.1.41] - 2026-06-19

Tag: rust-v0.1.41 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.41 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.40...rust-v0.1.41

Added

  • Added shared collaboration surfaces for Mission Control, managed worktrees, active sessions, workflows, mailboxes, pending interactions, and local session discovery through the app-server API and TUI.
  • Added durable workflow and worktree state, including managed worktree assignment, cleanup policies, workflow plan projections, and machine registry support.
  • Added interactive TUI flows for /worktree, Mission Control, workflow displays, usage profile routing, and goal-plan detail navigation.

Changed

  • Promoted the Mission Control and worktree app-server entrypoints from experimental-only APIs to stable protocol surfaces.
  • Bounded goal-plan event payloads so large plans stay useful without flooding model-visible event context.

Fixed

  • Hardened worktree assignment rollback, stale owner cleanup, agent attachment validation, workflow prompt bounds, and cancelled goal-plan status handling after adversarial review.

[0.1.40] - 2026-06-17

Tag: rust-v0.1.40 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.40 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.39...rust-v0.1.40

Added

  • Added model gateway metadata and gateway-aware model/provider browsing, including OpenRouter routing details in the app-server API and TUI pickers.
  • Added durable goal-plan storage, app-server plan listing, AI goal-plan tools, and a TUI goal manager view for plan progress.
  • Added external-agent readiness checks, cancellation, safer readable roots, and hardened Cursor, Claude, and Grok Build flows.
  • Added Shift+Tab permission preset cycling with /keymap remapping support.

Changed

  • Preserved auth-profile permission choices across profile switches and added profile-targeted rate-limit reads for fresher profile picker usage state.
  • Reorganized config popups into clearer sections and expanded common config toggle coverage.
  • Updated built-in provider/model metadata and model availability display.

[0.1.39] - 2026-06-16

Tag: rust-v0.1.39 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.39 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.38...rust-v0.1.39

Fixed

  • Superseded the partial 0.1.38 npm wrapper so the final launch package can publish a fresh root version with the complete platform optional dependency matrix.

[0.1.38] - 2026-06-16

Tag: rust-v0.1.38 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.38 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.37...rust-v0.1.38

Fixed

  • Superseded 0.1.37 with a smaller Apple Silicon native npm package after the initial Darwin tarball metadata published but the tarball blob was not fetchable from the registry.

[0.1.37] - 2026-06-16

Tag: rust-v0.1.37 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.37 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.36...rust-v0.1.37

Added

  • Added /loop stats and /schedule stats slash command handling with automatic schedule selection when only one matching item exists.
  • Included schedule run statistics in loop management tool responses.

Changed

  • Improved auth-profile picker descriptions with plan and email details, compact separators, and a shared action hint.
  • Recognized the newer scheduled-prompt guardrail text while still hiding legacy scheduled-prompt scaffolding from user-visible message history.

Fixed

  • Published matching native Bun packages for the machines updated during this release, including Apple Silicon installs.

[0.1.36] - 2026-06-16

Tag: rust-v0.1.36 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.36 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.35...rust-v0.1.36

Changed

  • Kept auth-profile usage data fresh in the profile picker while the TUI remains open.
  • Simplified selected auth-profile helper text and hid unknown usage placeholders when no usage data has been loaded yet.

Fixed

  • Preserved the selected profile row when usage data refreshes while the profile picker is open.

[0.1.35] - 2026-06-16

Tag: rust-v0.1.35 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.35 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.34...rust-v0.1.35

Added

  • Added external subscription auth profiles for Claude.ai, Cursor, and Grok.
  • Added Claude Code as an external-agent runtime alongside Cursor and Grok Build.
  • Added provider metadata to auth profile listings and AI-callable profile management responses.

Changed

  • Claude Code external-agent runs now require a matching active Claude.ai subscription profile before launching the Claude CLI.
  • Claude Code external-agent launches preserve stable local Claude config paths without copying provider API keys.
  • Slash command results remain flat and top-level while showing useful aliases, /apps when available, and /debug-config.

Fixed

  • Fixed release workflow notes so stable rust-v0.1.* tags read the matching section from CHANGELOG.md.
  • Fixed external-agent sandbox selection for permission profiles that require direct runtime enforcement.
  • Preserved legacy Cursor and Grok Build external-agent CLI auth paths when no matching Codewith subscription profile is selected.
  • Hid internal memory debug slash commands from the regular command picker.
  • Refined Codewith TUI accent/shimmer styling for better contrast.

[0.1.34] - 2026-06-15

Tag: rust-v0.1.34 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.34 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.33...rust-v0.1.34

Fixed

  • Restored the flat, one-level slash command picker.
  • Removed nested slash command category rows and trailing category paths such as /session/.
  • Kept slash command aliases hidden by default while showing real top-level commands for an empty / prompt.

[0.1.33] - 2026-06-15

Tag: rust-v0.1.33 Release: https://github.com/hasna/codewith/releases/tag/rust-v0.1.33 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.33 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.32...rust-v0.1.33

Added

  • Added an AI-callable goal resume tool so the model can resume paused, blocked, or usage-limited goals when appropriate.

Fixed

  • Rejected attempts to resume budget-limited goals without changing the token budget.
  • Avoided token-accounting and event side effects when a budget-limited goal resume is rejected.

[0.1.32] - 2026-06-15

Tag: rust-v0.1.32 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.32 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.31...rust-v0.1.32

Added

  • Added app-server active-session peer registry and messaging APIs.
  • Added lean TUI active-session and agent commands.
  • Added Codewith authentication profile login, persisted profile ordering, usage hints, and active profile switching.

Fixed

  • Fixed scheduled loop run visibility.
  • Hardened active-session delivery when a target session is no longer loaded.
  • Repaired main merge fallout in app-server and TUI test/config paths.

Notes

  • This was a large main-line repair release after merging the Codewith release line and upstream sync work back together.

[0.1.31] - 2026-06-15

Tag: rust-v0.1.31 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.31 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.30...rust-v0.1.31

Fixed

  • Fixed Xiaomi MiMo provider routing across core turns and app-server thread settings, starts, and turn starts.

[0.1.30] - 2026-06-15

Tag: rust-v0.1.30 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.30 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.29...rust-v0.1.30

Added

  • Added the durable background-agent runtime foundation and app-server/CLI/TUI management surfaces.
  • Added the external-agent app-server runtime bridge.
  • Added a config MCP self-heal workflow.
  • Added xAI as a built-in model provider.
  • Added monitor management APIs and slash-command controls.
  • Added slash command fuzzy ranking.

Changed

  • Restored the canonical Codewith changelog after 0.1.29 reduced it to a release-page pointer.
  • Refreshed rate-limit status completions by auth profile.
  • Added fast Rust test workflow guidance.

[0.1.29] - 2026-06-14

Tag: rust-v0.1.29 Release: https://github.com/hasna/codewith/releases/tag/rust-v0.1.29 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.29 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.28...rust-v0.1.29

Added

  • Expanded TUI session-management surfaces, including terminal/tmux handoff, UI dynamic tools, status controls, and profile/session actions.
  • Added an external-agent runtime bridge for app-server-managed agent runs.
  • Added provider hosted-search metadata and hosted tool specs.
  • Added monitor manager creation support.

Fixed

  • Hardened monitor and schedule runtimes in app-server.
  • Completed hosted provider tool metadata.

Notes

  • The CHANGELOG.md file in this tag only pointed to the GitHub Releases page; this entry was reconstructed from the tagged git history and npm metadata.

[0.1.28] - 2026-06-12

Tag: rust-v0.1.28 Release: https://github.com/hasna/codewith/releases/tag/rust-v0.1.28 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.28 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.27...rust-v0.1.28

Fixed

  • Continued auth profile auto-switching across profiles instead of stopping after the first profile transition.

[0.1.27] - 2026-06-12

Tag: rust-v0.1.27 Release: https://github.com/hasna/codewith/releases/tag/rust-v0.1.27 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.27 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.26...rust-v0.1.27

Added

  • Added the durable background-agent runtime foundation, including the codex-rs/background-agent crate, daemon, supervisor, and process lifecycle handling.
  • Added persisted background-agent state for runs, events, snapshots, interactions, worktrees, and process handles.
  • Added app-server background-agent APIs for starting, listing, reading, attaching, detaching, stopping, deleting, reading events, responding to pending interactions, and retrieving daemon diagnostics.
  • Added CLI controls for starting, listing, reading, attaching to, viewing logs for, stopping, deleting, and diagnosing background agents.
  • Added TUI background-agent slash surfaces through /agent, /background-agent, and /bg-agent.

Release

  • Gated optional release follow-up work so it does not block the package path unexpectedly.

[0.1.26] - 2026-06-11

Tag: rust-v0.1.26 Release: https://github.com/hasna/codewith/releases/tag/rust-v0.1.26 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.26 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.25...rust-v0.1.26

Fixed

  • Reduced Linux release build pressure and made artifact compression faster.
  • Gave cold release builds more headroom.
  • Allowed unsigned macOS publishing for the Codewith release path.
  • Satisfied provider model checks required by the release gate.

[0.1.25] - 2026-06-09

Tag: rust-v0.1.25 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.25 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.24...rust-v0.1.25

Added

  • Added Anthropic as a built-in model provider.

[0.1.24] - 2026-06-09

Tag: rust-v0.1.24 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.24 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.23...rust-v0.1.24

Added

  • Added Xiaomi MiMo as a built-in model provider.

Documentation

  • Documented the fast Codewith release gate policy.

[0.1.23] - 2026-06-09

Tag: rust-v0.1.23 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.23 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.22...rust-v0.1.23

Changed

  • Merged upstream Codex through the V8 update while preserving Codewith provider, auth-profile, and release behavior.
  • Increased Bazel and argument-comment-lint timeouts for slower CI jobs.
  • Adjusted Linux ARM test and archive jobs to reduce release pressure.

Fixed

  • Preserved provider auth and active provider state through compaction.
  • Reported auth profile settings through app-server thread settings.
  • Fixed provider model cache metadata, identity, source, and TTL behavior.
  • Hardened Windows PTY, Guardian, remote-control, websocket, schedule, hook, and remote exec tests.
  • Stabilized fork-specific CI snapshots, codespell checks, argument comments, advisory baselines, and platform-specific imports.

[0.1.22] - 2026-06-06

Tag: rust-v0.1.22 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.22 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.21...rust-v0.1.22

Fixed

  • Refreshed NVIDIA fallback model metadata.

[0.1.21] - 2026-06-06

Tag: rust-v0.1.21 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.21 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.20...rust-v0.1.21

Added

  • Added thread monitor workflows.

[0.1.20] - 2026-06-06

Tag: rust-v0.1.20 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.20 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.19...rust-v0.1.20

Fixed

  • Refreshed provider fallback models.

[0.1.19] - 2026-06-06

Tag: rust-v0.1.19 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.19 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.18...rust-v0.1.19

Fixed

  • Repaired provider switching.

[0.1.18] - 2026-06-05

Tag: rust-v0.1.18 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.18 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.17...rust-v0.1.18

Added

  • Added the provider-scoped metadata catalog.

Fixed

  • Clarified MCP startup failures.

[0.1.17] - 2026-06-05

Tag: rust-v0.1.17 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.17 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.16...rust-v0.1.17

Fixed

  • Preserved the selected model provider for turns.

[0.1.16] - 2026-06-05

Tag: rust-v0.1.16 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.16 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.9...rust-v0.1.16

Notes

  • This is an aggregate tagged release covering the npm-only 0.1.10 through 0.1.15 publications. The entries below preserve the per-publication npm history, while this tagged section records the complete tag delta from rust-v0.1.9 to rust-v0.1.16.
  • No additional user-facing delta beyond release/tag catch-up was found between the committed 0.1.14 release bump and the 0.1.16 tag in the available refs.

[0.1.15] - 2026-06-04

npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.15

Notes

  • Historical npm publication. No matching local tag or committed release bump was found in the available refs; changes are covered by the surrounding 0.1.14 to 0.1.16 release range.

[0.1.14] - 2026-06-04

npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.14

Tests

  • Isolated Codewith home in integration tests.
  • Added coverage for shell and network permission hooks.

[0.1.13] - 2026-06-04

npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.13

Fixed

  • Preserved live schedule leases through expiry.

[0.1.12] - 2026-06-04

npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.12

Fixed

  • Recomputed recurring next runs when loops resume.

[0.1.11] - 2026-06-04

npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.11

Fixed

  • Expired completed one-time schedules.
  • Scoped schedule and loop actions to the current thread.

[0.1.10] - 2026-06-04

npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.10

Added

  • Added Codewith workflow skills.
  • Made schedules one-time events.

[0.1.9] - 2026-06-03

Tag: rust-v0.1.9 npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.9 Compare: https://github.com/hasna/codewith/compare/rust-v0.1.0...rust-v0.1.9

Added

  • Added thread schedule controls.
  • Added an auth profile status item.
  • Added spec-plan loop tools, TUI approval overlay updates, and skills rendering.

Changed

  • Switched provider selection from prefixed model IDs to explicit providers.
  • Bundled third-party licenses in the Codewith package layout.

Fixed

  • Wrapped the passive footer status line.

[0.1.8] - 2026-06-03

npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.8

Fixed

  • Advertised a Codex API-compatible version during login so gpt-5.5 is not incorrectly gated.

[0.1.7] - 2026-06-03

npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.7

Changed

  • Completed the broad Codex to Codewith rebrand across codex-rs, CI, scripts, docs, root config, and release metadata.
  • Migrated project configuration and skill paths from .codex to .codewith.
  • Rebranded the Python and TypeScript SDK surfaces to Codewith.

Fixed

  • Resolved Codewith package layout directories while keeping legacy Codex fallback paths.
  • Preferred Codewith instruction paths.
  • Stabilized cross-platform CI expectations and remote unified exec tests.

[0.1.6] - 2026-06-03

npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.6

Notes

  • Historical npm publication. No matching local tag or committed release bump was found in the available refs. Available history around this publication is the early release-workflow hardening window after rust-v0.1.0.

[0.1.4] - 2026-06-03

npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.4

Notes

  • Historical npm publication. No matching local tag or committed release bump was found in the available refs. Available history before this npm timestamp includes native binary exposure, Codewith package metadata and release workflow hardening, runtime/docs alignment, bundled prompt branding, model catalog fixes, and CI/test stabilization.

[0.1.3] - 2026-06-02

npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.3

Changed

  • Aligned repository metadata with Codewith.
  • Completed the Codewith runtime rename.
  • Preferred .codewith project instructions.

Fixed

  • Refreshed stale workspace fixtures.

[0.1.2] - 2026-06-02

npm: https://www.npmjs.com/package/@hasna/codewith/v/0.1.2

Changed

  • Rebranded the CLI as Codewith.

Fixed

  • Reconstructed raw command history.
  • Preserved large code-mode text output.
  • Stabilized scheduled loop acknowledgements.

[0.1.1] - 2026-06-02

Notes

  • Historical Codewith release bump found in git history. npm no longer lists this version in the current versions array.

[0.1.0] - 2026-06-03

Tag: rust-v0.1.0 Compare: https://github.com/hasna/codewith/compare/20fedafff8...rust-v0.1.0

Notes

  • This is the first stable Codewith rust-v0.1.* tag. It aggregates the early fork work and overlaps the first npm publications, whose registry history is less complete than the tag history.

Added

  • Added scheduled loop tasks.
  • Added provider picker and OpenRouter model support.
  • Added provider-scoped model selection.
  • Added auth profile switching, concurrent auth profiles, and session auth profile switching.
  • Added the /config popup.
  • Added explicit goal replacement.
  • Added OpenRouter cache routing and live pricing metadata.

Changed

  • Packaged the private iappcodex CLI and pointed early package metadata at the fork repository.
  • Rebranded the CLI as Codewith.
  • Shared config value persistence.
  • Included local agent state.

Fixed

  • Disabled managed automatic update prompts for the fork.
  • Hardened auth-home isolation for the private package.
  • Refreshed status after auth profile switches.
  • Used musl Linux platform artifacts for npm packages.
  • Stabilized stack-heavy TUI tests.

Maintenance Process

Use this process when preparing or auditing Codewith release notes:

  1. Determine published npm versions: npm view @hasna/codewith versions --json and npm view @hasna/codewith time --json.
  2. Determine relevant Codewith tags: git tag --list 'rust-v0.1.*' --sort=v:refname.
  3. Check GitHub release coverage: gh release list --repo hasna/codewith --limit 40.
  4. For each release, choose the previous Codewith boundary. Prefer the previous stable rust-v0.1.* tag; when npm publications exist without tags, add explicit npm-only entries or an aggregate tagged-release note.
  5. Audit git log <previous-boundary>..<new-boundary> and filter out upstream-only noise with --cherry-pick, --right-only, and first-parent history as needed.
  6. Classify user-facing changes under Added, Changed, Fixed, Security, Release, Documentation, Tests, or Notes. Do not paste raw commit dumps.
  7. Record evidence gaps explicitly when a published npm version has no matching local tag or committed release bump.
  8. Do not record uncommitted dirty-worktree state as release notes. Move active work into Unreleased only after it is committed or otherwise has a durable review boundary.
  9. Before every public rust-v* release, verify that codex-rs/Cargo.toml, codex-cli/package.json, the rust-v* tag, GitHub Release name, and npm version agree.
  10. The release workflow or release operator must stop if the matching CHANGELOG.md section is missing. GitHub Release bodies must come from the matching section, not from the tagged release bump commit.
  11. If a release is cut from a release branch, merge or backport the changelog update to the durable branch.