This website requires JavaScript.
2ea73e40a8
docs(decisions): ADR 0003 — system prompts stay user-directed
didericis
2026-05-29 00:40:19 -04:00
7b2474a5d3
refactor(manifest): drop dead _load_json_or_die helper
didericis-claude
2026-05-29 00:23:56 -04:00
847baa84be
refactor(manifest): raise ManifestError instead of die()
didericis-claude
2026-05-29 00:15:15 -04:00
99ec267c74
fix(dashboard): surface launch/crash failures (#100 )
didericis-claude
2026-05-28 23:49:21 -04:00
848515e5d4
docs: surface docs-folder conventions in AGENTS.md
didericis
2026-05-28 23:26:37 -04:00
ae1531835d
docs: drop "forge" jargon for concrete Gitea wording
didericis
2026-05-28 22:53:53 -04:00
5c5f576df0
docs(research): add README describing research notes
didericis
2026-05-28 22:30:46 -04:00
d329e511fd
docs: drop docs/INDEX.md, add PRD README with format
didericis
2026-05-28 22:26:09 -04:00
1308e61c7e
docs: hoist "when to write which document" to docs/README.md
didericis
2026-05-28 22:21:28 -04:00
2141a85884
docs(decisions): drop hand-maintained index from README
didericis
2026-05-28 22:00:55 -04:00
ccbed97776
docs(prd): inline #88 rationale into PRD 0025
didericis
2026-05-28 21:51:21 -04:00
1df78ee77f
docs(decisions): add ADR-lite decision log
didericis
2026-05-28 21:51:21 -04:00
c840182d12
docs(research): issue tracking vs in-repo decision history
didericis
2026-05-28 21:51:21 -04:00
7b4c1cd091
docs: drop "forge" jargon for concrete wording
didericis
2026-05-28 22:57:20 -04:00
47c3ba63f8
docs(prd): mark merged PRDs as Active
didericis
2026-05-28 22:07:19 -04:00
dcd90cd45e
docs(manifest): document + demo agent-level git.user
didericis
2026-05-28 21:10:47 -04:00
0708e99e4e
feat(manifest): lift git.user to the agent layer
didericis
2026-05-28 21:10:47 -04:00
f9e3b6adda
docs(prd): add PRD 0027 agent-level git user identity
didericis
2026-05-28 20:58:00 -04:00
18e3b62b72
docs: rename CLAUDE.md to AGENTS.md and rebrand provider-agnostic
didericis-codex
2026-05-28 20:32:35 -04:00
e641bacf2d
refactor(backend): move AGENT_CA path/bundle constants to shared util
didericis-claude
2026-05-28 18:25:51 -04:00
c9b18ea17e
refactor(backend): lift shared CA cert select + fingerprint helpers
didericis-claude
2026-05-28 18:09:40 -04:00
c854db87c6
fix(git): mount git-gate known hosts
didericis-codex
2026-05-28 19:59:37 -04:00
f86349ca92
fix(git): rewrite logical ip upstream aliases
didericis-codex
2026-05-28 19:50:50 -04:00
1f0434bffc
fix(manifest): allow ip git upstreams
didericis-codex
2026-05-28 19:44:51 -04:00
fed006441d
fix(pipelock): allow route ssrf ip policy
didericis-codex
2026-05-28 19:32:31 -04:00
bcadc07d09
feat(pipelock): allow route tls passthrough policy
didericis-codex
2026-05-28 19:19:40 -04:00
3299674c30
fix(pipelock): disable bip39 detector by default
didericis-codex
2026-05-28 19:08:34 -04:00
c31845a5b8
fix(egress): remove implicit provider routes
didericis-codex
2026-05-28 19:04:49 -04:00
9399626ba6
fix(agent): hide auth placeholder env in preflight
didericis-codex
2026-05-28 19:00:39 -04:00
43cd83d77b
fix(smolmachines): build sidecar image before launch
didericis-codex
2026-05-28 18:49:28 -04:00
c4449001d1
fix(dashboard): tolerate missing manifest
didericis-codex
2026-05-28 18:44:42 -04:00
7f3998e79e
fix(dashboard): quiet docker polling errors
didericis-codex
2026-05-28 18:33:13 -04:00
cdb1870b1c
docs(agent): clarify claude oauth env
didericis-codex
2026-05-28 18:20:09 -04:00
cacba087c9
docs(agent): document provider base bottles
didericis-codex
2026-05-28 18:00:38 -04:00
1cbedc91c0
refactor(agent): use agent-neutral runtime names
didericis-codex
2026-05-28 17:59:24 -04:00
c08b09dc9f
refactor!: rename project to bot-bottle
didericis-codex
2026-05-28 17:56:14 -04:00
8875d8cc17
fix(agent): address provider review feedback
didericis-codex
2026-05-28 17:24:39 -04:00
c9291f97e6
docs: add project status positioning
didericis-codex
2026-05-28 02:35:01 -04:00
500fd910c4
feat(agent): add provider templates
didericis-codex
2026-05-28 02:18:53 -04:00
e03d90962d
docs(prd): scaffold PRD 0026 — Agent Provider Templates
didericis-codex
2026-05-28 02:05:09 -04:00
9183c64225
docs: add agent guidance
didericis-codex
2026-05-28 01:54:55 -04:00
f029a3d7f5
refactor(manifest): drop stale migration errors
didericis-codex
2026-05-28 01:08:05 -04:00
59ee32cc8d
refactor(manifest): key git config by host
didericis-codex
2026-05-28 00:49:34 -04:00
85104742ca
docs(readme): document bottle extends: composition (PRD 0025)
didericis-claude
2026-05-27 23:31:02 -04:00
a5c8b4e7b2
feat(manifest): bottle composition via \extends:\ resolver (PRD 0025, #88 )
didericis-claude
2026-05-27 23:30:40 -04:00
4f7a506a9e
docs(prd): 0025 — bottle composition via extends: (issue #88 )
didericis-claude
2026-05-27 23:27:04 -04:00
d0712fb757
docs(readme): document git_user manifest field (issue #86 )
didericis-claude
2026-05-27 23:00:59 -04:00
c9cdd41110
feat(smolmachines): apply git_user via git config --global on provision (issue #86 )
didericis-claude
2026-05-27 23:00:21 -04:00
9e69aaa99a
feat(docker): apply git_user via git config --global on provision (issue #86 )
didericis-claude
2026-05-27 22:58:37 -04:00
689675160a
feat(manifest): add git_user bottle field (issue #86 )
didericis-claude
2026-05-27 22:56:37 -04:00
574551e2eb
fix(sidecar_init): strip EGRESS_TOKEN_* from non-egress daemons' env (issue #84 )
didericis-claude
2026-05-27 21:14:48 -04:00
b3c6d66850
style(smolmachines): address PR #83 review comments
didericis-claude
2026-05-27 21:05:33 -04:00
aa5aa1f031
fix(smolmachines): defer pty_resize startup sync to dodge libkrun's bringup race
didericis-claude
2026-05-27 20:55:00 -04:00
9c83ea6428
chore(smolmachines): re-add pty_resize debug log (temp, for issue diagnosis)
didericis-claude
2026-05-27 20:47:32 -04:00
b9853ae0c7
fix(smolmachines): give pty_resize side-channel DEVNULL stdin so it survives under tmux
didericis-claude
2026-05-27 20:43:59 -04:00
37bd11b375
chore(smolmachines): instrument pty_resize wrapper for crash diagnosis
didericis-claude
2026-05-27 20:37:50 -04:00
794e8666e1
fix(smolmachines): invoke pty_resize by absolute path, not python -m
didericis-claude
2026-05-27 20:26:42 -04:00
3fb305f654
fix(smolmachines): bridge host SIGWINCH into the VM PTY (issue #82 )
didericis-claude
2026-05-27 20:15:11 -04:00
a3a9ec065e
feat(cleanup): walk every backend, reap smolmachines orphans too
didericis-claude
2026-05-27 18:38:00 -04:00
3103266053
fix(dashboard): hoist claude_argv to Bottle ABC so smolmachines pane attach works
didericis-claude
2026-05-27 19:52:02 -04:00
5e0130b56f
fix(smolmachines): build agent image in launch, not prepare
didericis-claude
2026-05-27 19:37:15 -04:00
5d740a6948
style(backend): drop stale "moved/removed" pointer comments
didericis-claude
2026-05-27 19:16:28 -04:00
3b418580a9
refactor(backend): has_backend() helper + docker/enumerate split + ActiveAgent rename
didericis-claude
2026-05-27 19:03:16 -04:00
adff1263d8
feat(cli): cross-backend list active + --backend flag + dashboard picker (issue #77 )
didericis-claude
2026-05-27 18:27:12 -04:00
1e82aed54b
Merge pull request 'feat(smolmachines): per-bottle loopback alias scopes TSI to single /32' (#76 ) from smolmachines-loopback-alias-scoping into main
didericis-claude
2026-05-27 18:08:02 -04:00
2f143c7142
fix(smolmachines): include per-bottle alias in NO_PROXY
didericis-claude
2026-05-27 17:17:00 -04:00
7eda2a66ec
feat(smolmachines): patch smolvm state DB to actually enforce per-bottle allowlist
didericis-claude
2026-05-27 16:55:03 -04:00
a919268d5e
docs: honest framing of upstream smolvm 0.8.0 allowlist bug
didericis-claude
2026-05-27 16:37:56 -04:00
2edc1abb9a
feat(smolmachines): per-bottle loopback alias scopes TSI to single /32
didericis-claude
2026-05-27 16:23:17 -04:00
bad195e910
Merge pull request 'feat(smolmachines): PRD 0022 sandbox-escape suite green under smolmachines (PRD 0023 chunk 5)' (#73 ) from prd-0023-chunk-5-sandbox-suite-smolmachines into main
didericis-claude
2026-05-27 16:13:38 -04:00
d7cef27584
feat(smolmachines): PRD 0022 sandbox-escape suite green under smolmachines (PRD 0023 chunk 5)
didericis-claude
2026-05-27 14:31:27 -04:00
eceba96c68
Merge pull request 'fix(smolmachines): docker push fails on Docker Desktop — daemon-side route differs from host loopback' (#74 ) from fix-local-registry-docker-desktop into main
didericis-claude
2026-05-27 16:10:45 -04:00
d02fe50193
fix(smolmachines): run claude mcp add as node so config lands in node's home
didericis-claude
2026-05-27 16:08:08 -04:00
515306cd4a
fix(smolmachines): restore /tmp + /var/tmp perms after smolvm pack remap
didericis-claude
2026-05-27 16:02:47 -04:00
45c821a8f3
docs(smolmachines): note loopback-scope limitation + tracking issue
didericis-claude
2026-05-27 15:58:30 -04:00
5486170be1
fix(smolmachines): route agent through egress when routes declared, wait for VM warm-up
didericis-claude
2026-05-27 15:57:18 -04:00
4f136a9932
fix(smolmachines): agent dials bundle via host loopback ports, not docker bridge IP
didericis-claude
2026-05-27 15:31:44 -04:00
da1e5e1ba8
fix(smolmachines): pass --net explicitly when allow_cidrs is set
didericis-claude
2026-05-27 15:21:43 -04:00
91955ec59f
fix(smolmachines): forward guest env on every exec + chown /home/node
didericis-claude
2026-05-27 15:18:21 -04:00
35edf50f21
fix(smolmachines): drop runuser -l in favor of UID switch + explicit HOME/USER
didericis-claude
2026-05-27 15:03:51 -04:00
af65c10361
refactor: Bottle.exec takes a user= kwarg, default node
didericis-claude
2026-05-27 15:00:13 -04:00
e26d459a97
fix(smolmachines): run claude + shell exec as the node user
didericis-claude
2026-05-27 14:58:34 -04:00
906c9fd1bb
fix(smolmachines): preflight print uses plan-level egress routes
didericis-claude
2026-05-27 14:55:08 -04:00
47eb56bd10
fix(smolmachines): use containerized crane to push, bypassing docker daemon's HTTPS preference
didericis-claude
2026-05-27 14:52:40 -04:00
f4026ea3ae
fix(smolmachines): docker push fails on Docker Desktop — daemon-side route differs from host loopback
didericis-claude
2026-05-27 14:41:26 -04:00
ac8c7ba696
feat(smolmachines): provision_ca + provision_git + provision_supervise (PRD 0023 chunk 4d)
didericis-claude
2026-05-27 14:15:58 -04:00
1fa17d1822
feat(smolmachines): build agent image from repo Dockerfile (PRD 0023 chunk 4c)
didericis-claude
2026-05-27 13:51:02 -04:00
4ac61a563b
Merge pull request 'feat(smolmachines): thread inner Plans + bundle daemons run (PRD 0023 chunk 4b)' (#70 ) from prd-0023-chunk-4b-inner-plans into main
didericis-claude
2026-05-27 13:21:42 -04:00
519a71f2e7
refactor(docker): drop legacy names from capability_apply teardown
didericis-claude
2026-05-27 13:07:15 -04:00
727f30d422
refactor(docker): drop legacy per-sidecar container_name functions
didericis-claude
2026-05-27 13:04:48 -04:00
8ecba2b458
refactor(docker): drop legacy supervise_container_name alias
didericis-claude
2026-05-27 12:52:47 -04:00
73dc0d4a40
refactor(sidecars): instantiate sidecar ABCs directly from any backend
didericis-claude
2026-05-27 05:42:20 -04:00
1dfc359141
feat(smolmachines): thread inner Plans + bundle daemons run (PRD 0023 chunk 4b)
didericis-claude
2026-05-27 05:29:02 -04:00
085a0c1923
style(smolmachines): provision_git stub uses pass not del
didericis-claude
2026-05-27 05:18:19 -04:00
9e3b7e441e
feat(smolmachines): provision_prompt + provision_skills (PRD 0023 chunk 4a)
didericis-claude
2026-05-27 05:08:17 -04:00
554d60324d
Merge pull request 'feat(sidecars): egress binds 127.0.0.1 when EGRESS_LISTEN_HOST is set (PRD 0023 chunk 3)' (#68 ) from prd-0023-chunk-3-egress-bind-localhost into main
didericis-claude
2026-05-27 04:54:15 -04:00
909029085e
feat(sidecars): egress binds 127.0.0.1 when EGRESS_LISTEN_HOST is set (PRD 0023 chunk 3)
didericis-claude
2026-05-27 04:49:22 -04:00
9f65b137b9
feat(smolmachines): end-to-end launch + Bottle.exec + smoke + probes (PRD 0023 chunk 2d)
didericis-claude
2026-05-27 04:39:52 -04:00
6b861a1418
Merge pull request 'feat(smolmachines): bundle bringup on per-bottle docker bridge (PRD 0023 chunk 2c)' (#66 ) from prd-0023-chunk-2c-bundle-bringup into main
didericis-claude
2026-05-27 04:27:33 -04:00
495be7f9c0
feat(smolmachines): bundle bringup on per-bottle docker bridge (PRD 0023 chunk 2c)
didericis-claude
2026-05-27 04:19:31 -04:00