Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Listen to the SwiftASB Codex apps promo clip:

### Status

SwiftASB is actively maintained and supported by Gale. Our current API is v1, and `v1.7.5` is the current and latest release.
SwiftASB is actively maintained and supported by Gale. Our current API is v1, and `v1.8.0` is the current and latest release.

### What This Project Is

Expand All @@ -38,7 +38,7 @@ I built SwiftASB because I saw so many others building and forking existing Apps
Add SwiftASB to your `Package.swift` dependencies:

```swift
.package(url: "https://github.com/gaelic-ghost/SwiftASB", from: "1.7.5"),
.package(url: "https://github.com/gaelic-ghost/SwiftASB", from: "1.8.0"),
```

Then add the library product to your target dependencies:
Expand All @@ -60,7 +60,7 @@ Check your Codex version:
```bash
codex --version
```
*Note: SwiftASB currently supports the reviewed current Codex CLI minor release, `0.140.x`, and the latest prior minor, `0.139.x`, when that prior runtime remains compatible. This narrow reviewed window will be revised once the app-server schema stabilizes or Codex CLI reaches a v1.x.x release.*
*Note: SwiftASB currently supports the reviewed current Codex CLI minor release, `0.142.x`, and the latest prior minor, `0.141.x`, when that prior runtime remains compatible. This narrow reviewed window will be revised once the app-server schema stabilizes or Codex CLI reaches a v1.x.x release.*

Add the Socket Marketplace to Codex and enable the SwiftASB Skills Plugin:

Expand Down
43 changes: 29 additions & 14 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
| --- | --- | --- |
| Bundled schema-driven wire generation | `Shipped internally` | `scripts/generate-wire-types.sh` derives from the bundled v2 schema, patches dynamic JSON to `CodexWireJSONValue`, and validates the staged Swift output. |
| Promoted generated v2 wire snapshot | `Shipped internally` | `Sources/SwiftASB/Generated/CodexWire/Latest/` now contains a wider lifecycle batch covering bootstrap, stored and loaded thread reads, filesystem reads and watches, config reads, extension inventory, remote-control status plus pairing/client-management wire families, thread goals, and many thread, turn, item, reasoning, and tool-progress notifications, alongside the hand-owned `CodexWireInitializeResponse` shim. |
| Codex CLI schema review | `Shipped / ongoing` | The current reviewed compatibility window is `codex-cli 0.140.x plus 0.139.x when feasible`; the staged `v0.140.0` refresh promoted additive config, plugin/app metadata, selected capability roots, and sub-agent activity wire changes internally, widened the public turn-item kind for `subAgentActivity`, and removed old public compatibility shims for fields no longer present in the reviewed app-server shape while preserving the repeatable dump and generation path through `scripts/dump-codex-schemas.sh` and `scripts/generate-wire-types.sh`. |
| Codex CLI schema review | `Shipped / ongoing` | The current reviewed compatibility window is `codex-cli 0.142.x plus 0.141.x when feasible`; the staged `v0.142.4` refresh promoted the generated v2 lifecycle batch internally, added generated `Sendable` coverage, exposed the new `sleep` turn-item kind, kept deprecated multi-agent mode fields internal for compatibility, typed external-agent config import completion internally, and preserved the repeatable dump and generation path through `scripts/dump-codex-schemas.sh` and `scripts/generate-wire-types.sh`. |
| Stdio subprocess transport | `Shipped internally` | The transport launches `codex app-server --listen stdio://`, frames newline-delimited JSON, correlates request IDs, and captures stderr for diagnostics. |
| Raw server-event fanout | `Shipped internally` | Transport can stream raw JSON-RPC notifications and server requests to higher layers. |
| Typed protocol request encoding | `Shipped internally` | `initialize`, `initialized`, core thread and turn methods, archive-state actions, filesystem reads and watches, config reads, app/skill/plugin/collaboration-mode inventory, model/MCP/hook reads, MCP resource reads, and thread-goal methods are encoded through the protocol layer. |
Expand Down Expand Up @@ -88,7 +88,7 @@
| Internal thread history persistence | `Partially shipped` | The package now has a Core Data-backed `ThreadHistoryStore` that persists live-built thread and turn history, hydrates stored turns from `thread/read`, `thread/resume`, `thread/fork`, and `thread/turns/list`, seeds previously unknown local threads from paged history, widens persisted turn identity to stay thread-scoped across forks, and records explicit fork lineage while preserving conservative reconciliation that keeps richer local detail when upstream stored history is thinner. Public history paging/search helpers and archive-retention policy are still open. |
| Direct local Codex thread storage | `Planned / prototyped` | SwiftASB now has a maintainer plan for an opt-in, read-only local Codex storage reader that can inventory threads through Codex's SQLite metadata and lazily hydrate JSONL evidence without forcing every caller through the app-server JSONL pipe. AgentSB prototypes the inspection shape for reports only; the package API, version gates, privacy defaults, and fallback behavior remain separate SwiftASB design work. See [`docs/maintainers/codex-direct-thread-storage-plan.md`](docs/maintainers/codex-direct-thread-storage-plan.md). |
| Convenience run API | `Not started` | No `run(...)` or one-shot text convenience layer yet. |
| Binary discovery and compatibility policy | `Partially shipped` | Explicit binary override exists, the docs now define a current-reviewed Codex CLI support window of `0.140.x plus 0.139.x when feasible`, transport startup checks PATH, common Homebrew paths, and the npm global prefix on macOS, and `cliExecutableDiagnostics()` now exposes the resolved binary, version string, and documented support-window assessment. Any further diagnostics work is now expansion rather than a missing baseline surface. |
| Binary discovery and compatibility policy | `Partially shipped` | Explicit binary override exists, the docs now define a current-reviewed Codex CLI support window of `0.142.x plus 0.141.x when feasible`, transport startup checks PATH, common Homebrew paths, and the npm global prefix on macOS, and `cliExecutableDiagnostics()` now exposes the resolved binary, version string, and documented support-window assessment. Any further diagnostics work is now expansion rather than a missing baseline surface. |
| README-level consumer docs | `Shipped / ongoing` | The README covers installation, runtime assumptions, first-use examples, the supported lifecycle, SwiftUI companion surfaces, and the current Codex CLI compatibility window. Future README work should track new public API additions rather than prerelease readiness. |
| AgentSB maintainer automation | `Report-first maintainer app` | `Tools/AgentSB/` is a repo-local Python maintainer app that inspects SwiftASB deterministically, writes tracked reports under `docs/agents/reports/`, evaluates safety-boundary cases, diffs schema dumps, writes reviewable maintenance drafts, and prototypes local Codex thread-index inspection for future SwiftASB planning. The v1 boundary stays report-first: safe auto-apply is classifier-gated and limited to AgentSB-owned report artifacts, and it must not mutate Swift source, generated wire snapshots, public API, releases, or behavior-changing docs. |
| Agent workflow guidance | `Shipped / ongoing` | SwiftASB-specific Codex guidance now ships through `socket`'s [`swiftasb-skills`](https://github.com/gaelic-ghost/socket/tree/main/plugins/swiftasb-skills) plugin, with skills for explaining SwiftASB, choosing an integration shape, building SwiftUI-facing app state, and diagnosing integration failures. This repo now points package users and maintainers at that plugin while keeping SwiftASB source, DocC, tests, generated-wire review, and release notes here as the package source of truth. |
Expand All @@ -112,17 +112,20 @@ lifecycle, SPI visibility, basic history hydration, first-pass reconciliation,
or command-approval completion. Those slices now exist and shipped in the
`v1.7.1` baseline.

The next meaningful work after the `v1.7.5` patch release is to probe and deliberately shape the newly promoted
Codex CLI `0.140.x` wire families before widening public API further. The
`v0.140.0` promotion refreshes the internal wire snapshot, exposes
`subAgentActivity` as a public turn-item kind, and removes older public
compatibility shims for prior app-server shapes rather than carrying fallback
fields forward. Capability roots, plugin sharing metadata, remote-control
The next meaningful work after the `v1.8.0` patch release is to probe and deliberately shape the newly promoted
Codex CLI `0.142.x` wire families before widening public API further. The
`v0.142.4` promotion refreshes the internal wire snapshot, widens the public
turn-item kind enum for the new `sleep` item type, keeps the `subAgentActivity`
public turn-item kind from the prior refresh, and carries new multi-agent mode
compatibility, typed external-agent config import completion, and broader
internal `Sendable` generated-wire coverage without adding new public request
or action surfaces. Capability roots, plugin sharing metadata, remote-control
pairing/client management and pairing status, account token usage, turn
moderation metadata, plugin app templates, richer turn-start context, runtime
workspace roots, environments, structured output schemas, and rollout-path
forking still need live behavior evidence before SwiftASB turns them into
stable Swift surfaces. Descriptors should compile
stable Swift surfaces.
Descriptors should compile
against Codex-owned workspace, Git, file, and thread facts wherever possible,
rather than making SwiftASB or a sandboxed client infer repository identity by
walking the local filesystem.
Expand Down Expand Up @@ -783,7 +786,7 @@ workflow earns them in a later feature release.
- [x] Decide whether v1 should support only the latest documented rolling window
or whether a shorter first-v1 compatibility promise is more honest.
Decision: use a narrow current-plus-latest-prior support window where
feasible, currently `0.140.x plus 0.139.x when feasible`, and widen
feasible, currently `0.142.x plus 0.141.x when feasible`, and widen
deliberately after generated-wire and public API review catches up with later
Codex CLI releases.

Expand Down Expand Up @@ -893,8 +896,8 @@ workflow earns them in a later feature release.
#### Compatibility Window

- The compatibility promise is intentionally narrow while app-server schema is
moving quickly: reviewed support for current Codex CLI `0.140.x` plus the
latest prior minor `0.139.x` when feasible.
moving quickly: reviewed support for current Codex CLI `0.142.x` plus the
latest prior minor `0.141.x` when feasible.
- SwiftASB discovers `codex` from an explicit executable URL, `PATH`, common
Homebrew locations, or the npm global prefix, and exposes startup diagnostics
through `cliExecutableDiagnostics()`.
Expand All @@ -904,7 +907,7 @@ workflow earns them in a later feature release.
#### Migration Notes

- Existing `v0.9.x` consumers should update the SwiftPM dependency to
`from: "1.7.5"` once the tag is published.
`from: "1.8.0"` once the tag is published.
- The v1 API surface has removed stale pre-v1 compatibility shims and phantom
fields that no longer exist in the reviewed `v0.128.0` schema.
- Same-thread overlapping turns are rejected client-side with
Expand All @@ -929,7 +932,7 @@ workflow earns them in a later feature release.

- Keep an eye on future Swift Package Index builds after compatibility-window
or DocC changes; the `v1.1.1` listing and documentation link are live, and
`v1.7.5` should be rechecked after the patch tag is indexed.
`v1.8.0` should be rechecked after the patch tag is indexed.
- Add broader live server-request coverage for permissions and MCP elicitation
if those become stronger public runtime guarantees.
- Continue tuning recent companion cache calibration, richer file previews,
Expand Down Expand Up @@ -1270,6 +1273,12 @@ not as the current maintainer priority.
optional thread target on `mcpServer/startupStatus/updated` into the internal
wire snapshot, and kept that field out of public diagnostics until SwiftASB
defines a stronger thread-scoped MCP status model.
- A `v0.142.4` experimental schema compatibility pass refreshed the staging
generator again, updated the Codex CLI compatibility window, promoted broader
generated `Sendable` coverage, exposed the new `sleep` turn-item kind, kept
deprecated multi-agent mode fields internal for compatibility, and typed
external-agent config import completion internally without adding new public
request or action surfaces.
- API curation and DocC docs good enough that a Swift consumer can understand
the supported package surface without reading maintainer notes, including
walkthroughs for the primary v1 lifecycle jobs.
Expand Down Expand Up @@ -1691,6 +1700,12 @@ Completed

## History

- 2026-06-30: Refreshed the reviewed Codex CLI window to `0.142.x plus
0.141.x when feasible`, promoted the `v0.142.4` generated wire snapshot
internally, exposed the new `sleep` turn-item kind, kept deprecated
multi-agent mode fields internal for compatibility, and typed external-agent
config import completion internally without adding new public request or
action surfaces.
- 2026-06-13: Prepared the `v1.7.3` release branch for the Codex CLI `0.139.x`
compatibility refresh, promoted the `v0.139.0` generated wire snapshot
internally, kept the new optional MCP status thread target out of public API,
Expand Down
Loading
Loading