~bigbes/agents-dev · events

m1a368clb092huavmk74k76tvrvi5lse · 17 rows

idissue_idevent_typeactorold_valuenew_valuecommentcreated_at
019f58ae-407c-7999-875f-11c78322b49eah-nylcreatedEugene BlikhNULL2026-07-13T02:34:02Z
019f58ae-43b8-7683-a96f-8e547b31ec37ah-nyl.1createdEugene BlikhNULL2026-07-13T02:34:03Z
019f58ae-b83d-752c-8b26-9aba0aaeb237ah-nyl.2createdEugene BlikhNULL2026-07-13T02:34:33Z
019f58ae-bbf8-7b85-a2f8-a341f3fc6d9dah-nyl.3createdEugene BlikhNULL2026-07-13T02:34:34Z
019f58af-5f36-73b9-b949-03c66a15432aah-nyl.4createdEugene BlikhNULL2026-07-13T02:35:16Z
019f58af-62ab-7a9e-b2a4-6d11ed68d18bah-nyl.5createdEugene BlikhNULL2026-07-13T02:35:16Z
019f58af-f5f5-7403-90eb-db4c754742f1ah-nyl.6createdEugene BlikhNULL2026-07-13T02:35:54Z
019f58af-fad9-748c-a6a1-71948b188bccah-nyl.7createdEugene BlikhNULL2026-07-13T02:35:55Z
019f58af-fe8c-793b-8700-9ce02148b86fah-nyl.8createdEugene BlikhNULL2026-07-13T02:35:56Z
019f58b0-7816-7c6b-a36d-bbbd7f5b5eb4ah-xuccreatedEugene BlikhNULL2026-07-13T02:36:27Z
019f58b0-7a39-74fd-ae5f-365c75d5aab6ah-ydxcreatedEugene BlikhNULL2026-07-13T02:36:28Z
019f58b0-7c89-7f0f-b898-f324000256f4ah-0gecreatedEugene BlikhNULL2026-07-13T02:36:29Z
019f58b0-7e71-72b3-9040-55429df727a2ah-oeqcreatedEugene BlikhNULL2026-07-13T02:36:29Z
019f58b0-806b-71d0-9c76-31cf450cbe41ah-k23createdEugene BlikhNULL2026-07-13T02:36:30Z
019f58b2-07e1-78e5-81fa-b80c23cd0964ah-nyl.1status_changedEugene Blikh{"id":"ah-nyl.1","title":"foundation: go module, domain, ports, config","description":"Create the Go foundation of agents-dev exactly per docs/SPEC.md (read it fully first; SS4-6, SS12-13 are normative for this task).\n\nDeliverables:\n1. go.mod: module go.bigb.es/agents-dev, go 1.26. Add ALL stage-1 external deps now so siblings never touch go.mod: modernc.org/sqlite, gopkg.in/yaml.v3. Populate go.sum by building a throwaway smoke import (e.g. internal/smoke_test.go importing both, then delete the file but keep go.sum entries; or keep a tiny blank-import file under internal/deps/deps.go with build tag 'deps' — your choice, document it).\n2. internal/domain: types + constants from SPEC SS5 (State, Outcome, Task, Repo, TaskRecord, Run, Event, RunSummary) and pure transition helpers, at minimum CanClaim(*TaskRecord) bool per SS5 semantics. Table tests for every helper.\n3. internal/ports: interfaces exactly as SPEC SS6 (Board, Runner, Store, Notifier + BoardTask, StartSpec, RunInfo, RunStatus). Doc comments on every method stating error/nil semantics ((nil, nil) for absent, etc.).\n4. internal/config: Load(path string) (*Config, error) implementing SPEC SS12: yaml.v3 with KnownFields(true), ${VAR} env expansion in string values (only for vars that exist; unknown var = validation error), \"~\" expansion in paths, duration parsing, validation that collects ALL problems into one error (repos non-empty, default_repo/default_role resolve, buckets map has all six canonical keys, listen is loopback host:port). Config struct mirrors config.example.yaml at repo root (keep the two in sync; fix the example if you find an inconsistency and note it in the commit message). Tests: golden-load of config.example.yaml with env set, plus failure cases.\n\nRules: stdlib + the two deps only; log/slog if logging is needed (probably not here); no package-level state. Run: go build ./... \u0026\u0026 go vet ./... \u0026\u0026 go test ./... (allowed for THIS task only, since you own the whole tree). Commit everything as one or two commits, message style 'domain: ...', 'config: ...'. Do NOT push. Do NOT touch .beads/.\n\nAcceptance: go build/vet/test green on a clean checkout; interfaces compile exactly against the names/signatures in SPEC SS6 (parallel siblings will implement them verbatim); config.example.yaml loads.\n","status":"open","priority":0,"issue_type":"task","owner":"bigbes@gmail.com","created_at":"2026-07-12T23:34:03Z","created_by":"Eugene Blikh","updated_at":"2026-07-12T23:34:03Z"}{"status":"in_progress"}NULL2026-07-13T02:38:10Z
019f58c1-7bc1-7589-bf55-7eba737f89bfah-nyl.1closedEugene BlikhClosedNULL2026-07-13T02:55:02Z
019f58c1-7e91-7947-accb-8220e4be6b23ah-nyl.2status_changedEugene Blikh{"id":"ah-nyl.2","title":"store: SQLite implementation of ports.Store","description":"Implement internal/store per docs/SPEC.md SS7 (read SPEC fully; SS5-7 normative). ports.Store on modernc.org/sqlite.\n\nDeliverables:\n- internal/store/store.go: New(path string) (*Store, error) — opens DB, applies PRAGMAs (WAL, busy_timeout=5000, foreign_keys=on), runs migrations; Close().\n- Migrations: embedded schema.sql (embed package), applied under a PRAGMA user_version gate (hand-rolled, target version 1). DDL exactly per SPEC SS7.\n- All ports.Store methods with the documented semantics: GetTask/LatestRun return (nil, nil) when absent; CreateRun surfaces UNIQUE(task_id, attempt) violation as a distinguishable error (exported sentinel ErrDuplicateRun); UpsertTask insert-or-update by id; timestamps RFC3339 UTC; contexts honored (database/sql *Context variants everywhere).\n- Compile-time check: var _ ports.Store = (*Store)(nil).\n\nTests (stdlib testing only, t.TempDir() databases): round-trip every method; absent-row nil,nil; duplicate run -\u003e ErrDuplicateRun; upsert updates fields + updated_at; ListTasks ordering deterministic (by id); events append + monotonically increasing seq; migration idempotence (New twice on same file).\n\nConstraints: work ONLY under internal/store/. Do not modify go.mod/go.sum (deps are already there), other packages, or .beads/. Build/test ONLY your package: go build ./internal/store/... \u0026\u0026 go vet ./internal/store/... \u0026\u0026 go test ./internal/store/... . Commit with 'store: ...' staging only internal/store. Do NOT push.\n","status":"open","priority":1,"issue_type":"task","owner":"bigbes@gmail.com","created_at":"2026-07-12T23:34:33Z","created_by":"Eugene Blikh","updated_at":"2026-07-12T23:34:33Z"}{"status":"in_progress"}NULL2026-07-13T02:55:03Z