Tags: amanfromsolan/enso
Tags
Allow links and prose paragraphs in release notes The notes converter accepted only the bare '## Section' / '- item' subset. It now renders [label](url) links as real <a href> anchors and free-standing lines as <p> paragraphs, so contributor credits can link their profile and notes can carry an intro or footer sentence. Bold, code, and malformed links still stop the release. In the app, ReleaseNotesParser rebuilds <a> tags as [label](url) instead of flattening them, and the What's New sheet renders exactly that pattern as a tappable link — no full markdown parsing, so prose from hand-edited appcasts can't get mangled. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Give Enso its new icon everywhere and move to the current Ghostty core New Icon Composer app icons for all three channels, matching web and README art, and the clipboard callbacks migrated to the MIME-negotiated API that came with building GhosttyKit from ghostty main. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Guard what a close destroys, and stop trusting a state file we can't … …write Closing a tab asked nothing of the tabs with the most to lose: a dormant or sleeping agent tab reports no running process, so ⌘W discarded its saved conversation in silence. The confirmation now reads the stake — busy agent, saved conversation, or a plain running command — and Delete Space routes through the same close path instead of looping closeSurface past every guard and cleanup. The read-only downgrade flag protected state.json and nothing else, so a launch that couldn't trust the file still ran the orphan sweep and deleted every conversation it didn't recognize. Agent-record maintenance now stands down wholesale while the flag is set, quit snapshot included: a snapshot built from tabs we can't enumerate reads as "only these were running" and costs the newer build the rest. Also: split members survive the ephemeral sweep and selection lands before it runs, Escape cancels both alerts again, a cancelled alert no longer selects the row it spared, a slept tab ignores attention that arrives a tick late, and the eager restore stops spending its budget waking tabs that are already awake. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Give each pane header its own split and close controls The trailing cluster carries split right, split down, and close, idle- fading to a ghost while the pointer rests and coming alive on movement — one shared NSEvent monitor for every pane, since SwiftUI hover is unreliable over Ghostty's surface. Colors derive from the terminal background's luminance rather than app chrome, so the marks stay legible on any Ghostty theme. Narrow panes collapse the splits into an NSMenu behind an ellipsis; a SwiftUI Menu drops a custom label outright. Tooltips carry the action and its chord as keycaps in their own child window, which the header's hosting view would otherwise clip. Sleep deliberately stays with the sidebar row and the palette. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
PreviousNext