Match DOM order to the wide layout, rely on grid auto-placement when collapsing, and retain the address separator on narrow screens.
Assisted-by: pi (openai-codex/gpt-5.6-sol)
Preserve the compact semicolon-separated presentation while using list markup, and scope vertical list spacing to prose lists so flex items remain aligned.
Assisted-by: pi (openai-codex/gpt-5.6-sol)
Rename the plugin and expose its read-only RuneLite snapshots through versioned GET endpoints with on-demand OpenAPI discovery. Preserve typed state, filtering, event cursors, bounds, and loopback protections while removing JSON-RPC, tool discovery, prompts, Wiki proxying, and all compatibility paths.
Replace the Pi MCP adapter and registry with a contextual RuneLite Query skill, and cover every endpoint using mocked RuneLite response shapes plus an ephemeral HTTP server.
Assisted-by: pi (openai-codex/gpt-5.6-sol)
Hydrate provider model data from the published pi-ai package, build the new telemetry, protocol, and client workspaces, and preserve them as runtime dependencies.
Assisted-by: pi (gpt-5.6-sol)
Add a calibre.m7.rs vhost proxying the calibre-server content server,
restricted to localhost and the headscale tailnet prefixes, and enable
calibre-server auth so the endpoint is not anonymous.
calibre-web wrote metadata.db directly, which desynced calibre-server's
in-memory library cache: books uploaded through books.m7.rs stayed
invisible on the content server until it was restarted, and two writers
on one library risk clobbering each other's metadata.
Drop calibre-web from the readarr and calibre-server groups and force
ReadWritePaths down to its state directory, so the pre-existing
ProtectSystem=strict leaves the library read-only. The 0002 umask only
existed to keep those shared-library writes group-writable, so it goes
too. Readarr already writes through the content server API, so
calibre-server is now the sole writer.
Note that services.calibre-web.options.enableBookUploading does not
cover this on its own: config_uploading only drives the templates, while
POST /upload stays gated on the per-user ROLE_UPLOAD bit alone.
Assisted-by: pi (claude-opus-5)
aerc ships no default keybind for :flag, so marking a message as
important meant typing the command. F was free in both messages and
view ('f' is :forward).
Assisted-by: pi (claude-opus-5)
ffsubsync selects the embedded subtitle track with the latest final cue,
which a Signs & Songs track wins on its trailing title card despite
carrying no dialogue. Select on total speech instead.
Assisted-by: pi (claude-opus-5)
ffsubsync references whichever embedded track ends last, which ties to
Signs & Songs on anime releases. Probe and pick a dialogue track instead.
Assisted-by: pi (claude-opus-5)