From 16935ffe111517595a4425e03886aab6aaae8abb Mon Sep 17 00:00:00 2001 From: Joseph Yaksich <294273268+gitcommit90@users.noreply.github.com> Date: Wed, 23 Sep 2026 05:20:07 +0000 Subject: [PATCH 1/2] Release 1Helm 1.6.0 --- CHANGELOG.md | 25 + config/module-budgets.json | 35 +- docs/VISION.md | 11 + package-lock.json | 11 +- package.json | 4 +- public/index.html | 4 +- scripts/run-test-suite.mjs | 2 +- src/client/api.ts | 25 +- src/client/app.ts | 546 ++++++++++++++------ src/client/board-operations.ts | 172 ++++++ src/client/channel.ts | 294 +++-------- src/client/live-message-patch.ts | 107 ++-- src/client/message-attachments.ts | 12 +- src/client/mobile.ts | 149 ++++++ src/client/routing.ts | 27 +- src/client/state.ts | 43 +- src/client/styles.css | 100 ++++ src/client/thread-ux.ts | 9 +- src/server/bootstrap-view.ts | 3 + src/server/bot-output.ts | 65 +-- src/server/bots.ts | 253 +++++---- src/server/chatgpt.ts | 25 +- src/server/db.ts | 3 +- src/server/followups.ts | 38 +- src/server/http.ts | 2 +- src/server/index.ts | 90 +++- src/server/operational-sessions.ts | 22 + src/server/photon.ts | 8 +- src/server/routing.ts | 76 ++- src/server/setup.ts | 6 +- src/server/store.ts | 104 +++- src/server/user-local-time.ts | 51 ++ src/server/vision.ts | 44 ++ test/app-event-recovery.mjs | 2 +- test/autonomy-platform.mjs | 56 +- test/brief-regressions-browser.mjs | 41 +- test/channel-image-workflow-performance.mjs | 2 +- test/chatgpt-stream.mjs | 15 +- test/followup-authorization.mjs | 5 +- test/followup-cancel-ui-contract.mjs | 11 + test/mobile.mjs | 25 + test/navigation-performance.mjs | 45 ++ test/provider-prompt-cache.mjs | 129 +++-- test/routing-ui-contract.mjs | 16 +- test/routing.mjs | 6 + test/session-mode.mjs | 99 ++++ test/thread-followup-chat.mjs | 7 +- test/thread-ux-features.mjs | 4 + test/user-local-time.mjs | 56 ++ test/vision-runtime.mjs | 105 ++++ test/worklog-step-times.mjs | 15 + 51 files changed, 2256 insertions(+), 749 deletions(-) create mode 100644 src/client/board-operations.ts create mode 100644 src/server/operational-sessions.ts create mode 100644 src/server/user-local-time.ts create mode 100644 src/server/vision.ts create mode 100644 test/followup-cancel-ui-contract.mjs create mode 100644 test/navigation-performance.mjs create mode 100644 test/session-mode.mjs create mode 100644 test/user-local-time.mjs create mode 100644 test/vision-runtime.mjs create mode 100644 test/worklog-step-times.mjs diff --git a/CHANGELOG.md b/CHANGELOG.md index 64fed11..53529cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.6.0] - 2026-09-23 + +### Added + +- Channels can opt into Session presentation, per-channel Default/Comfy/Compact density, and Default/By active ordering without changing the underlying conversation model. +- Board now uses authoritative operational lanes—Working, Needs you, Scheduled, Failed, and Complete—with idle and archived sessions kept in collapsed history. +- Messages expose a direct Copy action, and ordinary Work Log steps show user-local timestamps. +- Native vision sends supported human image uploads to compatible models as image content and lets resident agents inspect workspace images through the bounded `view_image` tool. +- Clients record the user's IANA time zone so agent invocations receive both user-local time and the exact UTC instant. + +### Changed + +- Thread navigation is latest-intent-wins, deduplicates duplicate destinations, paints bounded cached snapshots immediately, loads channel and thread data concurrently, and server-paginates long threads while preserving the visible anchor when older replies load. +- Board and thread listings use lightweight bounded payloads so large channels avoid unnecessary database, transfer, and browser work. +- Provider cache policy is applied after the actual route is selected. Claude receives reusable stable and rolling breakpoints; ChatGPT and xAI receive stable thread-scoped cache keys; provider usage is normalized into cache reads, cache writes, uncached input, and logical input. +- Embedded ReRouted advances to 0.5.15 with bounded model validation, Claude Code 2.1.280 OAuth compatibility, cross-turn Claude cache reuse, and valid atomic serialization of parallel Claude tool results. + +### Fixed + +- Reader-controlled conversation and Work Log scrolling remains stable through live updates, sidebar changes, message expansion, reconnects, foreground recovery, and growing streamed replies. +- Stopping or cancelling a running scheduled wake authoritatively cancels its durable follow-up, prevents finalization from re-arming it, and keeps cancellation controls visible while it runs. +- Manual provider model tests time out cleanly instead of remaining indefinitely in a testing state. +- Photon outages no longer restart the entire 1Helm service. +- Saved channel density is authoritative on rendered session cards. + ## [1.5.0] - 2026-09-06 ### Added diff --git a/config/module-budgets.json b/config/module-budgets.json index 5829b35..ba7c6cb 100644 --- a/config/module-budgets.json +++ b/config/module-budgets.json @@ -6,37 +6,30 @@ }, "legacy": { "lines": { - "src/client/app.ts": 3672, - "src/client/channel.ts": 1202, - "src/client/cowork.ts": 879, - "src/client/routing.ts": 864, - "src/client/settings.ts": 812, - "src/server/agents.ts": 1353, - "src/server/bots.ts": 2189, + "src/client/app.ts": 3907, + "src/client/channel.ts": 1056, + "src/client/cowork.ts": 878, + "src/client/routing.ts": 821, + "src/server/agents.ts": 1347, + "src/server/bots.ts": 2176, "src/server/channel-computers.ts": 2217, "src/server/db.ts": 1158, - "src/server/index.ts": 2284, - "src/server/routing.ts": 1303 + "src/server/index.ts": 2334, + "src/server/routing.ts": 1247, + "src/server/store.ts": 808 }, "fanIn": { - "src/client/api.ts": 11, - "src/client/dom.ts": 9, + "src/client/api.ts": 12, + "src/client/dom.ts": 10, "src/server/agents.ts": 10, - "src/server/db.ts": 30, + "src/server/db.ts": 32, "src/server/store.ts": 9 }, "fanOut": { - "src/server/bots.ts": 23, - "src/server/index.ts": 33 + "src/server/bots.ts": 24, + "src/server/index.ts": 35 }, "cycles": [ - [ - "src/client/app.ts", - "src/client/channel.ts", - "src/client/cowork.ts", - "src/client/settings.ts", - "src/client/term.ts" - ], [ "src/server/bots.ts", "src/server/followups.ts" diff --git a/docs/VISION.md b/docs/VISION.md index 39eea60..1bcfa33 100644 --- a/docs/VISION.md +++ b/docs/VISION.md @@ -41,6 +41,17 @@ sole visual home for recurring work and its chronological run history; workflow runs do not spill into Chat, Board, or Threads, while each run remains a normal interactive thread when opened. +## Session presentation and operational truth + +Channels may opt into Session mode without changing navigation or information +architecture. The same Chat tab, sessions, order, content, labels, colors, and +thread behavior remain; only top-level Chat rows receive a compact bordered-card +presentation. Turning the mode off restores the standard Chat presentation. + +Board uses operational states for every channel, regardless of Session mode. +Runtime records—not generated prose or the ambiguous database `open` value—own +Working, Needs you, Scheduled, Failed, Complete, Idle, and Archived. + ## Honest model usage A thread's primary token indicator answers how much input context the latest model call processed, not how many repeated prompt-token encounters accumulated across an agent loop. 1Helm calculates this itself from the structured messages and tool schemas it sends, using one stable provider-neutral approximation. Cached is the unchanged leading context shared with the preceding call; output counts response text and tool-call payloads received by 1Helm; calls count successful invocations. These product metrics never depend on provider usage reports. Lifetime output and model-call count remain cumulative because they represent newly generated work and actual invocations; cumulative prompt traffic is never presented as the size of a conversation. diff --git a/package-lock.json b/package-lock.json index 89da80c..54ecb95 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "1helm", - "version": "1.5.0", + "version": "1.6.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "1helm", - "version": "1.5.0", + "version": "1.6.0", "hasInstallScript": true, "license": "AGPL-3.0-only", "dependencies": { @@ -29,7 +29,7 @@ "@codemirror/lang-sql": "6.10.0", "@codemirror/lang-yaml": "6.1.3", "@excalidraw/excalidraw": "0.18.1", - "@gitcommit90/rerouted": "github:gitcommit90/rerouted#e200e457ad2c6abe17f8f6c2e00d8026ea027e09", + "@gitcommit90/rerouted": "github:gitcommit90/rerouted#df7fd909f2f0d499f7d3e4657df93b780c3837ac", "@opencoredev/loginwithchatgpt-server": "^0.2.0", "codemirror": "6.0.2", "docx": "9.7.1", @@ -1675,8 +1675,9 @@ "license": "MIT" }, "node_modules/@gitcommit90/rerouted": { - "version": "0.5.14", - "resolved": "git+ssh://git@github.com/gitcommit90/rerouted.git#e200e457ad2c6abe17f8f6c2e00d8026ea027e09", + "version": "0.5.15", + "resolved": "git+ssh://git@github.com/gitcommit90/rerouted.git#df7fd909f2f0d499f7d3e4657df93b780c3837ac", + "integrity": "sha512-rhrSbpWZXbEevlR9LredPBUMlOj4TTH32RJlWbjDezzK4/EKFmWYiIb1BdEzz6MfqKJqPnN/pdyBBK4j8LAecg==", "license": "MIT", "bin": { "rerouted": "src/cli/index.js" diff --git a/package.json b/package.json index 5916f7f..27891cf 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "1helm", "productName": "1Helm", - "version": "1.5.0", + "version": "1.6.0", "private": true, "type": "module", "license": "AGPL-3.0-only", @@ -87,7 +87,7 @@ "@codemirror/lang-sql": "6.10.0", "@codemirror/lang-yaml": "6.1.3", "@excalidraw/excalidraw": "0.18.1", - "@gitcommit90/rerouted": "github:gitcommit90/rerouted#e200e457ad2c6abe17f8f6c2e00d8026ea027e09", + "@gitcommit90/rerouted": "github:gitcommit90/rerouted#df7fd909f2f0d499f7d3e4657df93b780c3837ac", "@opencoredev/loginwithchatgpt-server": "^0.2.0", "codemirror": "6.0.2", "docx": "9.7.1", diff --git a/public/index.html b/public/index.html index 1eb785f..b6940b6 100644 --- a/public/index.html +++ b/public/index.html @@ -30,10 +30,10 @@ document.querySelectorAll('meta[name="theme-color"]').forEach(function (m) { m.setAttribute("content", color); }); })(); - +
- +