-
9c2d6a97f7
a tested migration script for the capabilities→permissions rename
master
pastilhas
2026-08-15 16:40:18 +00:00
-
027b10bd6e
step 4/4: the docs say permissions too, and capability means one thing again
pastilhas
2026-08-15 16:31:11 +00:00
-
f9fd002ff4
step 3 verified live: the whole estate re-registered with
handles
pastilhas
2026-08-15 16:25:56 +00:00
-
5afa2d832e
step 3/4: sidecar routing keys become
handles — NOT YET VERIFIED LIVE
pastilhas
2026-08-15 16:23:31 +00:00
-
5ec354cfcb
step 2/4: role_capabilities becomes role_permissions, without losing a grant
pastilhas
2026-08-15 16:08:05 +00:00
-
2e8ec845c8
step 1/4: the permission engine is called permissions, not capabilities
pastilhas
2026-08-15 16:03:22 +00:00
-
b0fcd8b81b
stop tracking generated migrations, and delete the stale one
pastilhas
2026-08-15 15:32:37 +00:00
-
9b1c0a75b2
a dock tile can be bare, so artwork is not framed in a swatch
pastilhas
2026-08-15 15:21:25 +00:00
-
f78abbe05a
a plugin ships its own dock icon as a file, not a lucide name
pastilhas
2026-08-15 15:10:17 +00:00
-
e11e0b6475
one port announcement instead of sixteen, so a plugin can name itself
pastilhas
2026-08-15 14:49:19 +00:00
-
0a55964db5
the player moves to the plugin, and src/ has no music code left
pastilhas
2026-08-15 14:42:13 +00:00
-
f1bd75853d
the music widget moves into the plugin, parked like cliamp
pastilhas
2026-08-15 14:33:44 +00:00
-
9af52fd754
db:push regenerates the plugin schema barrel, so setup works on a clean machine
pastilhas
2026-08-15 14:18:47 +00:00
-
1e79b4effd
revert prettier churn on four files the cliamp move never touched
pastilhas
2026-08-15 13:53:36 +00:00
-
a9bf51407e
cliamp moves into the plugin, and the platform loses its last music file
pastilhas
2026-08-15 13:52:53 +00:00
-
8bfcd40bd2
music's library browser depends on another plugin's permission, not just its own
pastilhas
2026-08-15 03:09:50 +00:00
-
e930586878
plugins declare the host binaries they need, and the installer checks
pastilhas
2026-08-15 02:33:18 +00:00
-
05eb947bd1
music is verified on the live server, and the runbook learns from it
pastilhas
2026-08-15 01:56:16 +00:00
-
de3340398c
music becomes a plugin, and the player stays behind
pastilhas
2026-08-15 01:46:43 +00:00
-
18c4ebd0b4
the per-user model is not tonight's work either

pastilhasandClaude Opus 5
2026-08-15 01:24:09 +00:00
-
7d65732f77
the widget is out of scope too, leaving one open call

pastilhasandClaude Opus 5
2026-08-15 01:21:54 +00:00
-
b5db3c47e1
cliamp is out of scope, which unblocks the music extraction

pastilhasandClaude Opus 5
2026-08-15 01:19:18 +00:00
-
8545b427dd
the runbook tells the next agent to decide, not to ask

pastilhasandClaude Opus 5
2026-08-15 01:13:49 +00:00
-
965ced52a6
a runbook for the next extraction, and a warning about music

pastilhasandClaude Opus 5
2026-08-15 01:11:14 +00:00
-
4a9f23c759
the design doc moves into the plugin it produced

pastilhasandClaude Opus 5
2026-08-15 01:07:48 +00:00
-
b4dab16d2a
the schema barrel stops describing a world that ended

pastilhasandClaude Opus 5
2026-08-15 00:52:37 +00:00
-
2c89281bfc
drop a comment describing an export that left with offscale

pastilhasandClaude Opus 5
2026-08-15 00:49:32 +00:00
-
585c046a64
the plugin system says permissions, not the other word

pastilhasandClaude Opus 5
2026-08-15 00:47:18 +00:00
-
8cc51cfb40
every plugin permission is grantable, and there is no field to say otherwise

pastilhasandClaude Opus 5
2026-08-15 00:42:35 +00:00
-
8b6cb34ae0
plugins contribute dock tiles, and the doc says what is actually built

pastilhasandClaude Opus 5
2026-08-15 00:31:54 +00:00
-
8587ae20b7
a plugin creates its own tables, and uninstalling never drops them

pastilhasandClaude Opus 5
2026-08-15 00:21:11 +00:00
-
e13128846b
offscale is a plugin

pastilhasandClaude Opus 5
2026-08-15 00:15:38 +00:00
-
0e24aa3d52
a way into the plugin from its detail panel

pastilhasandClaude Opus 5
2026-08-15 00:02:09 +00:00
-
543e88a9a6
every plugin route renders a workspace, and it is not a rule you can forget

pastilhasandClaude Opus 5
2026-08-14 23:47:48 +00:00
-
2e3c935da6
the built SPA had no tailwind, and the build could destroy itself

pastilhasandClaude Opus 5
2026-08-14 23:26:28 +00:00
-
7b4137ccca
a plugin's frontend, generated and rebuilt without a restart

pastilhasandClaude Opus 5
2026-08-14 23:07:18 +00:00
-
a00116b2c0
a plugin's permissions become real capabilities, and survive a restart

pastilhasandClaude Opus 5
2026-08-14 22:43:49 +00:00
-
62ee0d1e60
the beat between steps is feedback, not decoration

pastilhasandClaude Opus 5
2026-08-14 22:33:53 +00:00
-
4d4606d4a2
close the owner's dotfiles once somebody else has a shell

pastilhasandClaude Opus 5
2026-08-14 21:59:45 +00:00
-
a220342b22
stream the install, so it reads like a log instead of a spinner

pastilhasandClaude Opus 5
2026-08-14 21:50:50 +00:00
-
02e049cae8
terminal: stop replaying questions, stop opening two sockets, bind the word keys

pastilhasandClaude Opus 5
2026-08-14 21:38:26 +00:00
-
2634df7a04
the install runner: ecosystem entry, sidecar, row, mounts

pastilhasandClaude Opus 5
2026-08-14 21:38:21 +00:00
-
ed195e0904
record what got built tonight

pastilhasandClaude Opus 5
2026-08-14 20:28:18 +00:00
-
98c400bf33
a /plugins screen to install, enable, disable and uninstall

pastilhasandClaude Opus 5
2026-08-14 20:27:58 +00:00
-
282a64a637
plugins install, enable, disable and uninstall at runtime

pastilhasandClaude Opus 5
2026-08-14 20:22:14 +00:00
-
0701aba902
brotli in the core package set

pastilhasandClaude Opus 5
2026-08-14 20:16:56 +00:00
-
2e6c263751
the hono app is built, not assembled once

pastilhasandClaude Opus 5
2026-08-14 20:16:00 +00:00
-
b2349b5480
install the psql client, matching the server it talks to

pastilhasandClaude Opus 5
2026-08-14 20:13:08 +00:00
-
0ae0a5dc58
music is where the richer permission model gets designed

pastilhasandClaude Opus 5
2026-08-14 20:06:55 +00:00
-
acd51c969c
the platform grants read or write; richer rules belong to the plugin

pastilhasandClaude Opus 5
2026-08-14 20:04:18 +00:00
-
4c3682dae6
let a member read the two directories above their own home

pastilhasandClaude Opus 5
2026-08-14 20:00:29 +00:00
-
56bb383c6d
a plugin installs with no questions unless it says otherwise

pastilhasandClaude Opus 5
2026-08-14 19:48:15 +00:00
-
327783532e
reach a member's transcripts by listing them, not just by reading them

pastilhasandClaude Opus 5
2026-08-14 19:48:06 +00:00
-
9f903479ce
websocket routes reload too, so nothing needs a restart

pastilhasandClaude Opus 5
2026-08-14 19:46:07 +00:00
-
6ab838c77f
mounting at runtime after all: rebuild the app and swap it

pastilhasandClaude Opus 5
2026-08-14 19:45:22 +00:00
-
13437e0e48
mounting: generated then restart, reversing the call for runtime dynamic

pastilhasandClaude Opus 5
2026-08-14 19:35:55 +00:00
-
7befaf032a
the manifest holds only what the tree cannot say

pastilhasandClaude Opus 5
2026-08-14 19:31:48 +00:00
-
7ebc4d0ccd
note the totality/route-table drift for later

pastilhasandClaude Opus 5
2026-08-14 19:16:41 +00:00
-
1292a5c5ab
opencode is owner-only until it carries an identity

pastilhasandClaude Opus 5
2026-08-14 19:11:17 +00:00
-
4dc7cd90c2
a plugin declares permissions, not capabilities, and has no kind

pastilhasandClaude Opus 5
2026-08-14 19:25:54 +00:00
-
b18601530f
a manifest for offscale, and the rule it immediately broke

pastilhasandClaude Opus 5
2026-08-14 19:05:15 +00:00
-
f6b2905cc7
how the frontend ships, and what plugins may depend on

pastilhasandClaude Opus 5
2026-08-14 18:58:22 +00:00
-
7f26f0b4b8
offscale is headscale plus the companion, not a rename

pastilhasandClaude Opus 5
2026-08-14 17:44:28 +00:00
-
01a20fff4e
the invite flow replaced device enrolment; it is not a gap

pastilhasandClaude Opus 5
2026-08-14 17:43:42 +00:00
-
88a44ec4a7
delete /api/vpn

pastilhasandClaude Opus 5
2026-08-14 17:40:44 +00:00
-
bbc60b34ac
headscale leaves the baseline, and offscale gets a design doc

pastilhasandClaude Opus 5
2026-08-14 17:37:55 +00:00
-
d000cedf2f
let anyone toggle hidden files again

pastilhasandClaude Opus 5
2026-08-14 16:11:05 +00:00
-
336e718463
read a member's transcripts as the member

pastilhasandClaude Opus 5
2026-08-14 15:58:36 +00:00
-
fe0012635a
stop leaking the parent claude session into the one we spawn

pastilhasandClaude Opus 5
2026-08-14 15:36:32 +00:00
-
547662842b
a dead claude process no longer hangs the chat forever

pastilhasandClaude Opus 5
2026-08-14 15:36:09 +00:00
-
eb1fd8c31a
headscale is core, so stop offering to install it

pastilhasandClaude Opus 5
2026-08-14 13:31:00 +00:00
-
d85f089817
tsgo is clean

pastilhasandClaude Opus 5
2026-08-14 13:24:32 +00:00
-
11710f283a
wire the reverse proxy in as officer-setup 12

pastilhasandClaude Opus 5
2026-08-14 12:56:40 +00:00
-
b6feca8350
owner can reset a member's platform password

pastilhasandClaude Opus 5
2026-08-14 12:07:43 +00:00
-
1d95ad3d1b
install the rootless docker prerequisites with docker itself

pastilhasandClaude Opus 5
2026-08-14 11:58:23 +00:00
-
e881015df5
members get the same aliases as the owner

pastilhasandClaude Opus 5
2026-08-14 11:17:06 +00:00
-
3862558b92
real aliases for the owner, and eza to go with them

pastilhasandClaude Opus 5
2026-08-14 11:12:46 +00:00
-
977e30e782
point the setup default at public https

pastilhasandClaude Opus 5
2026-08-14 10:08:08 +00:00
-
edbe446b34
revert "allow port 22 through the docker-user allowlist"

pastilhasandClaude Opus 5
2026-08-14 09:58:18 +00:00
-
e36c6bb431
allow port 22 through the docker-user allowlist

pastilhasandClaude Opus 5
2026-08-14 09:51:22 +00:00
-
4d14e11f6c
--unattended: every question that has a default answers itself

pastilhasandClaude Opus 5
2026-08-14 06:46:48 +00:00
-
4c33ef7206
fix the silent death after installing zsh

pastilhasandClaude Opus 5
2026-08-14 06:23:45 +00:00
-
6c13e0d8f6
tell the operator they are still root, once

pastilhasandClaude Opus 5
2026-08-14 06:05:57 +00:00
-
cbfe376a42
accept the repo URL as an argument

pastilhasandClaude Opus 5
2026-08-14 05:54:56 +00:00
-
64f3de59fb
CLAUDE.md caught up on how setup is run

pastilhasandClaude Opus 5
2026-08-14 05:48:33 +00:00
-
081920c61f
drop fastfetch from machine-setup

pastilhasandClaude Opus 5
2026-08-14 05:46:59 +00:00
-
fb0286e1a9
put rootless docker back, behind the developer gate

pastilhasandClaude Opus 5
2026-08-13 12:49:32 +00:00
-
d6f01862fe
fix a stack overflow in the wallet copy button

pastilhasandClaude Opus 5
2026-08-13 12:33:23 +00:00
-
bf7e919593
only a Developer gets a postgres role

pastilhasandClaude Opus 5
2026-08-13 12:30:33 +00:00
-
2ac58e2007
drop the postgres role when a member is decommissioned

pastilhasandClaude Opus 5
2026-08-13 12:27:13 +00:00
-
9f15de3448
put the postgres credentials somewhere findable

pastilhasandClaude Opus 5
2026-08-13 12:24:05 +00:00
-
3ca7f5f331
close the cross-member database leak with a login event trigger

pastilhasandClaude Opus 5
2026-08-13 12:18:31 +00:00
-
2273941e71
give each member a postgres role instead of a docker daemon

pastilhasandClaude Opus 5
2026-08-13 12:14:02 +00:00
-
41cdd1e63a
stop creating the container bind-mount directory too

pastilhasandClaude Opus 5
2026-08-13 11:58:06 +00:00
-
7b32f5bc2f
don't provision rootless docker for new members

pastilhasandClaude Opus 5
2026-08-13 11:56:16 +00:00
-
cc1eab7794
docs: a triage map of the documentation

pastilhasandClaude Opus 5
2026-08-13 05:26:48 +00:00
-
8826c2847e
docs: working-on-officer catches up to the code

pastilhasandClaude Opus 5
2026-08-13 05:26:07 +00:00
-
236a3a5481
docs: first container test pass, and what it found

pastilhasandClaude Opus 5
2026-08-13 04:00:31 +00:00
-
d7d64cd6d6
docs: the install-variant tree, for tomorrow's decision

pastilhasandClaude Opus 5
2026-08-13 03:58:32 +00:00
-
cd209483e3
fix the clipboard over http, and audit the rest

pastilhasandClaude Opus 5
2026-08-13 03:56:57 +00:00