Platonic 0.1.0
·
142 commits
to main
since this release
What's Changed
- Add Discord gateway reactions and typing by @alanwilhelm in #133
- Cache proven Rust CI jobs by @alanwilhelm in #170
- fix: present the application as Plato Agent by @alanwilhelm in #219
- Build the Platonic framework site and image by @alanwilhelm in #220
- Type the run-canceled app signal by @alanwilhelm in #222
- test: characterize Discord gateway recovery by @alanwilhelm in #223
- Derive daemon canceled status from RunCanceled by @alanwilhelm in #232
- Handle multiple provider tool calls without terminating the run by @alanwilhelm in #235
- ci: cancel superseded runs, trim root tests, pin actions, cache desktop builds by @alanwilhelm in #234
- Add fixed file-backed issue preparation workflow by @alanwilhelm in #246
- docs: link the workspace simplicity directive by @alanwilhelm in #250
- Add Discord status command by @alanwilhelm in #249
- Add Discord model and reasoning controls by @alanwilhelm in #253
- Keep Discord gateway alive after response-send failures by @alanwilhelm in #254
- Type daemon stream events without changing v1 wire by @alanwilhelm in #255
- Bound retained terminal daemon runs by @alanwilhelm in #256
- Bound TUI, CLI probe, and Discord daemon client deadlines by @alanwilhelm in #258
- docs: record gateway connector lifecycle by @alanwilhelm in #260
- Make Unix workspace locks crash-recoverable by @alanwilhelm in #261
- Bound daemon connection threads and retry transient accept errors by @alanwilhelm in #263
- Honor stream_to_stderr for fallback assistant text by @alanwilhelm in #262
- Retry one rejected Discord product-message send by @alanwilhelm in #264
- Route Discord channels to run configs by @alanwilhelm in #265
- Split provider connection and stream-idle deadlines by @alanwilhelm in #266
- Use persistent daemon for Plato entry paths by @alanwilhelm in #267
- Add explicit daemon and Discord gateway service commands by @alanwilhelm in #268
- Delete Windows locks on process exit by @alanwilhelm in #269
- Type approval.decide request decisions by @alanwilhelm in #270
- Filter the TUI session picker locally by @alanwilhelm in #271
- Add real PTY contract for TUI composer by @alanwilhelm in #272
- Update Plato Agent to platonic-core 0.2.0 by @alanwilhelm in #273
- Record session context compaction events by @alanwilhelm in #274
- Retry one explicit provider 429 with ledger evidence by @alanwilhelm in #276
- Hold workspace lock for direct SQLite CLI operations by @alanwilhelm in #275
- Persist omitted provider usage as unknown by @alanwilhelm in #277
- Scope Windows installer CI to release pushes by @alanwilhelm in #278
- Align manifest and CI documentation gates by @alanwilhelm in #279
- Add CLI/daemon semantic conformance tests by @alanwilhelm in #280
- Load PLATONIC.md workspace memory into context by @alanwilhelm in #281
- Guard PLATONIC.md direct mutations by @alanwilhelm in #285
- Design computer use and browser control by @alanwilhelm in #284
- Document Discord gateway setup and replay by @alanwilhelm in #283
- Split TUI daemon client from app by @alanwilhelm in #282
- Cache unchanged TUI history rows by @alanwilhelm in #286
- Relocate TUI composer editing into TuiState by @alanwilhelm in #287
- Give TUI issue preparation an operation-owned response lifetime by @alanwilhelm in #302
- Preserve Unix custom daemon socket ownership by @alanwilhelm in #301
- Commit SQLite terminal outcomes atomically by @alanwilhelm in #304
- Keep TUI state bound to the selected session by @alanwilhelm in #305
- Drain daemon events before terminal status by @alanwilhelm in #306
- Bound provider-controlled responses by @alanwilhelm in #307
- Version read-only SQLite replay by @alanwilhelm in #308
- Make run cancellation an exact stored lifecycle transition by @alanwilhelm in #309
- Cancel provider retry waits before a second request by @alanwilhelm in #310
- Bound normal desktop daemon command deadlines by @alanwilhelm in #311
- Bound Windows daemon startup on the installer gate by @alanwilhelm in #303
- Bind Discord gateway trust boundary by @alanwilhelm in #313
- Render TUI sessions as conversations by default by @alanwilhelm in #332
- R1: Break Plato Agent module cycles by @alanwilhelm in #333
- R7: Split Discord gateway into ownership-local modules by @alanwilhelm in #334
- Remediate desktop RustSec advisories under Rust 1.88 by @alanwilhelm in #335
- Consume published platonic-core 0.3.0 by @alanwilhelm in #324
- Extract the sans-IO plato-protocol crate by @alanwilhelm in #336
- Extract shared daemon client and IPC transport by @alanwilhelm in #337
- Move issue prep under tools taxonomy by @alanwilhelm in #338
- Narrow desktop dependencies to protocol and daemon client by @alanwilhelm in #339
- Extract the Plato terminal client crate by @alanwilhelm in #340
- Remove the desktop ledger event mirror by @alanwilhelm in #341
- AU1: create plato-audio and warm serial playback by @alanwilhelm in #342
- R8: extract Discord gateway runtime crate by @alanwilhelm in #343
- AU2: decouple synthesis and playback with bounded prefetch by @alanwilhelm in #345
- feat(audio): add bounded resident Whisper capture by @alanwilhelm in #346
- feat(audio): stream Whisper partials with Silero VAD by @alanwilhelm in #347
- feat(audio): add chunk-granular barge-in by @alanwilhelm in #348
- test(app): harden cancellation fixture readiness by @alanwilhelm in #357
- Deploy current develop binaries with visible provenance by @alanwilhelm in #359
- feat: persist AU6 voice companion events by @alanwilhelm in #358
- Skip empty assistant conversation cells by @alanwilhelm in #360
- Resolve approval trace warnings after decisions by @alanwilhelm in #362
- Persist and display provider-served model identity by @alanwilhelm in #363
- Label sessions by first question and relative age by @alanwilhelm in #365
- Render typed assistant Markdown in the TUI by @alanwilhelm in #366
- Add an authoritative TUI /status modal by @alanwilhelm in #367
- Own the Windows FakeProvider fixture lifecycle by @alanwilhelm in #364
- Cancel stalled provider response reads by @alanwilhelm in #368
- TX3: draw the TUI on demand by @alanwilhelm in #388
- Fix TUI cursor placement and chrome styling by @alanwilhelm in #386
- Fix deploy-local validation scope by @alanwilhelm in #389
- Add bounded web.fetch tool by @alanwilhelm in #392
- TX2: Adopt tui-textarea for the composer by @alanwilhelm in #391
- Add daemon-lifetime shell session grants by @alanwilhelm in #400
- Add a host-scoped Plato Agent daemon by @alanwilhelm in #411
- feat: make thread authority durable on the host daemon by @alanwilhelm in #412
- Make stalled-stream timing proof source-owned by @alanwilhelm in #414
- Supervise daemon runs in child processes by @alanwilhelm in #413
- Add controlled thread send and attach by @alanwilhelm in #415
- TUI: add TX5 footer and shared key map by @alanwilhelm in #418
- TUI: derive colors from terminal capabilities by @alanwilhelm in #420
- test(tui): make /new readiness deterministic by @alanwilhelm in #422
- test: make stalled-stream cancellation proof platform-correct by @alanwilhelm in #423
- feat: add local daemon and remote TUI attachment by @alanwilhelm in #421
- Define the Unix external-daemon proof contract by @alanwilhelm in #424
- chore: prepare 0.2.0 release candidate by @alanwilhelm in #426
- Thread stop and activity surfacing by @alanwilhelm in #428
- chore: release Plato Agent 0.2.0 by @alanwilhelm in #429
- test: make issue-prep provider reads blocking on Windows by @alanwilhelm in #431
- feat(protocol): add typed completion claim envelope (#406) by @alanwilhelm in #432
- fix(plato-audio): replace manual remainder checks with is_multiple_of by @alanwilhelm in #436
- refactor: rename protocol and client crates, un-exclude desktop (#444 Part A) by @alanwilhelm in #445
- test: wait for daemon quiescence before asserting shutdown (#446) by @alanwilhelm in #448
- refactor: extract platonic-server (#444 Part B) by @alanwilhelm in #449
- Move thread state to a server-wide store by @alanwilhelm in #452
- Add the workspace control plane (#447 slice A) by @alanwilhelm in #454
- Stop showing the one-shot answer twice on a terminal (#387) by @alanwilhelm in #456
- docs: mark pre-pivot designs superseded by the platform decisions by @alanwilhelm in #457
- docs: align the agent guide with the extracted server by @alanwilhelm in #451
- Make pending tool-call approvals survive daemon restart by @alanwilhelm in #453
- Pin the toolchain and gate macOS in CI (#441) by @alanwilhelm in #455
- Migrate thread authority to twelve-field records by @alanwilhelm in #466
- Separate Platonic server and Plato client packages by @alanwilhelm in #473
- Adopt WAL/FULL in both SQLite stores by @alanwilhelm in #472
- Make TUI transcript scrollback-native by @alanwilhelm in #474
- chore: add toolchain-matched rust-analyzer by @alanwilhelm in #476
- Add subsequence matching to TUI pickers by @alanwilhelm in #475
- Rename repository identity to Platonic by @alanwilhelm in #477
- Fold platonic-core into the monorepo with history by @alanwilhelm in #478
- Add agent control plane and explicit workspace registration by @alanwilhelm in #479
- test: enforce architecture invariants by @alanwilhelm in #483
- TX7: smooth TUI streaming cadence by @alanwilhelm in #480
- Type the complete v1 wire envelope by @alanwilhelm in #485
- fix: key workspace ledgers by minted id by @alanwilhelm in #484
- Stabilize desktop executable fixtures under parallel tests by @alanwilhelm in #487
- Move new run events to per-run JSONL by @alanwilhelm in #488
- Expose thread.spawn to coordinator models by @alanwilhelm in #489
- Discord gateway principals and attributed approvals by @alanwilhelm in #490
- 408A: Attach Discord gateway to host daemon by @alanwilhelm in #491
- Create and confine private-ref thread repositories by @alanwilhelm in #492
- Attach standalone TUI to the host daemon by @alanwilhelm in #493
- Add session-scoped TUI yolo controls by @alanwilhelm in #494
- Retire the legacy workspace daemon contract by @alanwilhelm in #497
- Minimize credentials inherited by supervised run children by @alanwilhelm in #496
- Add client voice configuration and activation lifecycle by @alanwilhelm in #498
- Add Platonic 0.1.0 release identity and bundle path by @alanwilhelm in #500
- docs: complete the launch truth pass by @alanwilhelm in #502
- fix(server): durably admit async runs before receipt by @alanwilhelm in #503
- Release Platonic 0.1.0 by @alanwilhelm in #504
Full Changelog: v0.1.0...platonic-v0.1.0