You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(cli): rename aactl binary to awrit (TD-CLI-001)
Mechanical rename of the CLI binary from aactl to awrit across the
ship-to-main surface. No logic changes — pure directory/file/string
rename to align the CLI identity with the product brand.
Production:
- cmd/aactl/ -> cmd/awrit/ (directory rename via git mv, preserves history)
- docs/aactl-reference.md -> docs/awrit-reference.md (file rename)
- cmd/awrit/root.go: Cobra Use field "aactl" -> "awrit"
- cmd/broker/main.go: error message "Run 'aactl init'..." -> "Run 'awrit init'..."
- .github/workflows/ci.yml: go build ./cmd/aactl -> ./cmd/awrit
- .gitignore: /awrit added alongside /aactl (both listed during transition
so stray binaries under either name stay untracked)
- internal/cfg/configfile.go: user-visible aactl references in comments updated
- internal/cfg/cfg.go: aactl references in inline doc comments updated
Docs + scripts + tests (bulk sed):
- docs/api.md, docs/architecture.md, docs/awrit-reference.md,
docs/common-tasks.md, docs/design-decisions.md, docs/getting-started-operator.md,
docs/integration-patterns.md, docs/scenarios.md, docs/scope-model.md,
docs/troubleshooting.md
- scripts/gates.sh, scripts/stack_up.sh
- README.md, CONTRIBUTING.md, docker-compose.yml
- tests/LIVE-TEST-TEMPLATE.md, tests/app-launch-tokens/env.sh,
tests/p0-production-foundations/{env.sh, user-stories.md},
tests/p1-admin-secret/{env.sh, user-stories.md},
tests/sec-l1/regression-plan.md,
tests/sec-l2a/{env.sh, user-stories.md}
Intentionally NOT updated (historical records):
- tests/*/evidence/*.md — past test run evidence files describe what
happened at the time using the tool name as it existed then. Rewriting
these would misrepresent history.
- CHANGELOG historical entries — same principle. Only the new "Unreleased"
entry for this rename is added.
- MEMORY.md, FLOW.md, .plans/**, .claude/**, .agents/** — stripped from
main anyway, developer-facing tracking that uses the old name for
historical context.
NOT in scope:
- Go module path rename (github.com/devonartis/agentauth) — gated on the
GitHub repo rename, separate work
- agentauth -> agentwrit brand sweep across docs for the TD-TOKEN-001 /
TD-CFG-001 / TD-010 defaults — separate direct-push to develop per user
instruction ("push not a pr for the docs")
Validation: go build ./..., go vet ./..., gofmt -l, go test ./... all
green across all 16 packages (cmd/awrit now compiles as the CLI binary).
Marks TD-CLI-001 RESOLVED in TECH-DEBT.md.
-**`cmd/aactl/` → `cmd/awrit/`** — directory renamed. Cobra command name changed (`Use: "aactl"` → `Use: "awrit"`). All internal CLI output, help text, and error messages updated.
13
+
-**`docs/aactl-reference.md` → `docs/awrit-reference.md`** — reference doc renamed. All example commands in the doc rewritten to use `awrit`.
14
+
-**Docs, scripts, tests, README, CONTRIBUTING, docker-compose.yml, .github/workflows/ci.yml, .gitignore** — every `aactl` reference in ship-to-main files rewritten to `awrit`. Evidence files under `tests/*/evidence/*.md` intentionally preserved as-is because they are historical records of past test runs (rewriting history would misrepresent what happened at the time).
-**`.gitignore`** — both `/awrit` and `/aactl` listed so accidentally-built binaries under either name stay untracked during the transition.
17
+
-**`internal/cfg/configfile.go`** — user-visible references in the env var comment block updated to `awrit`.
18
+
19
+
Scope: ~36 files touched plus directory + file renames. No production logic changes — pure mechanical rename. The `github.com/devonartis/agentauth` Go module path is NOT changed (that's gated on the GitHub repo rename, separate work).
20
+
10
21
### Promoted `adminTTL` const to configurable `cfg.AdminTokenTTL` (TD-010)
11
22
12
23
-**`internal/admin/admin_svc.go`** — deleted the magic-number const `adminTTL = 300`. Admin JWT TTL is now driven by `cfg.AdminTokenTTL` (seconds), wired through a new `tokenTTL` parameter on `NewAdminSvc`. Operators tune via `AA_ADMIN_TOKEN_TTL` (default 300 / 5 min).
@@ -158,7 +158,7 @@ A FastAPI web app where you enter a patient ID and a plain-language request. A l
158
158
159
159
## Architecture
160
160
161
-
AgentAuth is a single broker binary. Operators manage it with the `aactl` CLI. Developers and agents interact with it over HTTP.
161
+
AgentAuth is a single broker binary. Operators manage it with the `awrit` CLI. Developers and agents interact with it over HTTP.
162
162
163
163
```mermaid
164
164
flowchart TB
@@ -181,7 +181,7 @@ flowchart TB
181
181
STORE["Store\nSQLite persistence"]
182
182
end
183
183
184
-
AACTL["aactl\nOperator CLI"]
184
+
AACTL["awrit\nOperator CLI"]
185
185
186
186
AGENT -- "POST /v1/register\n(launch token + signed nonce)" --> IDENTITY
187
187
AGENT -- "Bearer token" --> RS
@@ -261,13 +261,13 @@ All error responses use [RFC 7807](https://tools.ietf.org/html/rfc7807) `applica
261
261
262
262
## Configuration
263
263
264
-
All broker environment variables use the `AA_` prefix. The broker also reads config files generated by `aactl init` (see [Getting Started: Operator](docs/getting-started-operator.md)).
264
+
All broker environment variables use the `AA_` prefix. The broker also reads config files generated by `awrit init` (see [Getting Started: Operator](docs/getting-started-operator.md)).
265
265
266
266
### Required
267
267
268
268
| Variable | Description |
269
269
|----------|-------------|
270
-
|`AA_ADMIN_SECRET`| Shared secret for admin authentication. Broker exits if unset. Use `aactl init` to generate one securely. |
270
+
|`AA_ADMIN_SECRET`| Shared secret for admin authentication. Broker exits if unset. Use `awrit init` to generate one securely. |
271
271
272
272
### Broker settings
273
273
@@ -296,7 +296,7 @@ If `AA_DEFAULT_TTL` exceeds `AA_MAX_TTL`, the broker logs a warning at startup a
|`AA_SIGNING_KEY_PATH`|`./signing.key`| Ed25519 signing key path. Auto-generated on first startup. |
299
-
|`AA_CONFIG_PATH`|*(none)*| Path to config file from `aactl init`. Optional — env vars override config file values. |
299
+
|`AA_CONFIG_PATH`|*(none)*| Path to config file from `awrit init`. Optional — env vars override config file values. |
300
300
301
301
### TLS / mTLS
302
302
@@ -312,7 +312,7 @@ If `AA_DEFAULT_TTL` exceeds `AA_MAX_TTL`, the broker logs a warning at startup a
312
312
| Variable | Description |
313
313
|----------|-------------|
314
314
|`AACTL_BROKER_URL`| Broker base URL (e.g., `http://localhost:8080`) |
315
-
|`AACTL_ADMIN_SECRET`| Admin secret for aactl authentication |
315
+
|`AACTL_ADMIN_SECRET`| Admin secret for awrit authentication |
316
316
317
317
---
318
318
@@ -355,13 +355,13 @@ The Docker Compose stack runs the broker on port 8080 (override with `AA_HOST_PO
355
355
356
356
---
357
357
358
-
## Operator CLI (aactl)
358
+
## Operator CLI (awrit)
359
359
360
-
`aactl` is the operator's command-line tool for managing the AgentAuth broker. It auto-authenticates with the broker using `AACTL_BROKER_URL` and `AACTL_ADMIN_SECRET`.
360
+
`awrit` is the operator's command-line tool for managing the AgentAuth broker. It auto-authenticates with the broker using `AACTL_BROKER_URL` and `AACTL_ADMIN_SECRET`.
| TD-TOKEN-003 |~~**Tests lock the issuer hardcode in place** — 6 assertions across `tkn_svc_test.go` and `val_mw_test.go`~~|~~HIGH~~|**RESOLVED 2026-04-10** — all 6 assertions and 3 `cfg.Cfg{}` literal constructions updated to drive from fixture `Issuer: "test-issuer"`. Same branch as TD-TOKEN-001. |`internal/token/tkn_svc_test.go`, `internal/authz/val_mw_test.go`, `internal/deleg/deleg_svc_test.go`, `internal/admin/admin_svc_test.go`|
350
350
| TD-TEST-001 |~~**Test SPIFFE fixtures leak `agentauth.local`**~~|~~MEDIUM~~|**RESOLVED 2026-04-10** — all `agentauth.local` references in test files swept to `test.local` (mechanical sed across `admin_hdl_test.go`, `identity/id_svc_test.go`, `mutauth/{heartbeat,discovery,mut_auth_hdl}_test.go`, `token/tkn_svc_test.go`). Same branch as TD-TOKEN-001. |`internal/admin/admin_hdl_test.go`, `internal/identity/id_svc_test.go`, `internal/mutauth/heartbeat_test.go`, `internal/mutauth/discovery_test.go`, `internal/mutauth/mut_auth_hdl_test.go`, `internal/token/tkn_svc_test.go`|
**Not creating a TD for env var prefix** — decided 2026-04-10 to keep `AA_*` indefinitely. Neutral enough (two letters), operator-facing, highest-friction change in the whole rebrand. Re-evaluate at 1.0 if ever.
0 commit comments