Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
267 commits
Select commit Hold shift + click to select a range
be91f9f
feat(serve): ship Phase 2 of ADR-014 — clawtool serve --listen HTTP g…
bahadirarda Apr 26, 2026
94130c2
feat(relay): ship Phase 3 of ADR-014 — Docker image + clawtool-relay …
bahadirarda Apr 26, 2026
4b4b269
fix(ci): make e2e EXIT trap tolerate already-dead background process
bahadirarda Apr 26, 2026
d806663
feat(supervisor): ship Phase 4 of ADR-014 — dispatch policies (round-…
bahadirarda Apr 26, 2026
4b843ba
feat(serve): POST /v1/recipe/apply + GET /v1/recipes + --mcp-http tra…
bahadirarda Apr 26, 2026
aa52402
fix(agents): codex --skip-git-repo-check + transport closes stdin exp…
bahadirarda Apr 27, 2026
22994f7
feat(v0.14): T1 OTel + T2 auto-lint + T4 Verify MCP tool
bahadirarda Apr 27, 2026
148f001
feat(v0.14): T3 mem0 + T5 git-worktree isolation + T6 SemanticSearch
bahadirarda Apr 27, 2026
e0f2987
fix(worktree): EvalSymlinks comparison for macOS /var → /private/var
bahadirarda Apr 27, 2026
42b4889
feat(biam): ship ADR-015 Phase 1 (async dispatch + signed envelopes +…
bahadirarda Apr 27, 2026
9b74041
feat(v0.15): per-instance rate limiter (F1) + clawtool upgrade subcom…
bahadirarda Apr 27, 2026
498a241
docs(readme): v0.14 / v0.15 surface — BIAM, bridges, send --async, wo…
bahadirarda Apr 27, 2026
71334d8
feat(v0.15): F3 hooks subsystem + F4 clawtool onboard wizard
bahadirarda Apr 27, 2026
9096d7b
feat(v0.15): F5 telemetry + F6 hooks CLI + F7 process-group reaping +…
bahadirarda Apr 27, 2026
deb19a1
fix(v0.15): polish-worker HIGH+MEDIUM batch — limiter/round-robin sin…
bahadirarda Apr 27, 2026
c45132c
docs(http): add docs/http-api.md + README link — Postman & cURL recipes
bahadirarda Apr 27, 2026
758aea3
fix(v0.15): MEDIUM polish — TaskGet/TaskWait surface MessagesFor erro…
bahadirarda Apr 27, 2026
6cbec23
feat(v0.16): BrowserFetch + BrowserScrape — Obscura-backed JS render
bahadirarda Apr 27, 2026
39a3b93
fix(biam): surface NDJSON turn.failed/error events as TaskFailed
bahadirarda Apr 27, 2026
0171284
feat(v0.16.1): Portal feature — saved web-UI targets (ADR-018)
bahadirarda Apr 27, 2026
8067955
feat(v0.16.2): Portal CDP driver — Ask flow + per-portal MCP aliases
bahadirarda Apr 27, 2026
e6af0f2
refactor(portal): swap hand-rolled CDP for chromedp (ADR-007)
bahadirarda Apr 27, 2026
3532ffa
feat(v0.16.3): portal add interactive wizard (chromedp + Chrome)
bahadirarda Apr 27, 2026
8301353
feat(v0.16.4): clawtool mcp authoring noun + surface (ADR-019)
bahadirarda Apr 27, 2026
5935e20
test(portal): add Ask integration test (fake Browser + tagged real-Ch…
bahadirarda Apr 27, 2026
b6a3359
feat(v0.17): clawtool mcp generator — Go / Python / TypeScript scaffolds
bahadirarda Apr 27, 2026
ce9bed7
feat: clawtool uninstall — full footprint cleanup
bahadirarda Apr 27, 2026
8c81e37
feat(v0.18): clawtool sandbox surface + ADR-020 (bwrap/sandbox-exec/d…
bahadirarda Apr 27, 2026
0713937
feat: dockerize clawtool — 15MB distroless static image + Compose stack
bahadirarda Apr 27, 2026
ec2dd44
feat(v0.18.4): core tools polish phase A — Read hashes, Write Read-be…
bahadirarda Apr 27, 2026
01cd88e
feat(v0.18.1): bwrap engine real Wrap — Profile→argv compiler + live …
bahadirarda Apr 27, 2026
4ab2eaf
ci: bump Go to 1.26.0 (chromedp dep requires it)
bahadirarda Apr 27, 2026
ab1647c
feat(v0.18.6): core tools polish phase B — Glob .gitignore + WebFetch…
bahadirarda Apr 27, 2026
c5f704f
fix(e2e) + feat(grep): repair CI + Grep context/multi-pattern/truncation
bahadirarda Apr 27, 2026
1ea710d
feat(websearch): provider-neutral filter shape — domains / recency / …
bahadirarda Apr 27, 2026
3e9a055
feat(bash): background mode + BashOutput / BashKill (ADR-021 phase B)
bahadirarda Apr 27, 2026
cf43c92
docs: three-plane feature shipping contract + SKILL.md routing map
bahadirarda Apr 27, 2026
9152d3d
feat(biam): TaskNotify — edge-triggered fan-in completion push
bahadirarda Apr 27, 2026
ee17735
docs(plugin): refresh About — canonical tool layer + multi-agent supe…
bahadirarda Apr 27, 2026
1099ae5
docs(plugin): adopt 'Tools. Agents. Wired.' tagline
bahadirarda Apr 27, 2026
12c701c
feat(agent): user-defined personas — `clawtool agent new` + AgentNew …
bahadirarda Apr 27, 2026
16313bf
feat(bridges): hermes-agent — fifth supported family (NousResearch, M…
bahadirarda Apr 27, 2026
9421e8c
feat(rules): predicate-based invariant engine + RulesCheck tool
bahadirarda Apr 27, 2026
bb3811f
docs(readme): full rewrite — "Tools. Agents. Wired." tagline + comple…
bahadirarda Apr 27, 2026
f96de85
test(server): surface drift detection — three-plane contract enforced
bahadirarda Apr 27, 2026
a9452be
feat(checkpoint): Commit core tool — Conventional Commits + Co-Author…
bahadirarda Apr 27, 2026
c95a8f8
style: gofmt -w . — fix drift in 7 files
bahadirarda Apr 27, 2026
474fa97
feat(unattended): --unattended flag + per-repo trust + JSONL audit (A…
bahadirarda Apr 27, 2026
e7c3c91
fix(test): allowlist clawtool-unattended.md as CLI-verb-only
bahadirarda Apr 27, 2026
bd4a704
chore(release): v0.20.0 — multi-agent supervisor + checkpoint + rules…
bahadirarda Apr 27, 2026
d071f3d
docs(readme): drop dead ADR links — wiki/ is gitignored
bahadirarda Apr 27, 2026
4b2e677
fix(release): v0.20.1 — gitignore BODY.md so GoReleaser stops tripping
bahadirarda Apr 27, 2026
0f36d89
fix(release): v0.20.2 — go-selfupdate compat + retire Release Please
bahadirarda Apr 27, 2026
2952842
test(version): release pipeline regression tests
bahadirarda Apr 27, 2026
c35328a
feat(a2a): phase 1 — Agent Card serializer + `clawtool a2a card` (ADR…
bahadirarda Apr 27, 2026
8206450
feat(registry): typed ToolSpec manifest — Step 1 of #173 (Codex's #1 …
bahadirarda Apr 27, 2026
bcf6a9e
feat(registry): Step 2 — typed manifest entries for 6 newest tools (#…
bahadirarda Apr 27, 2026
a0dccc4
feat(registry): Step 3a — 12 individual-Register tools join the manif…
bahadirarda Apr 27, 2026
1f0fb64
feat(registry): Step 4 — server.go flip + 30/30 tools manifest-driven…
bahadirarda Apr 27, 2026
dcc85ca
chore(release): v0.21.0 — Tool Manifest Registry + A2A phase 1 + rele…
bahadirarda Apr 27, 2026
0c362c4
feat(supervisor): sandbox dispatch integration (#163 closes)
bahadirarda Apr 27, 2026
e057ba9
feat(task): `clawtool task watch` — stream BIAM transitions to Monito…
bahadirarda Apr 27, 2026
abec5aa
fix(surface): skill allowed-tools covers manifest + plugin includes h…
bahadirarda Apr 27, 2026
2fa6416
chore(release): v0.21.1 — CHANGELOG auto-regen + sandbox dispatch + t…
bahadirarda Apr 27, 2026
fabf572
chore(release): v0.21.2 — re-tag (v0.21.1 trigger missed)
bahadirarda Apr 27, 2026
e49b589
ci: bump every action to @v6 + fix dependabot Conventional-Commits pr…
bahadirarda Apr 27, 2026
d9f6c90
fix(release): re-invoke git-cliff action for CHANGELOG regen step
bahadirarda Apr 27, 2026
40ef761
feat(tui): clawtool dashboard — three-pane Bubble Tea runtime view
bahadirarda Apr 27, 2026
c3ac2ea
chore(release): v0.21.3 — TUI dashboard + release.yml CHANGELOG fix
bahadirarda Apr 27, 2026
389bbd0
fix(commit): populate ChangedPaths from staged index before rules eval
bahadirarda Apr 27, 2026
7f181bc
feat(rules): `clawtool rules` CLI surface + RulesAdd MCP tool
bahadirarda Apr 27, 2026
0e351eb
fix(tui): dashboard live tick + viewport-aware + plain mode (operator…
bahadirarda Apr 27, 2026
b71bca5
feat(agents): shared HTTP MCP fan-in via persistent daemon (codex/gem…
bahadirarda Apr 27, 2026
36ab6a0
feat(onboard): wire MCP host claim + add hermes detection
bahadirarda Apr 27, 2026
b56440c
chore(release): v0.21.4 — shared MCP fan-in + onboard wiring
bahadirarda Apr 27, 2026
51b4362
docs(changelog): regenerate for v0.21.4 [skip ci]
Apr 27, 2026
5ba2370
fix(unattended): inject elevation flags into upstream CLI args (ADR-023)
bahadirarda Apr 27, 2026
6c8fb55
fix(sandbox): per-call resolution fail-closed (audit #202)
bahadirarda Apr 27, 2026
23f4f7a
feat(agents): per-instance secrets-store env injection (audit #205)
bahadirarda Apr 27, 2026
2d66cfa
docs: clean stale "phase X lands later" comments (audit #206)
bahadirarda Apr 27, 2026
98de7d0
feat(biam): Runner.Cancel + true async + `clawtool task cancel` (audi…
bahadirarda Apr 27, 2026
3d60f2c
fix(sandbox): bwrap fail-closes when policy can't be enforced (audit …
bahadirarda Apr 27, 2026
613e1d0
chore(release): v0.21.5 — Codex c1b00f10 audit fixes (security)
bahadirarda Apr 27, 2026
9f6c33c
docs(changelog): regenerate for v0.21.5 [skip ci]
Apr 27, 2026
68a8311
feat(doctor): surface daemon state (UX smoke pass #193)
bahadirarda Apr 27, 2026
cf6f2c2
feat(sandbox): worker container — claude.ai parity (ADR-029 phase 1)
bahadirarda Apr 28, 2026
b2f42d8
feat(sandbox): worker phase 2 — daemon-side routing for Bash (ADR-029)
bahadirarda Apr 28, 2026
44ee058
feat(skill): SkillList + SkillLoad — on-demand mount (ADR-029, #208)
bahadirarda Apr 28, 2026
ccd809b
feat(egress): allowlist proxy binary (ADR-029 phase 4, #209)
bahadirarda Apr 28, 2026
a6b841f
chore(release): v0.21.6 — claude.ai sandbox parity (ADR-029)
bahadirarda Apr 28, 2026
387e65d
docs(onboard): surface sandbox-worker setup hint (ADR-029)
bahadirarda Apr 28, 2026
ddeb308
feat(doctor): sandbox-worker section + guided agent-ambiguity error
bahadirarda Apr 28, 2026
ca98eb7
feat(cli): `clawtool overview` — one-screen system status
bahadirarda Apr 28, 2026
b25eed3
chore(release): v0.21.7 — UX polish (overview + doctor sandbox-worker…
bahadirarda Apr 28, 2026
289958e
docs(changelog): regenerate for v0.21.7 [skip ci]
Apr 28, 2026
cabd434
refactor(ux): strip internal doc IDs from user-facing surfaces
bahadirarda Apr 28, 2026
592ff37
feat(biam): push-based task watch via Unix socket — kill the 250ms poll
bahadirarda Apr 28, 2026
be7a5fa
feat(biam): cross-host bidi via from_instance — codex/gemini/opencode…
bahadirarda Apr 28, 2026
cbc5bda
feat(cli): clawtool setup — unified first-run entry (Phase 1)
bahadirarda Apr 28, 2026
7d5181b
feat(tui): orchestrator Phase 1 — dashboard subscribes to task-watch …
bahadirarda Apr 28, 2026
aa585bf
feat(cli): setup wizard Phase 2 — single huh form + per-feature matrix
bahadirarda Apr 28, 2026
718107b
feat(tui): orchestrator Phase 2 — split-pane streaming TUI per dispatch
bahadirarda Apr 28, 2026
6524b46
style: gofmt across all sources
bahadirarda Apr 28, 2026
9b61a38
chore(rules): add gofmt-clean pre_commit rule
bahadirarda Apr 28, 2026
fd2b03e
ci(integration): drop setup-node `cache: npm` — no lockfile in a Go repo
bahadirarda Apr 28, 2026
59b302f
test(biam): fix data race in HonoursFromInstance — submit before goro…
bahadirarda Apr 28, 2026
5da4187
chore(rules): add race-clean pre_commit rule
bahadirarda Apr 28, 2026
d340fd0
docs(changelog): regenerate for v0.22.0 [skip ci]
Apr 28, 2026
9de8e2e
feat(telemetry): bake cogitave PostHog defaults so opt-in Just Works
bahadirarda Apr 28, 2026
bb00e1b
feat(telemetry): expand event coverage + pre-1.0 default-on consent
bahadirarda Apr 28, 2026
5e76d75
feat(tui): orchestrator Phase 3 — live byte stream + theme + sidebar …
bahadirarda Apr 28, 2026
74b4a76
test(biam): cover stream-frame broadcasting + watchsocket envelope mu…
bahadirarda Apr 28, 2026
b752be6
docs(changelog): regenerate for v0.22.1 [skip ci]
Apr 28, 2026
2431c15
feat(source): add `clawtool source rename` verb (alias `mv`)
bahadirarda Apr 28, 2026
f0105f6
fix(tui): reap orphan tasks at daemon boot + drop stale snapshots fro…
bahadirarda Apr 28, 2026
2ec9f0f
docs(changelog): regenerate for v0.22.2 [skip ci]
Apr 28, 2026
83afb7d
feat(plugin): SessionStart auto-bootstrap hook — clawtool engages on …
bahadirarda Apr 28, 2026
96a631a
feat(telemetry): emit clawtool.install event once per fresh host
bahadirarda Apr 28, 2026
fccbea5
fix(biam): summary lifts NDJSON agent_message text instead of thread.…
bahadirarda Apr 28, 2026
d8925c5
docs(changelog): regenerate for v0.22.4 [skip ci]
Apr 28, 2026
e54bce2
feat(tui): orchestrator Active/Done tabs + viewport-bounded sidebar; …
bahadirarda Apr 28, 2026
1cb5809
docs(changelog): regenerate for v0.22.5 [skip ci]
Apr 28, 2026
6979e71
fix(biam): route `clawtool send --async` through daemon dispatch sock…
bahadirarda Apr 28, 2026
651a232
docs(changelog): regenerate for v0.22.6 [skip ci]
Apr 28, 2026
2216e97
feat(plugin): SessionStart surfaces "clawtool update available" when …
bahadirarda Apr 28, 2026
99b254f
docs(changelog): regenerate for v0.22.7 [skip ci]
Apr 28, 2026
3167a7f
fix(version): unify Resolved() so overview / upgrade / bootstrap repo…
bahadirarda Apr 28, 2026
4fe0d59
docs(changelog): regenerate for v0.22.8 [skip ci]
Apr 28, 2026
454d092
feat(version): daemon-side update poller pushes inline banner via Wat…
bahadirarda Apr 28, 2026
fc2679c
docs(changelog): regenerate for v0.22.9 [skip ci]
Apr 28, 2026
764a02b
fix(tui): orchestrator pane alignment + bound order list against snap…
bahadirarda Apr 28, 2026
8b7da7b
docs(changelog): regenerate for v0.22.10 [skip ci]
Apr 28, 2026
0f8617a
feat(cli): onboard wizard asks for primary CLI + drives smart defaults
bahadirarda Apr 28, 2026
7bac219
docs(changelog): regenerate for v0.22.11 [skip ci]
Apr 28, 2026
75d875c
feat(tui): orchestrator renders SystemNotification banner with 30s au…
bahadirarda Apr 28, 2026
d17f7e7
docs(changelog): regenerate for v0.22.12 [skip ci]
Apr 28, 2026
40c8778
feat(onboard): post-install nudges + README expansion
bahadirarda Apr 28, 2026
30e5a64
docs(changelog): regenerate for v0.22.13 [skip ci]
Apr 28, 2026
3e7e992
test(biam): use /tmp-rooted sockpath helper to dodge darwin 104-byte …
bahadirarda Apr 28, 2026
d7eb4c6
test(biam): also short-path the missing-socket dial test on darwin
bahadirarda Apr 28, 2026
1960b5c
docs(changelog): regenerate for v0.22.15 [skip ci]
Apr 28, 2026
b1fc838
feat(onboard): auto-launch from install.sh + per-step telemetry + sta…
bahadirarda Apr 28, 2026
0ec89dc
docs(cli): drop "Future:" section + dead "long form" hint from help
bahadirarda Apr 28, 2026
612c8bd
docs(changelog): regenerate for v0.22.17 [skip ci]
Apr 28, 2026
7278a5b
ci(release): handle goreleaser drift + concurrent-tag race in changel…
bahadirarda Apr 28, 2026
51dedfb
docs(readme): refresh roadmap — split shipped from pending, drop done…
bahadirarda Apr 28, 2026
0be7694
feat(cli): wire `clawtool telemetry` subcommand + onboard `--yes` for…
bahadirarda Apr 28, 2026
bd4e278
test(e2e): finish docker harness for `clawtool onboard --yes`
bahadirarda Apr 28, 2026
9e0d992
docs(readme): note v0.22.18 telemetry verb + e2e harness, drop done r…
bahadirarda Apr 28, 2026
54a092e
feat(doctor): add [telemetry] section with config-vs-process drift de…
bahadirarda Apr 28, 2026
2493fcc
feat(config): default telemetry on so the wizard's "pre-1.0 default =…
bahadirarda Apr 28, 2026
049111f
docs(changelog): regenerate for v0.22.19 [skip ci]
Apr 28, 2026
5daa42b
fix(config): make telemetry default-on honest on upgrade + persist ex…
bahadirarda Apr 28, 2026
4304148
feat(cli): tools list now shows the full MCP surface (dispatch, agent…
bahadirarda Apr 28, 2026
35ca6ff
refactor(biam): collapse no-op if/else in recordResult into linear flow
bahadirarda Apr 28, 2026
573d9af
fix(biam): close broadcast-vs-unsubscribe race in WatchHub
bahadirarda Apr 28, 2026
154fc91
docs(changelog): regenerate for v0.22.22 [skip ci]
Apr 28, 2026
b92783b
fix(server): kill stdio update_check spam + tag transport on every se…
bahadirarda Apr 28, 2026
0fac54d
docs(changelog): regenerate for v0.22.23 [skip ci]
Apr 28, 2026
f4d92c9
fix(server): use version.Resolved() for /v1/health + MCP serverInfo.v…
bahadirarda Apr 28, 2026
521a7f0
docs(changelog): regenerate for v0.22.24 [skip ci]
Apr 28, 2026
bbbdeda
docs: strip internal doc IDs from user-facing surface
bahadirarda Apr 28, 2026
91eb514
fix(bash): join drain goroutines before flipping bg task to terminal
bahadirarda Apr 28, 2026
2f41735
docs: strip ADR refs from runtime user-facing strings
bahadirarda Apr 28, 2026
7feaf24
fix(concurrency): join in-flight handlers + bound mergeCtx watcher
bahadirarda Apr 28, 2026
e2bb088
docs(changelog): regenerate for v0.22.26 [skip ci]
Apr 28, 2026
c3b6389
fix(tui): orchestrator right pane streams frames + uses real CreatedAt
bahadirarda Apr 28, 2026
5e7b44e
feat(biam): TaskReply MCP tool + CLAWTOOL_TASK_ID env injection (fan-in)
bahadirarda Apr 28, 2026
d96d23b
fix(security): unattended trust+audit files 0o600; hooks shared-buffe…
bahadirarda Apr 28, 2026
d4024e4
docs(changelog): regenerate for v0.22.29 [skip ci]
Apr 28, 2026
de4ece9
fix(egress): join CONNECT tunnels + force-close on shutdown
bahadirarda Apr 28, 2026
a182a4f
fix(biam): error-aware result publish, locked Close, awaited HTTP shu…
bahadirarda Apr 28, 2026
a5080f9
fix(daemon): flock spawn race + Runner.Stop join + ordered teardown
bahadirarda Apr 28, 2026
0a261a0
feat(cli): tools export-typescript — code-mode stub generator (MVP)
bahadirarda Apr 28, 2026
86c5fd6
docs(changelog): regenerate for v0.22.31 [skip ci]
Apr 28, 2026
0a677e1
feat(tui): orchestrator probes daemon /v1/health on connect, banners …
bahadirarda Apr 29, 2026
745a055
docs(changelog): regenerate for v0.22.32 [skip ci]
Apr 29, 2026
eea198f
fix(config): round-2 audit batch — secret leak, races, signal handling
bahadirarda Apr 29, 2026
6cd1418
docs(changelog): regenerate for v0.22.33 [skip ci]
Apr 29, 2026
91f3d20
feat(serve): --debug flag + loud telemetry init + version.Resolved() …
bahadirarda Apr 29, 2026
c6bf1d2
fix(rules): walk up to project root for .clawtool/rules.toml + RulesC…
bahadirarda Apr 29, 2026
5ba4491
docs(changelog): regenerate for v0.22.34 [skip ci]
Apr 29, 2026
e0c81f7
test(tui): orchestrator regression suite + LocalRulesPath walk-up
bahadirarda Apr 29, 2026
44fc8f6
docs(changelog): regenerate for v0.22.35 [skip ci]
Apr 29, 2026
96c3f0e
feat(tools): redact secrets in BaseResult MarshalJSON + ErrorLine
bahadirarda Apr 29, 2026
6bc2e2e
feat(upgrade): self-restart daemon + auto-reconnect dashboard/orchest…
bahadirarda Apr 29, 2026
e887441
test(e2e): container test for binary-swap + daemon-restart flow
bahadirarda Apr 29, 2026
ac2bfe5
feat(upgrade): polished UX — boxed header, phased progress, release n…
bahadirarda Apr 29, 2026
31e350e
feat(star): clawtool star — OAuth Device Flow (no CSRF replay)
bahadirarda Apr 29, 2026
0ddaeaa
feat(telemetry): wire $session_id + $lib so PostHog Sessions view lig…
bahadirarda Apr 29, 2026
7d20a07
fix(e2e): unblock both container tests — version-prefix + Dockerfile …
bahadirarda Apr 29, 2026
7fb9f3c
feat(secrets): octopus env-scrub — strip secret-shaped vars from Bash…
bahadirarda Apr 29, 2026
ae05078
feat(cli): repowire listfmt — table | tsv | json output for `clawtool…
bahadirarda Apr 29, 2026
bd3e25e
feat(cli): repowire listfmt rollout — source/sandbox/portal/hooks lis…
bahadirarda Apr 29, 2026
c39519e
feat(tools): octopus SetContext + GetContext — ambient editor context…
bahadirarda Apr 29, 2026
f0ad75f
feat(doctor): repowire uninstall-plan section + close SetContext drift
bahadirarda Apr 29, 2026
befe1fe
test(e2e): name + label e2e containers + add live-container upgrade s…
bahadirarda Apr 29, 2026
568c542
test(e2e): real-install Alpine fixture — install.sh + GitHub release …
bahadirarda Apr 29, 2026
95bc9b7
feat(telemetry): PostHog session boundaries + LLM observability allow…
bahadirarda Apr 29, 2026
9c100bd
feat(telemetry): pre-v1.0 opt-out lock — telemetry stays on through t…
bahadirarda Apr 29, 2026
336d6b6
feat(a2a): peer discovery — registry, REST surface, runtime-side prim…
bahadirarda Apr 29, 2026
2cabe62
fix(a2a): thread session_id into identity tuple + read os.Stdin in peer
bahadirarda Apr 29, 2026
4431499
feat(a2a): peer-to-peer messaging — inbox primitive + status-fidelity…
bahadirarda Apr 29, 2026
786eb2a
refactor(tui): collapse dashboard into orchestrator + add Peers tab
bahadirarda Apr 29, 2026
9d508b1
refactor(cli): merge dashboard+orchestrator into one handler, share p…
bahadirarda Apr 29, 2026
2d97211
refactor: drop 4 dead min() shims + rename misleading read_legacy.go
bahadirarda Apr 29, 2026
a8608d3
refactor: collapse 12-line + 8-line micro-files into their callers
bahadirarda Apr 29, 2026
b883ff1
refactor: drop 5 dead helpers, keep 6 yarım-kalmış future seams
bahadirarda Apr 29, 2026
60be7fa
refactor: bağla veya sil — yarım-kalmış test seam'leri
bahadirarda Apr 29, 2026
f22c193
test(worker): cover Client.Read / Client.Write transport-error path
bahadirarda Apr 29, 2026
4376ad9
refactor(xdg): one helper for XDG_CONFIG_HOME / STATE / DATA / CACHE
bahadirarda Apr 29, 2026
57af3f8
docs: surface peer mesh + audit cleanup in README
bahadirarda Apr 29, 2026
0a547ca
refactor(core): defaultCwd helper for the cwd-defaulting pattern
bahadirarda Apr 29, 2026
5e81679
refactor(cli): a2a peers reuses peer.go's daemonRequest helper
bahadirarda Apr 29, 2026
a32efb1
refactor(daemon): lift daemonRequest to internal/daemon as exported H…
bahadirarda Apr 29, 2026
fb093b7
refactor(atomicfile): collapse 14 inline temp+rename copies into one …
bahadirarda Apr 29, 2026
b26a925
refactor(xdg): collapse 17 inline XDG-env-resolution callsites
bahadirarda Apr 29, 2026
66e2c9c
refactor(xdg): add CacheDirOrTemp + collapse setup.WriteAtomic onto a…
bahadirarda Apr 29, 2026
b75a8cd
refactor(unattended): trust file round-trips through go-toml
bahadirarda Apr 29, 2026
f7f21b0
refactor(xdg): add ConfigDirIfHome / DataDirIfHome / CacheDirIfHome
bahadirarda Apr 29, 2026
7e173e1
ci(scripts): single-command CI runner with all gates including contai…
bahadirarda Apr 29, 2026
5df6675
fix(tools): drop BaseResult.MarshalJSON shadowing every tool's struct…
bahadirarda Apr 29, 2026
11295f5
fix(upgrade): respawn daemon from install path, not the CLI's own exe…
bahadirarda Apr 29, 2026
2c184e4
feat(telemetry): forward classified daemon log events to PostHog
bahadirarda Apr 29, 2026
2370d8b
feat(telemetry): auto-stamp $lib_version on every event for PostHog v…
bahadirarda Apr 29, 2026
4a4448c
docs(changelog): regenerate for v0.22.36 [skip ci]
Apr 29, 2026
bec137f
feat(telemetry): host fingerprint + GeoIP suppression for Microsoft-l…
bahadirarda Apr 29, 2026
9749d4f
feat(onboard): clear-screen entry + boxed header + structured phase o…
bahadirarda Apr 29, 2026
2857f25
docs(changelog): regenerate for v0.22.38 [skip ci]
Apr 29, 2026
9551018
feat(cli): rewrite onboard as Bubble Tea wizard with alt-screen
bahadirarda Apr 29, 2026
492f544
feat(cli): onboard wizard resume + re-entry guard
bahadirarda Apr 29, 2026
35cd4d8
feat(cli): polish onboard TUI with sidebar layout + ASCII banner
bahadirarda Apr 29, 2026
df44f29
fix(cli): onboard TUI gate falls back to os.Stdin when App.Stdin nil
bahadirarda Apr 29, 2026
7b5980d
refactor(cli): redesign onboard TUI per Charm style patterns
bahadirarda Apr 29, 2026
2ec851c
refactor(cli): onboard TUI fills viewport responsively
bahadirarda Apr 29, 2026
8540a69
fix(cli): onboard form fills card area instead of compressing to one row
bahadirarda Apr 29, 2026
d1a5e74
fix(cli): onboard form renders all options at natural size
bahadirarda Apr 29, 2026
67a107b
refactor(cli): drop nested card frame around onboard step content
bahadirarda Apr 29, 2026
bb7202c
refactor(cli): bring back outer rounded card; fix form clamping properly
bahadirarda Apr 29, 2026
9ed5304
refactor(cli): drop huh embed; ship custom Select / MultiSelect / Con…
bahadirarda Apr 29, 2026
695bce6
refactor(cli): pin onboard step card to fixed silhouette + centre con…
bahadirarda Apr 30, 2026
e17bd19
style(cli): centre onboard wizard horizontally in viewport
bahadirarda Apr 30, 2026
c30561b
style(cli): widen onboard card + polish header banner
bahadirarda Apr 30, 2026
b6c8534
style(cli): swap onboard logo + animate active progress dot
bahadirarda Apr 30, 2026
062e012
style(cli): fix W glyph in logo + add Braille spinner to step indicator
bahadirarda Apr 30, 2026
fe5e269
style(cli): move animation onto the clawtool logo (gradient shimmer)
bahadirarda Apr 30, 2026
ba404aa
style(cli): vertically centre logo against meta column in header
bahadirarda Apr 30, 2026
bed72f5
style(cli): bottom-align logo with metaCol + balance body slack verti…
bahadirarda Apr 30, 2026
2720a87
feat(cli): responsive onboard layout for narrow terminals
bahadirarda Apr 30, 2026
46fc013
Add SafeSkill security badge (50/100)
OyaAIProd Apr 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 4 additions & 4 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"url": "https://github.com/bahadirarda"
},
"metadata": {
"description": "clawtool: the canonical tool layer for AI coding agents — by Bahadır Arda",
"version": "0.8.6"
"description": "clawtool — Tools. Agents. Wired. By Bahadır Arda.",
"version": "0.21.7"
},
"plugins": [
{
Expand All @@ -16,8 +16,8 @@
"repo": "cogitave/clawtool",
"ref": "main"
},
"description": "The canonical tool layer for AI coding agents. Auto-registers an MCP server on install (no claude mcp add-json), biases agent preference toward clawtool's structured-output / timeout-safe / format-aware tools via the loaded skill description, exposes /clawtool slash commands. Uninstall removes everything except user data and the binary itself.",
"version": "0.8.6",
"description": "Tools. Agents. Wired. — wires every AI coding agent (Claude Code / Codex / Opencode / Gemini) onto one timeout-safe, structured-output tool surface. Auto-registers an MCP server on install (no `claude mcp add-json`), biases agent preference via a loaded skill, exposes `/clawtool` slash commands, and dispatches across agents through async BIAM with edge-triggered TaskNotify fan-in. Bundles sandbox profiles (bwrap / sandbox-exec / docker), saved web-UI portals, an MCP scaffolder, and search-first tool discovery. Uninstall removes everything except user data and the binary itself.",
"version": "0.21.7",
"author": {
"name": "Bahadır Arda",
"url": "https://github.com/bahadirarda"
Expand Down
18 changes: 14 additions & 4 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "clawtool",
"version": "0.8.6",
"description": "The canonical tool layer for AI coding agents — install once, use everywhere. Replaces native Bash/Read/Edit/Write/Grep/Glob with timeout-safe, structured-output equivalents; adds WebFetch + WebSearch + a bleve-backed ToolSearch primitive for deferred tool discovery; aggregates configurable MCP source servers (github, slack, postgres, …) under the same surface.",
"version": "0.21.7",
"description": "Tools. Agents. Wired. — the canonical tool layer that wires every AI coding agent (Claude Code / Codex / Opencode / Gemini / Hermes) onto one timeout-safe, structured-output surface with multi-agent dispatch, sandbox profiles, and search-first discovery.",
"author": {
"name": "Bahadır Arda",
"url": "https://github.com/bahadirarda"
Expand All @@ -11,14 +11,24 @@
"repository": "https://github.com/cogitave/clawtool",
"keywords": [
"mcp",
"mcp-server",
"tools",
"canonical",
"bash",
"canonical-tools",
"search-first",
"multi-agent",
"agent-supervisor",
"agent-dispatch",
"biam",
"claude-code",
"claude-code-plugin",
"codex",
"opencode",
"gemini",
"hermes",
"ai-coding-agent",
"sandbox",
"structured-output",
"marketplace-plugin",
"toolset"
],
"mcpServers": {
Expand Down
27 changes: 27 additions & 0 deletions .clawtool/rules.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# clawtool rules — predicate-based invariants enforced at
# lifecycle events (pre_commit, post_edit, session_end,
# pre_send, pre_unattended). See docs/rules.md for the schema.

[[rule]]
name = "no-internal-doc-ids"
description = "User-facing surfaces must not leak internal doc IDs (ADR-XXX, audit-#NNN, ticket slugs)."
when = "post_edit"
condition = "changed(\"internal/cli/**/*.go\") OR changed(\"commands/*.md\") OR changed(\"internal/tools/core/*.go\") OR changed(\"README.md\") OR changed(\"skills/clawtool/SKILL.md\")"
severity = "warn"
hint = "Grep the touched files for ADR-, audit-#, and bare #\\d+ references. Move internal references to source comments or wiki cross-links; describe behavior plainly in CLI help, slash commands, MCP tool descriptions, onboard prompts, README operator sections, and config templates. Operator caught ADR-029 leaking into onboard / overview / doctor / commands/clawtool-overview.md and called it bad UX."

[[rule]]
name = "gofmt-clean"
description = "Go sources must be gofmt-clean before commit. CI Lint job will fail otherwise."
when = "pre_commit"
condition = "changed(\"**/*.go\")"
severity = "warn"
hint = "Run: gofmt -l . to find diverged files; gofmt -w <file> to fix in-place. Apply across the whole repo: find . -name \"*.go\" -not -path \"./vendor/*\" -exec gofmt -w {} +"

[[rule]]
name = "race-clean"
description = "Go tests must pass under -race before commit. CI Test job runs go test -race and will fail otherwise."
when = "pre_commit"
condition = "changed(\"**/*.go\")"
severity = "warn"
hint = "Run: go test -race -count=1 -timeout=120s ./... — fix any DATA RACE warnings (usually shared variables across test goroutines; reorder so the writer settles before the reader spawns, or use a channel)."
32 changes: 32 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Anything not needed inside the build context — keeps `docker
# build` fast and makes layer caching meaningful.

.git
.github
.idea
.vscode
.obsidian
/wiki
/_templates
/.raw
/CLAUDE.md
/.envrc
/.envrc.local

# Build outputs (we re-build inside the container anyway)
/bin
/dist
/test/e2e/stub-server/stub-server

# Local caches
/.clawtool/state
*.log
*.test
*.out

# Documentation that the runtime container doesn't need
# (the source is still copied so godoc / embed paths work; only
# docs/ as a tree is excluded to keep the build context lean).
/docs
*.md
!README.md
7 changes: 5 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,11 @@ updates:
day: monday
open-pull-requests-limit: 5
commit-message:
# `include: scope` deliberately omitted — dependabot would
# add `(deps)` after our `chore(deps)` prefix, producing the
# invalid `chore(deps)(deps): bump foo` shape Conventional
# Commits rejects.
prefix: "chore(deps)"
include: scope
groups:
# Group all minor/patch dep bumps into one PR per week. Major
# bumps still get their own PR so they're easier to review.
Expand All @@ -32,8 +35,8 @@ updates:
day: monday
open-pull-requests-limit: 3
commit-message:
# See gomod block above for why `include: scope` is omitted.
prefix: "chore(ci)"
include: scope
labels:
- dependencies
- ci
50 changes: 31 additions & 19 deletions .github/workflows/ci.yml
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,12 @@ concurrency:
env:
# Pinned Go version. Bumped via dependabot or a deliberate `chore(ci)`
# commit — never silently. Keep in sync with go.mod's `go` directive.
GO_VERSION: "1.25.5"
#
# 2026-04-27: bumped 1.25.5 → 1.26.0 because chromedp/chromedp v0.15.x
# (pulled by the portal feature, ADR-018/020) requires Go 1.26.
# setup-go installs the requested version and GOTOOLCHAIN=local
# prevents an automatic upgrade, so the env var is the gate.
GO_VERSION: "1.26.0"

jobs:
# Static analysis — fast feedback so devs see formatting / vet errors
Expand All @@ -27,17 +32,21 @@ jobs:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: ${{ env.GO_VERSION }}
cache: true
- name: gofmt -d (no diff allowed)
- name: gofmt (no diff allowed)
# gofmt does not understand the "./..." pattern; pass the
# repo root so it walks recursively. Capture stdout (the
# offending file list); fail when non-empty.
run: |
out=$(gofmt -d -l ./...)
out=$(gofmt -l .)
if [ -n "$out" ]; then
echo "::error::gofmt produced diff; run 'gofmt -w ./...'"
echo "::error::gofmt drift; run 'gofmt -w .'"
echo "$out"
gofmt -d $out
exit 1
fi
- name: go vet
Expand All @@ -55,24 +64,27 @@ jobs:
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: ${{ env.GO_VERSION }}
cache: true

# Linux runners ship ripgrep + grep already; macOS runners ship
# grep but not rg. We install rg explicitly on macOS so the Grep
# tool's preferred-engine code path gets exercised everywhere.
- name: Install ripgrep (macOS)
if: matrix.os == 'macos-latest'
run: brew install ripgrep
- name: Install pandoc (universal — needed for Read .docx)
# ripgrep is no longer pre-installed on either runner image
# consistently. Install it explicitly so Grep's preferred-engine
# code path stays exercised everywhere (the e2e test asserts
# engine == ripgrep, not grep).
- name: Install test-time binaries
# macOS GitHub runners do not ship GNU coreutils, so `timeout`
# (and its homonym `gtimeout`) are absent until we install them
# via brew. test/e2e/run.sh detects whichever is on PATH and
# uses it; we just have to make sure one ends up there.
run: |
if [ "$(uname -s)" = "Linux" ]; then
sudo apt-get update -qq && sudo apt-get install -y -qq pandoc poppler-utils
sudo apt-get update -qq
sudo apt-get install -y -qq ripgrep pandoc poppler-utils
else
brew install pandoc poppler
brew install ripgrep pandoc poppler coreutils
fi

- name: go test -race
Expand All @@ -93,8 +105,8 @@ jobs:
name: Cross-compile sanity
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: ${{ env.GO_VERSION }}
cache: true
Expand Down
22 changes: 16 additions & 6 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,19 +39,29 @@ jobs:
contains(github.event.pull_request.labels.*.name, 'integration')
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- uses: actions/setup-go@v5
- uses: actions/setup-go@v6
with:
go-version: ${{ env.GO_VERSION }}
cache: true

- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
# `npx` doesn't reliably cache packages across runs on its own,
# so we cache npm's directory ourselves to keep wall time down.
cache: npm
# `cache: npm` requires a package-lock.json at repo root — clawtool
# is a Go project so there isn't one. npx packages download per run;
# this job is scheduled daily so the cache miss is tolerable.

# Manually cache ~/.npm so npx download-on-demand isn't wholly cold
# across runs. Hashing on go.sum is a stable-enough key — it changes
# roughly when the integration set turns over too.
- uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('go.sum') }}
restore-keys: |
${{ runner.os }}-npm-

- name: Build clawtool
run: make build
Expand Down
25 changes: 0 additions & 25 deletions .github/workflows/release-please.yml

This file was deleted.

Loading