Commit Graph

126 Commits

Author SHA1 Message Date
e40cb529ac feat(fish): add remote deploy helper 2026-08-22 19:36:44 -04:00
2c6d586cf5 feat(copyparty): trust reverse proxy headers 2026-08-22 14:05:48 -04:00
8838472001 feat(reverse-proxy): derive backends from endpoints 2026-08-20 20:04:34 -04:00
bd2c1583da feat(network): add fleet endpoint registry 2026-08-20 10:46:24 -04:00
4677dbe591 fix(reverse-proxy): reject unmatched HTTPS hosts 2026-08-17 23:04:13 -04:00
114f0445cf feat(reverse-proxy): add Pikachu reverse proxy guest 2026-08-17 00:01:54 -04:00
409a3cbc7f feat(copyparty): add NixOS guest 2026-08-16 20:31:10 -04:00
acdc497e4c feat(lib): add stable service uid registry 2026-08-16 14:42:16 -04:00
2d43a9853d feat(actualbudget): add NixOS guest 2026-08-11 08:36:02 -04:00
55ed1bf5a9 fix(shell): show groups in long listings 2026-08-03 09:55:48 -04:00
ad2e6f5f4a refactor(ssh): centralize fleet access 2026-08-02 22:45:56 -04:00
ffc9b331ea feat(pikachu): manage ssh keys 2026-08-02 21:34:20 -04:00
d782308b42 fix(pi): expire terminal subagents automatically 2026-08-02 14:23:24 -04:00
8e8752e519 fix: eliminate configuration evaluation warnings 2026-08-02 13:20:59 -04:00
cb26a044d3 fix(pi): prevent oversized subagent result crashes 2026-08-02 07:24:52 -04:00
af643c452d feat(pi): manage global subagent configuration 2026-08-02 07:04:28 -04:00
1e80216b07 feat(steam): add Steam desktop module 2026-08-02 00:05:45 -04:00
eb67944e68 Revert "feat(pi): add read-only subagent attach view"
This reverts commit 7bc0d0772c.
2026-08-01 23:24:16 -04:00
7bc0d0772c feat(pi): add read-only subagent attach view 2026-08-01 23:06:55 -04:00
ede3c0583f feat(pi): capture subagent activity events 2026-08-01 22:56:50 -04:00
aafc68e911 feat(pi): render subagent monitor views 2026-08-01 22:41:25 -04:00
8c85c00ae9 feat(pi): retain terminal subagent work 2026-08-01 22:33:34 -04:00
c5828e0591 feat(pi): label subagent work items 2026-08-01 22:24:04 -04:00
5fd8de031d feat(pi): patch prompt layout spacer 2026-08-01 20:43:06 -04:00
de99b4a89e feat(pi): add compact status extension 2026-08-01 19:45:52 -04:00
f5d799c64b fix(pi): load subagent extension in child sessions 2026-08-01 19:23:46 -04:00
e143495d6c feat(pi): expire recent subagent statuses 2026-08-01 18:25:43 -04:00
3c4eaec76b feat(pi): add subagent wait tool 2026-08-01 18:25:43 -04:00
007ba81c02 feat(pi): finish subagent runtime surfaces 2026-08-01 18:25:43 -04:00
3977ed6822 feat(pi): add subagent config and agents 2026-08-01 18:25:43 -04:00
289ea1344c feat(pi): harden subagent lifecycle 2026-08-01 18:25:43 -04:00
63da676b5a feat(pi): add subagent tracer bullet 2026-08-01 18:25:43 -04:00
8fc816bcd9 feat(agents): enable subagents skill 2026-08-01 18:22:59 -04:00
585d4919e7 feat(agents): add implementation workflow skills 2026-08-01 13:40:11 -04:00
6544d3d8a0 feat(agents): add slice skill 2026-07-31 23:39:46 -04:00
2fed687a00 feat(agents): enable Herdr tooling 2026-07-31 22:49:05 -04:00
36d7a53029 feat(pi): install Herdr integration declaratively 2026-07-31 22:48:43 -04:00
6422bb96f2 chore(agents): stop installing retired skills 2026-07-31 18:47:43 -04:00
9ed4809837 feat(agents): add wayfinding skills 2026-07-31 14:44:13 -04:00
6945c29a47 feat(agents): add design skill 2026-07-30 19:15:02 -04:00
521e4c7fb6 chore(pi): use gpt-5.6-sol by default 2026-07-30 09:03:48 -04:00
b8bb26da75 feat(firefox): pin signed browser extensions 2026-07-30 08:31:11 -04:00
06e327ed85 feat(direnv): silence directory change logs 2026-07-29 22:48:46 -04:00
2b957c7f09 feat(agents): make Pi a first-class agent 2026-07-29 12:04:21 -04:00
3e3975c724 feat(pi): point Pi at the Codex subscription
Switch the default provider from Anthropic to OpenAI and the default
model to gpt-5.3-codex, so Pi runs on a ChatGPT Plus/Pro (Codex)
subscription. The OAuth login stays unmanaged in ~/.pi/agent/auth.json,
as before.
2026-07-28 22:36:32 -04:00
78ab95922f feat(agent-skills): add the grill skill
Install the grill skill globally from the skills flake, alongside wiki and
consume. It interviews the operator relentlessly about a plan or design,
resolving every branch to an explicit decision before any implementation.
2026-07-25 17:38:58 -04:00
7edc1ce94b feat(zfs): import ZFS pools and add the shared write group
Add `modules.zfs`, the host-level pool import: a host declares its ZFS host id
and the pools to import with their dataset mountpoints, and the module imports
those pools as durable state rather than recreating them, so a service's data
survives any rebuild or reimage.

Add a shared `storage` group with a fixed gid to the base config both the host
base and the guest-base build on, so a host and every guest carry the same
number and an identity-mapped container write lands on the pool as that group
without per-service permission juggling.

No host enables the module: the only host is a laptop with no pools and a
kernel with no ZFS build, so the enabled build was verified by ad-hoc
enablement against a ZFS-supported kernel while the committed tree stays inert.
2026-07-25 17:26:36 -04:00
e6ea8a0060 feat(guests): place networked guests on tagged VLANs (task 0004)
A guest sets `vlan` to attach to its host's `br-vlan<id>` bridge, `mac`
to reuse an existing address (else a stable one is derived from its
namespace path and read back via `nix eval`), and `address` for a static
IP (else DHCP). The MAC and address are pinned inside the guest by its
own networkd, the only stable MAC pin for a nested container. A guest
naming a VLAN its host has not declared fails the build with an
actionable message.

The `br-vlan<id>` naming moves into a shared `bridgeName` in the lib, so
the bridge a guest attaches to and the bridge the host emits have one
source.
2026-07-25 16:45:26 -04:00
83106239d4 chore(agent-skills): update skills input, drop grill and domain-modeling
Bump the skills flake input and remove the grill and domain-modeling
skills, which are no longer carried in the agent toolset.
2026-07-25 16:36:33 -04:00
e05adef7b7 feat(network): add host VLAN-bridge networking foundation
Introduce `modules.network`, the host-level networking foundation a Host
declares once. A Host states its trunk interface and the tagged VLAN ids to
materialize, and the module emits one systemd-networkd bridge per VLAN, named
by the `br-vlan<id>` convention, plus the host's own management address on a
chosen VLAN's bridge.

The trunk and every bridge set `RequiredForOnline = "no"` so wait-online never
blocks boot on a carrier-less link, and the module owns its own NetworkManager
`unmanaged` guard so enabling it is self-sufficient. Two assertions tie the
management VLAN to the declared VLANs and a management address to a VLAN, so an
address can never be silently dropped.

No host commits an enablement: the only host is a wifi laptop that cannot
present guests as L2 citizens and whose DNS the module's networkd/resolved
would disturb, so the standing enablement waits for the first wired server
host. The build and bridge-name evaluation were verified by enabling the
module ad hoc, and stay reproducible through `extendModules`.
2026-07-25 16:18:10 -04:00