Add Phase 3 CLI tools: exo client and exod server binaries

- exod: gRPC daemon with auto-migration, graceful shutdown (SIGINT/SIGTERM),
  configurable listen address and data directory via flags
- exo: CLI client with import (YAML artifacts), tag add/list, cat add/list,
  search by tag commands; connects via EXO_ADDR env var
- Add bin/ to .gitignore

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-21 09:59:54 -07:00
parent b64177baa8
commit a336dc1ebb
5 changed files with 436 additions and 2 deletions

View File

@@ -46,7 +46,19 @@ Tracks implementation progress against the phases in `PROJECT_PLAN.md`.
- `proto/exo/v1/*.pb.go` (generated)
- `server/server.go`, `server/server_test.go`
## Phase 3: CLI Tools — NOT STARTED
## Phase 3: CLI Tools — COMPLETE
**Deliverables:**
- [x] `exod` server binary: gRPC daemon with startup, graceful shutdown (SIGINT/SIGTERM), auto-migration, flag-based configuration (`-listen`, `-base`, `-version`)
- [x] `exo` CLI binary: `import` (YAML artifacts), `tag add/list`, `cat add/list`, `search tag`
- [x] YAML import parser in CLI (converts to proto messages for gRPC transport)
- [x] Environment variable support (`EXO_ADDR` for server address)
- [x] Makefile `build` target produces both binaries in `bin/`
- [x] Version injection via `-ldflags`
**Files created:**
- `cmd/exod/main.go`
- `cmd/exo/main.go`, `cmd/exo/yaml.go`
## Phase 4: Knowledge Graph — NOT STARTED