Repository navigation
Release v0.10.0 - #17
Merged
Merged
Conversation
…: default_connection, --sql / --schema (§14), Redis index on disk (§9.8), border_focus_style (§7.3), outer_nav to tmux (§6), db-clean (§15); workspaces moved to the WSL paths (AGENTS.md, roles)
Root renames and writes through read-only directories (skip those tests), a closed loopback port times out instead of refusing, MySQL's 64-character limit fell to a six-digit pid in OwnDB's name, and deleting a query file within the tick of the directory listing before it left it in the tree (drop the cached listing on delete, the shortcut's own remedy).
sqlmux_e2e_<pid> and sqlmux_worker_<pid>_* on PG and MySQL whose pid is gone, through docker compose exec; the full just e2e runs it first, e2e/dbclean.sh checks it on both engines.
--table, --sql and the default layout open through open(), which asks config.DefaultStart; an unknown name starts on the first and says so.
…hema sqlmux [connection] [--schema s] --sql "select …": the window is the sidebar and one query pane over the numbered query the statement went into (not query_1), run as ↵ runs it, the result area under it; every statement of it, the confirm and read-only rules of §13 as usual; last.toml is left alone. --schema is a schema, database.schema (PG, SQL Server) or a Redis db's number, in the connection when it is there and said when it is not; --table takes it too.
…abase counts for --schema db.schema, connections.toml is read for default_connection only when it is written
…he --sql query is not saved unless edited (task.md, §14)
…its pid and names per run
…kip permission assertions under root, no 'connection refused' wording, GOTOOLCHAIN from go.mod (task.md, §15)
… assertions, tmux 3.8 pipe-pane lag, no 'connection refused' wording, keychain password_cmd on Linux
…ps / npm 12 / nc / dash differences, rec lag, 127.0.0.1:1 timeouts, a private sqlmux_play database in f17.13, root skips
…2e runs 6-way parallel on WSL (task.md, plan.md, AGENTS.md)
… at the next start $XDG_DATA_HOME/sqlmux/redis-index/<connection>/db<n>: a first line with the version, the size of the db and whether the index stops short of it, then a name a line as redis-cli reads a word, 0600, written through the config package's rename. The first completion of a db reads it and matches in it at once (the list says the index is being updated) while the index is made in the background; the new one takes its place and is written. A write command's changes are written once a few seconds after, and when the program ends. [redis] index_cache = false reads and writes nothing.
…ir own lines Frame.Lines(focused) is the one place that picks between border and border_focus_style; it follows border when not written.
… the outer tmux With $TMUX set, a pane.focus.left/down/up/right with no pane on that side runs tmux select-pane -L/-D/-U/-R (not waited for); off, the default, changes nothing.
…er, a delta with a repeated key is not zeroed by update, a FLUSH empties the file when no index is in memory, a connection name is escaped for any file system
…r the rebuild, emptied by FLUSHDB
…egression 283 scripts, nothing red off the list; waiting for the user's acceptance (task.md, plan.md)
…irst index is built over a slow link (task.md node 3, §9.8)
… request per batch so completion is not queued behind it, the 1000 ms index build to be measured and fixed (task.md, §8.7)
…eue, 500 / 1000 ms proxies)
… row: the index is being built, or why it could not be A completion with no candidates and a row to say is a box of the row alone, drawn under the word; the names of the prefix go in when they come, the row stays, the index takes it away. A failed build says why and is not made again by every key typed: R in the tree does.
… index batches go first and are timed from when they run On a link of 500 ms the commands and the index waited 20 s behind the tree's one request, and at 1000 ms the index never came: its 3 s limit ran from when it was asked for, and a limit that runs out closes the connection under the others. The tree is a SCAN and its TYPEs a request at a time; COMMAND DOCS goes before the first of them; the tree waits while an index is made; onMeta bounds a request from when it starts, 20 s for a batch of names.
…reconnect or R clears it), per-request timeouts from execution start (20s batches, 3s EXISTS), index batches ahead of the tree's, how e is measured (task.md, §8.7, §9.8)
…ts first batch), a redial of Meta clears the index error, the failed row names the key that builds it again, f21.7 times the connect-and-type case
…about 8 s later on a 500 ms link when typing at once with an index file, a known limit (task.md, plan.md)
…and config; default_connection, border_focus_style, [redis] index_cache, [pane] outer_nav with the tmux side; password_cmd from a 0600 file without a keychain; keys.md at v0.10.0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
[0.10.0] - 2026-11-08
Added
sqlmux [connection] --sql "select status, count(*) from orders group by 1". It opens a window with only the tree, a query holding the statement and its result, and runs it as↵would; read-only connections and dangerous statements are checked as in any query. The query is not saved as a file unless you edit it, and quitting does not overwrite the layoutsqlmuxrestores.--sqlcannot go with--table,--whereor--layout.--schemapicks the schema for--sqland--table, written as in the query title's dropdown:[database.]schemaon PostgreSQL and SQL Server, the database on MySQL, the db number on Redis (--schema 1). A schema that does not exist is reported in a toast, and the connection's own is used.default_connection = "<name>"inconfig.toml: the connection that--table,--sqland a start without a saved layout use when you name none (until now, always the first one inconnections.toml). A name that is not inconnections.tomlis reported in a toast, and the first connection is used.~/.local/share/sqlmux/redis-index/(mode 0600), loaded on the first completion, and replaced when a fresh scan in the background finishes.[redis] index_cache = falseturns it off.border_focus_styleinconfig.toml: the line style of the focused pane and of overlays (single,rounded,double,bold,hidden), so the focused pane can be bold and the others thin. Unset, it followsborder.[pane] outer_nav = "auto": inside tmux,C-h/C-j/C-k/C-lat the edge of sqlmux move on to the next tmux pane, as vim-tmux-navigator does for vim. The tmux side is in Configuration. (#4, idea by qumn)Changed
SCAN), that line says why, andRin the tree builds it again.COMMAND DOCSis sent as soon as the connection is up instead of after the tree has loaded, the tree loads one batch at a time so completion can go in between, and the key index goes ahead of the tree. Over a 1-second round trip, a 60000-key index now builds in about 20 seconds.Fixed
EXISTSchecks could time out while still waiting their turn and close the connection under the request that was running, so the index never finished. Their timeouts now start when they run (20 s for index batches and prefix lookups, 3 s forEXISTS).