Commit Graph

12 Commits

Author SHA1 Message Date
David Ibia 66d1d21011 feat(omo): play omo's own synthesised notification sounds
omo-notify and omo-remote played Apple's Glass and Ping through afplay, which exist only on macOS and are not ours to ship. They now play omo-done (task finished), omo-input (needs your input) and omo-error (stopped with an error), rendered by sfx from .config/omo/sounds/recipes.toml at the same loudness as Glass. The new omo-sound plays a sound by name or any audio file, with afplay on macOS and pw-play, paplay, aplay or ffplay on Linux, and finds the sounds through the dotfiles checkout it is linked from.
2026-10-18 13:12:34 +01:00
David Ibia 5805f45358 feat(bin): add sfx to render notification sounds offline from TOML recipes
sfx is a single-file uv script that synthesises sounds from sine partials and seeded noise, so its output contains no samples, SoundFonts or model output, renders without a network once uv has installed numpy and mido, and comes out byte-identical on every run. Each sound in a recipe is normalised to a target loudness (ITU-R BS.1770, default -26 LUFS, the level of the macOS Glass alert) and written as WAV, with optional MP3 through ffmpeg and a MIDI file of the same notes. Unknown keys and bad note names stop the render with an error naming the table.

The new sound-design skill documents the recipe format and how to design notification sounds; link-ai-configs.sh links it for omo and Claude Code.
2026-10-18 13:12:34 +01:00
David Ibia 786925b583 chore(omo): vendor impeccable skill 4.6.0
Re-copy .opencode/skills/impeccable from upstream tag skill-v4.6.0
(8a0e198, engine 0.1.15), keep LICENSE, and re-apply the OmO path
rewrite and the critique routing line.

The documented rewrite missed the base-directory fallback in SKILL.md,
which ends at scripts rather than scripts/impeccable, so the upgrade
command now rewrites the scripts directory prefix. The skills README
also notes that the engine binary is downloaded by scripts/VERSION
rather than vendored.
2026-10-17 20:17:54 +00:00
David Ibia dd90b462f5 feat(omo): quit with :q, :q!, :qa or :wq
A small extension catches Enter while the editor holds :q, :q!, :qa or :wq and shuts omo down, after the running turn if there is one. It reads the key through onTerminalInput rather than the input event, so typing :q never fires UserPromptSubmit hooks, which used to leave the blue working marker behind. setup-mac.sh links it into ~/.omo/agent/extensions.
2026-10-17 16:28:20 +01:00
David Ibia 46e7c8e04b feat(omo): interrupt on ctrl+g instead of escape
Esc alone aborted running turns too easily. Move app.interrupt to ctrl+g and shift the external editor from ctrl+g to ctrl+q so it stays reachable. setup-mac.sh links the new keybindings.json into ~/.omo/agent.
2026-10-16 00:00:08 +01:00
David Ibia adf62ac948 feat(owt): title workspace tabs and keep agents retitling them
owt title names the tmux windows of the current workspace with one to three words and saves the title in the worktree's git dir so owt open reuses it. owt hook runs on omo's UserPromptSubmit and reminds the agent of the current title so it retitles the tab as the work changes.
2026-10-10 22:12:36 +01:00
David Ibia ea570af409 feat(omo): retire opencode and move its skills and commands to omo
- Move the vendored skills from .config/opencode/skills to
  .config/omo/skills, with provenance and local changes in its README
- Rewrite Impeccable's script paths to ~/.omo/agent/skills/impeccable so
  its detector and live-server verbs resolve under omo
- frontend-workflow hands screenshots to a visual-engineering task
  instead of opencode run
- Move the notes commands and /impeccable to .config/omo/prompts as omo
  prompt templates; setup-mcp stays behind because it writes
  opencode.json
- Archive DEVELOPMENT-WORKFLOW.md and UI-WORKFLOW.md under
  .config/omo/archive; nothing loads them
- link-ai-configs.sh links the skills into omo and Claude Code only and
  stops linking OpenCode's config, TUI, plugins and workflow docs
- setup-mac.sh and Brewfile.apps stop installing OpenCode; README and
  .withcontextconfig.jsonc follow the new layout

~/.config/opencode/AGENTS.md stays linked: omo's rules engine reads it
before ~/.claude/CLAUDE.md and stops at the first hit, so it carries the
shared preferences and keeps OMC's instructions out of omo.
2026-10-10 14:56:27 +01:00
David Ibia 12f283e7c9 feat(omo): route impeccable critique to dedicated model categories
Impeccable's critique runs two isolated assessments. design-critique-a
runs the design-director review on Claude Opus 5.5 at xhigh, with Fable
5.1 behind it; Opus 5.5 has the top Design Arena website score of the
models in this config. design-critique-b runs the detector and browser
pass on GPT-6.1 Sol at high, with Sonnet 5.5 behind it so the second
assessment still runs without a ChatGPT login. critique.md sends each
assessment to its category.
2026-10-10 14:56:06 +01:00
David Ibia 6fb7007ea9 feat(omo): coloured tab markers and clickable Ghostty banners
omo-notify now drives three signals from omo's UserPromptSubmit, Stop
and Notification hooks:

- A sound through afplay, so Focus modes cannot mute it
- A Ghostty notification (OSC 777) written to the session's tmux client
  terminal, so clicking it opens the tab it came from. This replaces the
  osascript banner, which opened Script Editor's file picker on click
- omo-status markers in front of the tab title: red error, amber
  waiting for input, green finished, blue working. A tab shows its most
  urgent agent; focusing it clears red, amber and green and selects the
  pane that sent the banner

tmux puts @omo_status in the title and runs omo-status on client focus.
2026-10-06 23:02:55 +01:00
David Ibia 90ab5452b1 chore(omo): record the opencode routing notice migration 2026-10-06 23:02:42 +01:00
David Ibia d0c2895797 feat(omo): tune reasoning effort and route cheap lanes to z.ai Lite
- Raise main Opus 5.5 to xhigh and its Sol fallback to high
- Raise deep-low Sonnet 5.5 and Sol to high for coding work
- Route quick, explore and librarian to GLM-5.3-Flash low with Sonnet low fallback
- Replace unsupported GLM medium thinking with high in unspecified-low and writing
- Remove the unused [opencode] block
2026-10-05 19:47:25 +01:00
David Ibia 54a4858ffc feat(omo): track omo config, hooks and workspace slash commands
Adds /owt-done (close Linear issues after merge, then owt done) and
/linear-sync (progress comment and status, no cleanup), linked into omo
as ~/.omo/agent/prompts.
2026-10-03 14:53:46 +01:00