@cmetech/otto 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- 257bf7b3bada5bba
1
+ 7633727496449d14
@@ -9,12 +9,20 @@
9
9
  // runtime command surfaces a link when a requested version isn't bundled.
10
10
  export const RELEASE_NOTES_MANIFEST = {
11
11
  truncated: false,
12
- total: 17,
12
+ total: 18,
13
13
  oldestBundled: '1.0.0',
14
- newestBundled: '1.3.1',
14
+ newestBundled: '1.3.2',
15
15
  historyUrl: 'https://github.com/cmetech/otto-cli/blob/main/CHANGELOG.md',
16
16
  };
17
17
  export const RELEASE_NOTES = [
18
+ {
19
+ version: '1.3.2',
20
+ date: '2026-06-04',
21
+ headline: 'Windows-TUI hotfix on top of 1.3.1: launching `otto` no longer paints three stacked welcome banners on Windows. The CLI rendered correctly all along — it just looked broken because cursor-relative differential updates drifted out of alignment.',
22
+ fixed: [
23
+ '**Stacked TUI frames on Windows launch.** `otto` on Windows (PowerShell inside Windows Terminal) painted the welcome banner three times in scrollback instead of updating one frame in place. Root cause traced to `packages/pi-tui/src/tui.ts`: the differential render path uses *relative* cursor movement (`\\x1b[N A/B`) which depends on `hardwareCursorRow` matching the actual terminal cursor row. The welcome screen\'s full-width yellow rule (`\'─\'.repeat(termWidth)` at `src/welcome-screen.ts:192`) is the canonical auto-wrap edge case; Windows ConPTY\'s cursor-state after writing exactly `termWidth` chars differs from xterm\'s "pending wrap" semantic, so each render drifts the tracked cursor by one row. After ~3 async-driven re-renders during cold-start (workflow\'s `session_start` handler has 5+ `await` boundaries, each potentially scheduling a render), drift compounds and subsequent updates write to wrong rows — the previous frame stays visible. Two pi-tui changes resolve it: (1) re-enable DEC 2026 synchronized output on Windows — modern Windows Terminal supports it and the prior `platform !== "win32"` guard predated that; (2) force `fullRender(true)` (absolute-positioned clear + repaint) for all non-first renders on Windows, bypassing the cursor-relative differential path entirely. Trade-off: tiny additional write traffic per render, hidden by synchronized output. Opt-outs: `PI_DISABLE_SYNC_OUTPUT=1` and `PI_DISABLE_WIN32_FULL_REDRAW=1` for terminals that mis-handle either change.',
24
+ ],
25
+ },
18
26
  {
19
27
  version: '1.3.1',
20
28
  date: '2026-06-04',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cmetech/otto",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "Terminal-based developer chat assistant. Permanent hard fork of gsd-pi with LangFlow flow triggers, a flow builder, and optional gateway routing for compliance environments.",
5
5
  "keywords": [
6
6
  "ai",
@@ -202,11 +202,11 @@
202
202
  },
203
203
  "optionalDependencies": {
204
204
  "@anthropic-ai/claude-agent-sdk": "0.2.83",
205
- "@cmetech/otto-engine-darwin-arm64": "1.3.1",
206
- "@cmetech/otto-engine-darwin-x64": "1.3.1",
207
- "@cmetech/otto-engine-linux-arm64-gnu": "1.3.1",
208
- "@cmetech/otto-engine-linux-x64-gnu": "1.3.1",
209
- "@cmetech/otto-engine-win32-x64-msvc": "1.3.1",
205
+ "@cmetech/otto-engine-darwin-arm64": "1.3.2",
206
+ "@cmetech/otto-engine-darwin-x64": "1.3.2",
207
+ "@cmetech/otto-engine-linux-arm64-gnu": "1.3.2",
208
+ "@cmetech/otto-engine-linux-x64-gnu": "1.3.2",
209
+ "@cmetech/otto-engine-win32-x64-msvc": "1.3.2",
210
210
  "fsevents": "~2.3.3",
211
211
  "koffi": "^2.9.0"
212
212
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@otto-build/contracts",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "Shared public contracts for OTTO workspace boundaries",
5
5
  "license": "MIT",
6
6
  "otto": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@otto-build/daemon",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "OTTO daemon — background process for project monitoring and Discord integration",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -29,8 +29,8 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@anthropic-ai/sdk": "^0.52.0",
32
- "@otto-build/contracts": "^1.3.1",
33
- "@otto-build/rpc-client": "^1.3.1",
32
+ "@otto-build/contracts": "^1.3.2",
33
+ "@otto-build/rpc-client": "^1.3.2",
34
34
  "discord.js": "^14.25.1",
35
35
  "yaml": "^2.8.0",
36
36
  "zod": "^3.24.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@otto-build/mcp-server",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "MCP server exposing OTTO orchestration tools for compatible clients",
5
5
  "license": "MIT",
6
6
  "otto": {
@@ -34,8 +34,8 @@
34
34
  "test": "npm run build:test && node --test dist/mcp-server.test.js dist/remote-questions.test.js"
35
35
  },
36
36
  "dependencies": {
37
- "@otto-build/contracts": "^1.3.1",
38
- "@otto-build/rpc-client": "^1.3.1",
37
+ "@otto-build/contracts": "^1.3.2",
38
+ "@otto-build/rpc-client": "^1.3.2",
39
39
  "@modelcontextprotocol/sdk": "^1.27.1",
40
40
  "zod": "^4.0.0"
41
41
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@otto/native",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "Native Rust bindings for OTTO — high-performance native modules via N-API",
5
5
  "type": "commonjs",
6
6
  "otto": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@otto/pi-agent-core",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "General-purpose agent core (vendored from pi-mono)",
5
5
  "type": "module",
6
6
  "otto": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@otto/pi-ai",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "Unified LLM API (vendored from pi-mono)",
5
5
  "type": "module",
6
6
  "otto": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@otto/pi-coding-agent",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "Coding agent CLI (vendored from pi-mono)",
5
5
  "type": "module",
6
6
  "otto": {
@@ -28,7 +28,7 @@
28
28
  "copy-assets": "node scripts/copy-assets.cjs"
29
29
  },
30
30
  "dependencies": {
31
- "@otto-build/contracts": "^1.3.1",
31
+ "@otto-build/contracts": "^1.3.2",
32
32
  "@mariozechner/jiti": "^2.6.2",
33
33
  "@silvia-odwyer/photon-node": "^0.3.4",
34
34
  "chalk": "^5.5.0",