q792602257
b1db7841c7
feat(errs): add 8 MCP error codes + HTTPStatus mapping
2026-05-08 07:09:26 +08:00
q792602257
679ded50c9
chore(sqlc): regenerate models for migration 0006
...
sqlc reads all migrations into every package's schema, so the
addition of acp_* tables and workspaces.active_main_session_id
in migration 0006 propagates type definitions and SELECT
column lists across all sub-packages. No code logic changes.
2026-05-07 13:39:08 +08:00
q792602257
c4ddfde0ff
feat(errs): add 11 ACP error codes + HTTP mapping
2026-05-07 10:32:36 +08:00
q792602257
e768adb3ff
chore(sqlc): regenerate per-module models for migration 0005 schema
...
T1 added jobs table and workspace_worktrees.prune_warning_at column but
sqlc generate was not re-run for all modules. This catches the audit,
notify, project, and user models up; chat partially regenerated already.
Workspace's regen is part of T3 (next commit).
2026-05-05 14:28:09 +08:00
q792602257
c47d99d3d8
feat(infra/clock): injectable Clock with Real and Fake implementations
2026-05-05 14:16:32 +08:00
q792602257
967f390b1e
feat(jobs): migration 0005 + errs codes for jobs module
2026-05-05 14:09:10 +08:00
q792602257
617794c7a3
feat(chat): StreamerHub with ring buffer + cond + Done/Error/Cancel flows
2026-05-04 17:27:50 +08:00
q792602257
9bc9873e3c
feat(infra/llm): LLMRegistry with endpoint cache + invalidation
2026-05-04 09:48:03 +08:00
q792602257
a08a7249f0
feat(infra/llm): Gemini client with stream + count_tokens via google.golang.org/genai
2026-05-04 09:46:47 +08:00
q792602257
be751e76f6
feat(infra/llm): OpenAI client + base_url override + reasoning_content compat
2026-05-04 09:40:41 +08:00
q792602257
027b5d5eba
fix(infra/llm): anthropic stream goroutine respects ctx cancel on send
2026-05-04 09:35:19 +08:00
q792602257
a1ba157d29
feat(infra/llm): Anthropic client with stream + count_tokens via official SDK
2026-05-04 09:29:35 +08:00
q792602257
9c8e4175c4
feat(infra/llm): neutral types + LLMClient interface + estimate tokenizer + fake
2026-05-04 00:37:04 +08:00
q792602257
547b339ed3
fix(storage): reject empty key + nil ReadCloser on Get error
2026-05-04 00:34:42 +08:00
q792602257
33838f1820
feat(storage): LocalFS implementation with sha256 + path safety
2026-05-04 00:22:38 +08:00
q792602257
eb73fbba46
feat(chat): migration 0004 + errs codes for chat/llm/storage
2026-05-04 00:15:13 +08:00
q792602257
0cadec343c
feat(project): add workspace_id to issue/requirement with tri-state update
2026-05-02 20:22:13 +08:00
q792602257
b44d6c298c
feat(infra/git): worktree add/remove/list with porcelain parser
2026-05-01 21:57:44 +08:00
q792602257
faecb05ebd
feat(infra/git): clone/fetch/push/commit/status verbs + integration tests
2026-05-01 21:43:56 +08:00
q792602257
f8c7771892
feat(infra/git): Runner interface + Credential injection + GitError
2026-05-01 21:40:00 +08:00
q792602257
719968ee26
feat(workspace): migration 0003 + errs codes for workspace/worktree/git
2026-05-01 19:26:18 +08:00
q792602257
ce88c4b4a7
chore(sqlc): regenerate cross-package models for project schema
2026-05-01 09:40:02 +08:00
q792602257
c5ed9e8622
test(errs): cover new project conflict codes in HTTPStatus table
2026-05-01 09:35:18 +08:00
q792602257
f261504c51
feat(project): migration 0002 + errs codes for project/requirement/issue
2026-05-01 09:31:03 +08:00
q792602257
7377c2135f
fix(notify): waitgroup-based dispatcher shutdown, withoutcancel persist
2026-04-29 11:55:18 +08:00
q792602257
0f9c7fa657
fix(server): propagate shutdown error, http timeouts, ctx-aware migrate
2026-04-29 11:52:27 +08:00
q792602257
0b323b91ee
feat(notify): http handler for inbox list / unread count / mark read
2026-04-28 22:37:19 +08:00
q792602257
13032c1192
feat(notify): dispatcher with sync persist and async channel fanout
2026-04-28 22:33:14 +08:00
q792602257
83c63c5f93
feat(notify): dummy notifier writing structured log lines
2026-04-28 22:28:47 +08:00
q792602257
d9a8c04195
feat(notify): postgres repository for notifications inbox
2026-04-28 22:25:23 +08:00
q792602257
f25078dc8c
feat(notify): sqlc queries for notifications crud
2026-04-28 22:18:41 +08:00
q792602257
32e313d5f7
feat(notify): channel/severity types and Notifier interface
2026-04-28 18:07:19 +08:00
q792602257
b26a7e9a6f
feat(crypto): AES-256-GCM encryptor for secret fields
2026-04-28 14:53:28 +08:00
q792602257
b95bd13377
feat(errs): AppError type with HTTP status mapping
2026-04-28 14:49:43 +08:00
q792602257
222335e604
fix(db): add MaxConnLifetimeJitter to prevent synchronized conn expiration storms
2026-04-28 14:45:02 +08:00
q792602257
903d872e3f
feat(db): add pgxpool with health check and integration test
2026-04-28 14:32:37 +08:00
q792602257
d491a7047a
feat(sqlc): scaffold sqlc config and placeholder queries
2026-04-28 14:23:53 +08:00
q792602257
d7127351a7
feat(db): add golang-migrate runner
2026-04-28 14:07:19 +08:00
q792602257
34b8cd09e6
fix(logger): expose AddSource option; FromEnv enables caller in non-dev (spec §8.2)
2026-04-28 14:02:10 +08:00
q792602257
b4933a6fd1
feat(logger): slog-based logger with JSON and text handlers
2026-04-28 13:53:02 +08:00