Commit Graph

177 Commits

Author SHA1 Message Date
q792602257 959dc2d571 feat(chat): EndpointService for admin LLM endpoints/models with cache invalidation + EndpointLoader 2026-05-04 16:52:49 +08:00
q792602257 98b4f01b10 fix(chat): cast date_trunc to timestamptz, drop interval hack 2026-05-04 16:43:54 +08:00
q792602257 daf13fff8a feat(chat): postgres repository with tx + pending unique index translation 2026-05-04 16:39:25 +08:00
q792602257 a1d0fbc3d3 feat(chat): sqlc queries for conversations/messages/attachments/templates/endpoints/models/usage 2026-05-04 09:52:06 +08:00
q792602257 ca5a018cd4 feat(chat): domain types + service interfaces + cross-module Reader interfaces 2026-05-04 09:49:30 +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 7429a817bc feat(app): wire workspace module + integration test for ws closed loop 2026-05-02 12:32:05 +08:00
q792602257 78e74c9734 feat(workspace): http handler with workspace/worktree/gitops endpoints 2026-05-02 08:55:45 +08:00
q792602257 e31710f04e feat(workspace): GitOpsService for status/commit/push on main+worktree 2026-05-02 08:18:18 +08:00
q792602257 d76ed67666 feat(workspace): WorktreeService with acquire/release state machine 2026-05-02 08:13:07 +08:00
q792602257 bd91880898 feat(workspace): WorkspaceService + async clone runner 2026-05-02 08:00:00 +08:00
q792602257 64dd560b55 feat(workspace): postgres repository with type conversions and tx 2026-05-02 07:42:54 +08:00
q792602257 08845f92d7 feat(workspace): sqlc queries for workspace/worktree/credential 2026-05-02 07:07:33 +08:00
q792602257 e5800ef5dc feat(workspace): domain types + pathing/validation 2026-05-01 22:07:41 +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 a0087d2c25 feat(app): wire project module and integration test for pm closed loop 2026-05-01 10:36:37 +08:00
q792602257 1567f21a82 style(project): silence remaining lint findings (stutter, max shadow, gosec) 2026-05-01 10:33:16 +08:00
q792602257 76a1461f4b feat(project): http handler with project/requirement/issue endpoints 2026-05-01 10:27:42 +08:00
q792602257 13b4d45868 refactor(project): issue Update tracks changed fields and skips no-op audit 2026-05-01 10:20:42 +08:00
q792602257 ccf4a1c8ee feat(project): IssueService with attach/detach + assign + close/reopen 2026-05-01 10:18:10 +08:00
q792602257 1c3fb186e9 feat(project): RequirementService with phase state machine + close/reopen 2026-05-01 10:13:19 +08:00
q792602257 257e3dca2e feat(project): ProjectService with owner/visibility access control + audit 2026-05-01 09:57:03 +08:00
q792602257 fc6a7745a5 feat(project): postgres repository wrapper with type conversions 2026-05-01 09:50:41 +08:00
q792602257 5f63fb5e52 docs(project): document tri-state DTO semantics in domain.go 2026-05-01 09:46:45 +08:00
q792602257 ce88c4b4a7 chore(sqlc): regenerate cross-package models for project schema 2026-05-01 09:40:02 +08:00
q792602257 f60d30a63d feat(project): domain types and sqlc queries for project/requirement/issue 2026-05-01 09:39:16 +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 1e36f21ec4 fix(user): withoutcancel audit, x-forwarded-for client ip 2026-04-29 11:53:06 +08:00
q792602257 0f9c7fa657 fix(server): propagate shutdown error, http timeouts, ctx-aware migrate 2026-04-29 11:52:27 +08:00
q792602257 78989a42ac feat(server): embed SPA dist with fallback handler; single-binary deploy 2026-04-29 10:43:42 +08:00
q792602257 b72de98f15 test(app): integration test for login -> dispatch -> list flow 2026-04-28 23:18:27 +08:00
q792602257 d0f34e4e5e feat(app): composition root with migrate, pool, modules, router, bootstrap 2026-04-28 23:08:38 +08:00
q792602257 62cf9ffa0c feat(user): wire audit recorder into login/logout 2026-04-28 23:02:09 +08:00
q792602257 f42b88e57d feat(audit): recorder with pg implementation and ip parsing 2026-04-28 22:53:22 +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