Forge
Changelog
Recent releases. Full history lives in the repository CHANGELOG.
## [0.14.67] — 2026-10-12
### Added
- **Per-user features:** `GET /api/forge/account/features` resolves feature flags and tool config from your plan plus a new `forge_user_feature_overrides` table (migration shipped, not applied; service-role writes only). The response carries a version and expiry and can be Ed25519-signed. Desktop caches it with an offline fallback and refreshes at launch and after sign-in. `useForgeFeature(id)` gates owner tools, Forge Challenges and draft cert mode, with owner fallbacks kept. New CLI command: `forge features [--refresh] [--json]` / `forge features check <id>`.
- **Adaptive Glass:**
- One glass settings system; both old settings keys are migrated.
- Low / Balanced / High / Adaptive intensity, plus per-surface sidebar, editor, terminal and panel values.
- Solid themed outer frame with glass panels inside. Ghost mode fades backgrounds only, never text.
- Living Code Surface behind the active line, selection and cursor.
- Optional native macOS vibrancy with an automatic CSS fallback.
- Readability safeguards: opacity floors, an editor/terminal contrast check, OS reduce-transparency and high-contrast fallbacks, and saved presets.
### Fixed
- **Desktop UX batch:** editor and explorer context menus, explorer clipboard and tree updates, a portal-rendered project switcher that stays solid using the glass tint and no longer gets clipped, an "Opening…" state while the workspace restores, terminal fixes, and a plain-language command guide in the manual.
## [0.14.66] — 2026-10-12
### Changed
- Dev release that combines main (pairing cleanup auth, exec approval tokens, CI lint/test gates, website guest UX) with the 0.14.65 release-branch fixes: explicit confirmation for destructive actions, updater artifacts signed during dry-runs when the key is loaded, and the message-dialog permission in the generated schema.
## [0.14.65] — 2026-10-11
### Fixed
- Destructive actions wait for an explicit confirmation. Cancel, dismissal, a rejected dialog command, and a missing dialog permission leave the file, editor, or update in place.
- Desktop confirmation uses the Tauri message dialog. The packaged app restores the browser's native `confirm` and `alert` functions so the plugin's async override cannot count as approval.
### Notes
- Dev-channel preparation only. The stable feed is unchanged, and this version is not published until the signing secret in GitHub Actions is replaced with public key `7F4C3A9C7B2C6277`.
- Does not include Sage Strategist. That stays on the site branch.
## [0.14.64] — 2026-10-11
### Added
- **Sage Strategist:** Account-scoped advisory workspace for planning. Financial scenarios stay in the tool and do not move money. The database migration is additive and still needs review before it is applied. This is a development implementation, not a production approval.
- **Engineering portfolio:** Static portfolio app under `apps/portfolio`, with Sage answers, project case studies, and simulated product demos. Contact email, direct messages, and live chat are not connected.
### Notes
- Dev updater publish. The last feed on `sagehenny/releases` is 0.14.61-dev, so this build also carries 0.14.62 and 0.14.63: switchable GitHub accounts, repaired macOS bundle packaging, mobile session restoration, and `forge .` / `forge ..` / `forge ...` launcher targets.
- Includes the unauthenticated local exec lockdown and the mobile auth, project, and refresh fixes already on main.
- Forge Challenges stays a private local practice module behind `NEXT_PUBLIC_FORGE_CHALLENGES` or `localStorage["forge-challenges"]="1"`. It is not a public product feature.
- The packaged Desktop app omits the Strategist web route. Strategist stays on the SageHenny site, where it can use a server.
---
## [0.14.63] — 2026-09-28
### Changed
- **Launcher dot targets:** `forge .` opens the primary (left) workspace, `forge ..` opens the Twin Reference (right; reveals Twin and replaces an existing Reference), and `forge ...` opens the primary with the Triple workspace layout. `forge ..` no longer means the parent directory; use `forge . ..` or `forge ../`. Verbs such as `forge run ..` keep normal path semantics. `FORGE_LAUNCHER_DRY_RUN=1` prints the normalized Desktop arguments.
### Notes
- Also carries 0.14.62 (switchable GitHub accounts, repaired macOS bundle packaging, mobile session restoration), which was not published to the Dev feed.
- The launcher change is a Desktop (native + webview) change; it takes effect after this build is published and installed, and the installed `forge` wrapper is refreshed.
---
## [0.14.61] — 2026-09-27
### Fixed
- **Forge Agent backend:** Implementation requests now use the configured Grok provider instead of canned HOS scaffolds. Proposals carry grounded source baselines, validated paths, preserved draft scope/removals, and explicit provider or response failures. Draft → Review → Apply remains required.
- **Desktop:** Includes the 0.14.60 boot, editor hydration, filesystem refresh, and clipboard fixes since the last published Dev release (0.14.59).
### Validation
- 71 targeted model-draft, provider, and continuation tests passed; TypeScript, targeted ESLint, and the web production build passed.
### Notes
- Updater signing key rotated after the previous credential was lost. Existing installations must manually reinstall this release to trust future updates.
- The Agent change is server-side. Packaged Forge uses the hosted SageHenny backend; publishing this desktop release alone does not activate that fix. The backend must be deployed with Grok configured. Local Observer remains inspection-only.
- Dev release; live model generation and real ELD hardware integration are not certified by these checks.
---
## [0.14.60] — 2026-09-19
### Fixed
- **Desktop cold boot:** Root cause was React #185 (`useSyncExternalStore` snapshots that allocated a new `[]` / object every read in Agent permission approvals), which crashed the Code workspace after first paint into WebKit’s “This page couldn't load”. `listPendingApprovals` now returns referentially stable snapshots; Desktop `/` is the real Code workspace (not a home stub); boot URL is `/`.
- **Desktop boot diagnostics / recovery:** Page-load logs (scheme/path/main-frame), resource failure probes, `~/Library/Logs/Forge/boot.log`, and `forge-desktop-recovery.html` with Retry + Open Logs (replaces generic WebKit-only failure UI when detected).
- **Explorer FS watch / creation UX:** Watch callback no longer tears down on every `refreshWorkspace` identity change; watch failures log clearly; creation errors toast via `WorkspaceToastHost`.
- **`tauri:dev` routing:** Dev window `url: "/"` always loaded the SageHenny marketing homepage even when `devUrl` pointed at `/code`. `npm run tauri:dev` now merges `src-tauri/tauri.conf.desktop-dev.json` so the webview opens `/code` (Forge Code). Packaged Desktop still boots `/`. Plain `npm run dev` still serves the marketing site at `/`.
- **Stale empty editor buffer:** Restored/open tabs with an empty cached model no longer override non-empty disk content; session restore hydrates open files from disk before Monaco mounts; empty unrestored buffers are not saved over real files.
- **Explorer FS auto-refresh:** Watch uses immediate events + coalesced quiet refreshes so terminal create/delete/rename updates the tree without blanking Explorer or letting a stale in-flight scan win.
- **Copy Entire File:** Copies the live Monaco buffer (including unsaved edits), fails gracefully when empty/unavailable, and falls back when `navigator.clipboard.writeText` rejects in WKWebView.
### Notes
- Stabilization sprint (0.14.60): prioritize boot reliability before further Explorer/layout polish.
---
## [0.14.59] — 2026-09-14
### Fixed
- **Expo Web Preview readiness:** Double Launch waits for process logs + CORS-free native HTTP HTML health before binding Preview; dynamic Expo web ports from reported URLs; separate `forge-launch:{project}:web` process key; clears stale `localBaseUrl` (no default `:3000`); Forge diagnostic UI instead of bare WKWebView “couldn't load”; preferredPort no longer seeds detected listen port.
---← Downloads