Releases: TGPSKI/olwb-micro-plugin
Releases · TGPSKI/olwb-micro-plugin
Release list
olwb 2.0.0
Added
- Instant liners:
> olwb -iandAlt-Shift-iopen a memory-only liner
whose captures can use selection, send, export, and issues workflows.
/save <name>promotes it; switching liners, closing, resuming, or exiting
discards it without changing durable active-liner state. - Explicit entry modes: bindable
launch,resume, andinstantLua
functions default toAlt-o,Alt-Shift-o, andAlt-Shift-iwithout
overwriting existing user bindings. - Per-invocation autostart: a non-empty
OLWB_AUTOSTARTopens olwb for one
micro process, including file-backed launches, without persisting the option. - Open-view queries:
/opencandidates now accept repeatedlabel:
tokens (ANDed against liner labels) plus case-insensitive text matched
against liner names, ids, and descriptions. - Command aliases: every top-level slash command has a collision-checked
single-letter alias shown beside it in the live/?menu and help. - Errors in the feed: workflow failures (
/send,/issues draft,
/issues file) now land as persistent⚠ error-labeled messages — in the
destination'sintoliner, theissuesliner, or a fallbackolwb-errors
liner — carrying full stderr, kept evidence paths, any partially-filed
issue URLs, and the retry command. The info bar still flashes the short
version. - Failure evidence kept: failed issues jobs save full stderr to
<datadir>/issues/<id>.err.logand recordlast_error/last_error_mson
the manifest (cleared on a later success);/issues listshows the last
error under each draft. - Progress indicator: background jobs show an animated spinner in the
bottom bar (and the/issues listoverlay) with what is running and
elapsed time, e.g.⠹ filing 7 issue(s) on o/r 12s, driven by a
main-state-safe sleep ticker. /issues open [<id|latest>]: opens a draft's filing script in a new
tab for the review step — editable, saveable, no more retyping the path
from the/issues listoverlay.- Label preflight: generated filing scripts create any missing labels
(create-if-absent, never--force) before the firstgh issue create,
so a label the drafting model invented no longer aborts the whole run.
Fixed
- Shared destination sessions:
state.jsonsaves now lock and merge
per-keydest_sessionschanges, preserving additions and deletions made by
other micro instances using the same data directory. - Async sends: stale-session retries reuse the original payload and
provenance; completion clears only the selection sent by that attempt, so
edits and selections made while it runs survive. - Issue filing:
/issues filerefuses a second invocation while an issues
job is running, preventing duplicate GitHub issues.
Changed
- Bare input without a liner: submitting text with no active liner now
turns it into a live/openquery for Tab selection instead of creating a
notesliner and storing the text there. Slash commands and input within an
active liner keep their existing behavior.
Docs
CONTRIBUTING.md: external contribution policy — trivial
comment/docstring-only PRs are not merged; deeper contributions (multiple
issues, code, behavior changes) are welcome.
olwb 1.1.0
Added
- Browse mode:
Shift-Tabon a plain/empty line drops into the feed with
per-message navigation (↑/↓), multi-select (Space,afor all/none),
and a liveN selectedbar indicator that clears on send. - Destinations and
/send: user-editable shell command templates that
the selection (or whole scope) is rendered to markdown and piped into.
Seeded on first run:claude,codex,opencode,leather,clipboard,
file. Managed with/dest [add|rm|into|kind|session …];/send <dest> [tui]fires a send,tuiinstead opens the CLI interactively in a new
terminal window ($TERMINAL, then konsole/foot/alacritty/kitty/xterm, or
olwb.termcmd). - CLI adapters (new
dest.lua): destinations whose command starts with
claude/codex/opencodeget JSON-output parsing, response text
routed to the destination'sintoliner as a#<dest>-labeled message,
and a per-destination-per-liner session id that later sends resume
automatically (stale sessions retry fresh once)./dest session list|clearmanages stored ids. - Inbox: destination responses landing outside the active liner bump a
bar badge (inbox: 2 new);Alt-itoggles between the active liner and
the inbox. - Notes → agent-work issues pipeline (new
issues.lua,/issues):
turns a selection into GitHub issues an agent can implement, with a
mandatory human review gate between drafting and filing./issues repo add <name> <owner/repo> [path]registers a target repo;
a localpathenriches the draft prompt with that repo'sAGENTS.md
(and.subagents/routing table, if present)./issues draft <repo>sends the selection to a model (/issues model,
defaultclaude -p), validates its response as strict JSON, and
deterministically renders agh issue createfiling script — the model
never produces shell, and a malformed response is rejected whole (raw
output saved for inspection) rather than risking a bad command./issues file latestruns the reviewed script, records issue URLs in
theissuesliner, and labels the source messages#filed(refiling
is refused).- The drafting prompt template is seeded once to
<datadir>/issues-prompt.mdand is user-editable thereafter.
- New
olwb.termcmdoption (state.json-backed) for the/send <dest> tui
terminal command. tests/fixtures/: canned CLI/model responses (claude, codex, opencode,
and good/fenced/broken issues drafts) backing the new adapter and issues
unit tests.
Changed
render.luanow also produces a feed entry index and selection markers
(▌) alongside the existing feed-text/markdown-export rendering.store.luagained a plain-Luaglob()helper and anissues/data
directory (issue drafts as<id>.sh+<id>.jsonmanifest, plus
<id>.raw.txtwhen a response is rejected).- Job handling in
olwb.lua(start_job/drain_jobs) routes all
destination/issues subprocess output through files rather than
JobStartchunk callbacks, working around a gopher-luar/GopherLua crash
triggered by running real Lua on the job's callback thread.
Documentation
- README: new "Browse mode", "The benefits — sending", and "The pipeline —
notes to agent-work issues" sections; updated data-directory and module
tables. - New user guides:
docs/dest.md(destinations, adapters, sessions),
docs/send.md(browse mode, sending, tui, inbox), anddocs/issues.md
(the notes → issues pipeline). - AGENTS.md: documents the
dest.lua/issues.luamodules, the
JobStart-callback crash and the file-redirected job architecture that
works around it, and the completed status of the benefits and issues
plans.
olwb 1.0.0
Initial release of olwb — one line with benefits, a one-line-input notepad inside the micro editor. A reimplementation of the 2024 one-line-with-benefits Electron app as a ~zero-dependency Lua plugin.
Highlights
- Capture: type one line, press Enter — it lands in the feed with a timestamp and any active labels, newest at the top. The input auto-grows when text wraps.
- Domain model: Liner → Session → Message with inherited labels (
liner ∪ session ∪ message), filters, substring search, and md/json export. - Command language:
/opens a live, width-aware command menu; Tab/Shift-Tab/↑/↓ cycle completions (verbs, subcommands, liner names) with highlighted selection; Space expands liner details during/open;/setmanages options in-UI. - Layout: title, highlighted one line, feed with scrollbar and Shift-Tab browsing, shortcut reference, and a Liner/Session bar — self-healing across terminal resizes.
- Storage: file-per-liner JSON with atomic writes, timestamped backups, ULID-lite sortable ids, and an importer for the Electron app's flat userData files (
> olwb migrate). - Tested: pure modules run under plain
lua(make check, 89 unit + 8 harness assertions) plus in-editor> olwb selftest.
Install
git clone https://github.com/TGPSKI/olwb-micro-plugin
cd olwb-micro-plugin && make install # symlinks into ~/.config/micro/plug/olwbRequires micro ≥ 2.0.