Skip to content

v0.1.0

Choose a tag to compare

@griffinwork40 griffinwork40 released this 06 Aug 01:40
· 42 commits to main since this release
605b718

A native macOS terminal in Swift 6 / AppKit, deliberately with no AI features — built to host agent-afk's REPL properly.

Install

Download: Umber-v0.1.0.zip below. Requires macOS 14+, Apple silicon.

This build is ad-hoc signed, not notarised — there is no paid Apple Developer ID behind the project — so Gatekeeper will refuse it until you strip the quarantine attribute:

unzip Umber-v0.1.0.zip -d /Applications
xattr -dr com.apple.quarantine /Applications/Umber.app
open /Applications/Umber.app

Without that step macOS reports the app as damaged, which is misleading — it is intact and its signature verifies, it is simply not notarised.

Or build it yourself, which needs no such step:

git clone https://github.com/griffinwork40/umber.git
cd umber/app
./Scripts/bootstrap-vendor.sh
./Scripts/make-app-bundle.sh release
open build/Umber.app

First stop after launching is ⌘,, which writes a commented starter config to ~/.config/umber/config.json and opens it; ⌘R reloads it live.

Status

v0.1 — launchable and usable, not yet daily-driven long enough to trust. There is no test target; verification is 19 check-*.sh gates, several validated by falsification. Known risks, including two upstream emulator defects patched locally, are in the README.


What's Changed

  • feat(app): honour the mac line-editing keys — ⌘⌫ ⌘⌦ ⌘← ⌘→ by @griffinwork40 in #1
  • feat(app): open and edit files from the tree — the picker finally has somewhere to go by @griffinwork40 in #2
  • feat(app): restore every open Space on relaunch — N Spaces at quit came back as 1 by @griffinwork40 in #4
  • feat(app): make the Space root real — ⌘T and the file tree both start where the project is by @griffinwork40 in #3
  • fix(app): document tab strip — overflow reachability, accessibility tree, middle-click close by @griffinwork40 in #5
  • feat(app): a tab can say it needs you — engine-agnostic status, bell wired by @griffinwork40 in #6
  • refactor(app): a 350-LOC ceiling, enforced — six oversized files split into files an agent can hold in context by @griffinwork40 in #11
  • tier-0 editor UX: a lone unsaved file gets a marker, undo/redo become discoverable, find gains replace by @griffinwork40 in #12
  • fix(vendor): index isWrapped buffer-absolute — SwiftTerm #494 was silently corrupting scrollback by @griffinwork40 in #13
  • refactor(app): widen the document delegate and give shell-directed actions their own protocol — the container stops naming a concrete pane by @griffinwork40 in #14
  • feat(app): the sidebar follows the shell's cwd, and cd Here follows it back — by asking the kernel, not by hoping for OSC 7 by @griffinwork40 in #15
  • fix(vendor): stop the alt buffer resurrecting old cells on resize — the tmux pane bleed by @griffinwork40 in #16
  • perf: turn on the GPU renderer we were already vendoring, and stop a debug assertion shipping in release by @griffinwork40 in #18
  • docs(research): decide how git reaches the sidebar — decorate the tree, refuse the commit box by @griffinwork40 in #17
  • libghostty Phase 2+3: a real shell renders in GhosttyPane, beside TerminalPane by @griffinwork40 in #20
  • libghostty Phase 4: the engine becomes reachable, closing a tab frees it, and OSC 133 reaches the tab strip by @griffinwork40 in #21
  • feat(app): surface the git state the parser already had — staged chip, rename origin, and "no upstream" by @griffinwork40 in #22
  • fix(app): add TCC usage descriptions to bundle plist by @griffinwork40 in #23
  • feat(app): a measured theme — ship umber, make it the default, and gate what makes it legible by @griffinwork40 in #25
  • feat(app): light mode — ship afk-light on the chrome derivation that already existed by @griffinwork40 in #24
  • feat(app): repair classic without sanding off its character by @griffinwork40 in #32
  • feat(app): a discoverable sidebar toggle beside the traffic lights by @griffinwork40 in #33
  • chore(release): make the repo publishable — a clone that builds, a licence, and an honest README by @griffinwork40 in #34

Full Changelog: https://github.com/griffinwork40/umber/commits/v0.1.0