Commit Graph
11 Commits
Author SHA1 Message Date
pastilhasandClaude Opus 5 387664964c add a transmission sidecar and ui
officer-transmission is a new pm2 peer that owns the transmission rpc
connection and exposes a curated /_officer/* contract instead of proxying
raw rpc. it absorbs the three quirks callers otherwise have to know about:
the 409 x-transmission-session-id handshake, failures returned as
{"result": "..."} inside http 200, and basic auth where an empty username
must send no header at all.

/transmission is the ui, on the workspace/panel framework: a filter nav and
three sections (torrents, stats, settings). the torrent list is virtualised
with 30 available columns, multi-select, and a right-click menu; the detail
pane covers general, files as a real tree, peers and trackers. filters and
the open torrent live in the url, so a filtered view is a link.

phase 1 goal was parity with _references/transmission-web. follow-up work is
recorded in TODO.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 17:09:19 +00:00
pastilhasandClaude Opus 4.8 d604b1e722 provisioning: drop multi-user remnants, provision the super admin on bootstrap
Remove the multi-user provisioning leftovers (the provision-existing-users.sh
migration was already deleted in the prior commit):
- gut provisionVncEnv from provision.ts (per-user startxfce4 virtual desktop, dead
  since the switch to mirroring :0 — vnc-manager.ts self-provisions its own passwd)
- drop the Pi `.pi/agent/sessions` seed and the now-orphaned `run` helper

Wire provisioning into bootstrapHandler: the super admin (first user) is created via
createUser, which never called provisionUserEnvironment — only the invite/verify flow
did. So the single user's DATA_PATH/<email> was never provisioned up front. Now it is.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-25 15:32:53 +00:00
pastilhasandClaude Opus 4.8 fcdf5f0117 todo: email screen multi-view vision (sender/domain management + chat tabs)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 08:48:14 +00:00
pastilhasandClaude Opus 4.8 23862d3ae0 todo: record shipped email work and deferred follow-ups
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 08:39:05 +00:00
pastilhasandClaude Opus 4.8 8faa4abcaf todo: mark OR support done; note grouping/in:/relative-dates remaining
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 23:19:38 +00:00
pastilhasandClaude Opus 4.8 08f5e4561d todo: mark Gmail-style operators done; note OR/grouping as remaining
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 18:24:13 +00:00
pastilhasandClaude Opus 4.8 066531555b todo: extend email search with Gmail-style operators (from:, subject:, has:attachment, …)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 17:43:37 +00:00
pastilhasandClaude Opus 4.8 510254cbd4 note the x11vnc orphan/duplicate risk in TODO
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 19:17:00 +00:00
pastilhasandClaude Opus 4.8 1ed12cd3ba resolve a relative task cwd against the user's home before spawning
the file browser sends msg.cwd relative to the user's home and it went straight to
Bun.spawn, which resolves it against the server's cwd. when that directory does not
exist posix_spawn reports ENOENT naming the binary rather than the directory, so
"Convert Audio" failed with the misleading "posix_spawn 'bash'".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 00:38:12 +00:00
pastilhasandClaude Opus 4.8 7d8341d3ba note the leftover officer-vnc.service unit in TODO
the hand-installed systemd unit kept a parallel xfce session on :1 alive and
respawned it on every kill, independently of the platform. obsolete now that the
desktop panel mirrors :0; disabled, but the unit file is still on disk.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 22:23:33 +00:00
pastilhasandClaude Opus 4.8 3fc7bcb32f always run pi as the service user, drop the sudo -u branch
- the sandbox already drops privileges to the OS user (id -un), so pi-bridge was
  the only code path that switched to a per-user unix account
- the four accounts it targeted (andrepadez, john-wick, fedra, miguelbenoliel)
  are vestigial: created by scripts/provision-existing-users.sh, with no home
  dirs, no files, no processes. the only live account is pastilhas@officer.dev,
  which maps to the service user, so isServiceUser was always true and the
  sudo -u branch could never fire
- add TODO.md tracking the leftover username plumbing, the useradd script, known
  bugs (task-executor relative cwd, bootstrap pi EEXIST), and the ufw 9010 rule

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 21:57:49 +00:00