Commit Graph

  • 8e8edfe3ff fix(chat): align template service with actual repo method names q792602257 2026-05-04 16:56:53 +08:00
  • 45fdf63d11 feat(chat): TemplateService for prompt templates with system/user scope auth q792602257 2026-05-04 16:54:28 +08:00
  • 959dc2d571 feat(chat): EndpointService for admin LLM endpoints/models with cache invalidation + EndpointLoader q792602257 2026-05-04 16:52:49 +08:00
  • 98b4f01b10 fix(chat): cast date_trunc to timestamptz, drop interval hack q792602257 2026-05-04 16:43:54 +08:00
  • daf13fff8a feat(chat): postgres repository with tx + pending unique index translation q792602257 2026-05-04 16:39:25 +08:00
  • a1d0fbc3d3 feat(chat): sqlc queries for conversations/messages/attachments/templates/endpoints/models/usage q792602257 2026-05-04 09:52:06 +08:00
  • ca5a018cd4 feat(chat): domain types + service interfaces + cross-module Reader interfaces q792602257 2026-05-04 09:49:30 +08:00
  • 9bc9873e3c feat(infra/llm): LLMRegistry with endpoint cache + invalidation q792602257 2026-05-04 09:48:03 +08:00
  • a08a7249f0 feat(infra/llm): Gemini client with stream + count_tokens via google.golang.org/genai q792602257 2026-05-04 09:46:47 +08:00
  • be751e76f6 feat(infra/llm): OpenAI client + base_url override + reasoning_content compat q792602257 2026-05-04 09:40:41 +08:00
  • 027b5d5eba fix(infra/llm): anthropic stream goroutine respects ctx cancel on send q792602257 2026-05-04 09:35:19 +08:00
  • a1ba157d29 feat(infra/llm): Anthropic client with stream + count_tokens via official SDK q792602257 2026-05-04 09:29:35 +08:00
  • 9c8e4175c4 feat(infra/llm): neutral types + LLMClient interface + estimate tokenizer + fake q792602257 2026-05-04 00:37:04 +08:00
  • 547b339ed3 fix(storage): reject empty key + nil ReadCloser on Get error q792602257 2026-05-04 00:34:42 +08:00
  • 33838f1820 feat(storage): LocalFS implementation with sha256 + path safety q792602257 2026-05-04 00:22:38 +08:00
  • eb73fbba46 feat(chat): migration 0004 + errs codes for chat/llm/storage q792602257 2026-05-04 00:15:13 +08:00
  • a79eb82ab5 feat(web): register workspace routes and navigation q792602257 2026-05-02 23:45:54 +08:00
  • 7939960011 feat(web): workspace selector on issue/requirement detail q792602257 2026-05-02 23:39:44 +08:00
  • 0423f0566c feat(web): WorkspaceHomeView with worktrees/main/settings tabs and CommitDialog q792602257 2026-05-02 23:24:16 +08:00
  • d962ba2f16 feat(web): WorkspaceListView and create modal q792602257 2026-05-02 23:13:35 +08:00
  • deaa738bf9 feat(web): api client and pinia store for workspace/worktree q792602257 2026-05-02 20:27:51 +08:00
  • 0cadec343c feat(project): add workspace_id to issue/requirement with tri-state update q792602257 2026-05-02 14:20:15 +08:00
  • 7429a817bc feat(app): wire workspace module + integration test for ws closed loop q792602257 2026-05-02 09:39:27 +08:00
  • 78e74c9734 feat(workspace): http handler with workspace/worktree/gitops endpoints q792602257 2026-05-02 08:36:45 +08:00
  • e31710f04e feat(workspace): GitOpsService for status/commit/push on main+worktree q792602257 2026-05-02 08:18:18 +08:00
  • d76ed67666 feat(workspace): WorktreeService with acquire/release state machine q792602257 2026-05-02 08:03:30 +08:00
  • bd91880898 feat(workspace): WorkspaceService + async clone runner q792602257 2026-05-02 07:50:49 +08:00
  • 64dd560b55 feat(workspace): postgres repository with type conversions and tx q792602257 2026-05-02 07:25:46 +08:00
  • 08845f92d7 feat(workspace): sqlc queries for workspace/worktree/credential q792602257 2026-05-02 07:07:33 +08:00
  • e5800ef5dc feat(workspace): domain types + pathing/validation q792602257 2026-05-01 22:02:11 +08:00
  • b44d6c298c feat(infra/git): worktree add/remove/list with porcelain parser q792602257 2026-05-01 21:51:48 +08:00
  • faecb05ebd feat(infra/git): clone/fetch/push/commit/status verbs + integration tests q792602257 2026-05-01 21:43:56 +08:00
  • f8c7771892 feat(infra/git): Runner interface + Credential injection + GitError q792602257 2026-05-01 19:39:26 +08:00
  • 719968ee26 feat(workspace): migration 0003 + errs codes for workspace/worktree/git q792602257 2026-05-01 19:26:18 +08:00
  • 81718e53f9 style(web): lint --fix sweep + disable no-undef for ts/vue (DOM globals) q792602257 2026-05-01 10:53:02 +08:00
  • ba39fac142 feat(web): register pm routes and nav entry q792602257 2026-05-01 10:53:02 +08:00
  • 0bb23c8d08 feat(web): issue list and detail views q792602257 2026-05-01 10:49:51 +08:00
  • 80d37edca9 feat(web): requirement kanban list and detail with phase flow q792602257 2026-05-01 10:47:02 +08:00
  • 5d66f2f1ce feat(web): project list and home views q792602257 2026-05-01 10:44:29 +08:00
  • f51e29dd89 feat(web): pinia stores for projects and requirements q792602257 2026-05-01 10:42:20 +08:00
  • d65155061a feat(web): api client for project/requirement/issue q792602257 2026-05-01 10:40:21 +08:00
  • a0087d2c25 feat(app): wire project module and integration test for pm closed loop q792602257 2026-05-01 10:36:37 +08:00
  • 1567f21a82 style(project): silence remaining lint findings (stutter, max shadow, gosec) q792602257 2026-05-01 10:33:16 +08:00
  • 76a1461f4b feat(project): http handler with project/requirement/issue endpoints q792602257 2026-05-01 10:27:42 +08:00
  • 13b4d45868 refactor(project): issue Update tracks changed fields and skips no-op audit q792602257 2026-05-01 10:20:42 +08:00
  • ccf4a1c8ee feat(project): IssueService with attach/detach + assign + close/reopen q792602257 2026-05-01 10:18:10 +08:00
  • 1c3fb186e9 feat(project): RequirementService with phase state machine + close/reopen q792602257 2026-05-01 10:13:19 +08:00
  • 257e3dca2e feat(project): ProjectService with owner/visibility access control + audit q792602257 2026-05-01 09:57:03 +08:00
  • fc6a7745a5 feat(project): postgres repository wrapper with type conversions q792602257 2026-05-01 09:50:41 +08:00
  • 5f63fb5e52 docs(project): document tri-state DTO semantics in domain.go q792602257 2026-05-01 09:46:45 +08:00
  • ce88c4b4a7 chore(sqlc): regenerate cross-package models for project schema q792602257 2026-05-01 09:40:02 +08:00
  • f60d30a63d feat(project): domain types and sqlc queries for project/requirement/issue q792602257 2026-05-01 09:39:16 +08:00
  • c5ed9e8622 test(errs): cover new project conflict codes in HTTPStatus table q792602257 2026-05-01 09:35:18 +08:00
  • f261504c51 feat(project): migration 0002 + errs codes for project/requirement/issue q792602257 2026-05-01 09:31:03 +08:00
  • 357d08f2e3 fix(web): localStorage safety, default fetch timeout, visibility-aware polling q792602257 2026-04-29 12:00:40 +08:00
  • 7377c2135f fix(notify): waitgroup-based dispatcher shutdown, withoutcancel persist q792602257 2026-04-29 11:55:18 +08:00
  • 1e36f21ec4 fix(user): withoutcancel audit, x-forwarded-for client ip q792602257 2026-04-29 11:53:06 +08:00
  • 0f9c7fa657 fix(server): propagate shutdown error, http timeouts, ctx-aware migrate q792602257 2026-04-29 11:52:27 +08:00
  • fc0724fc0b ops(deploy): app healthcheck via wget /healthz q792602257 2026-04-29 11:49:21 +08:00
  • 3fd6bd82e3 feat(deploy): docker-compose production stack with bootstrap envs q792602257 2026-04-29 10:47:00 +08:00
  • fb116de7c8 feat(deploy): multi-stage Dockerfile (web build -> go embed -> alpine runtime) q792602257 2026-04-29 10:46:09 +08:00
  • 78989a42ac feat(server): embed SPA dist with fallback handler; single-binary deploy q792602257 2026-04-29 10:43:42 +08:00
  • 04a19dbcef feat(web): notification bell with polling and dropdown q792602257 2026-04-29 10:33:53 +08:00
  • b7b9532a5a chore(web): ignore stale .js emit artifacts in test/ and src/ q792602257 2026-04-29 10:19:00 +08:00
  • 9e3b745da3 fix(web): preserve next on 401, validate redirect target, catch navigation rejections q792602257 2026-04-29 10:16:07 +08:00
  • 9d93bcd24b feat(web): router with auth guard, AppShell, login + home views q792602257 2026-04-29 10:02:45 +08:00
  • 3eb595cf5e feat(web): fetch-based api client with 401 handling and tests q792602257 2026-04-29 07:49:33 +08:00
  • 7c164f6aea feat(web): auth/ui/notifications pinia stores + theme composable q792602257 2026-04-29 07:45:20 +08:00
  • 35b812e594 chore(web): eslint flat-config + prettier setup q792602257 2026-04-29 07:41:51 +08:00
  • aef7b0b661 feat(web): vite + vue 3 + ts + tailwind + naive ui scaffolding q792602257 2026-04-29 07:32:32 +08:00
  • b72de98f15 test(app): integration test for login -> dispatch -> list flow q792602257 2026-04-28 23:18:27 +08:00
  • cb865beabf fix(server): explicit discard of fmt.Fprintln return values for errcheck q792602257 2026-04-28 23:12:43 +08:00
  • acf8596f23 feat(server): wire config + signal-aware app entrypoint q792602257 2026-04-28 23:11:29 +08:00
  • d0f34e4e5e feat(app): composition root with migrate, pool, modules, router, bootstrap q792602257 2026-04-28 23:08:38 +08:00
  • 62cf9ffa0c feat(user): wire audit recorder into login/logout q792602257 2026-04-28 23:02:09 +08:00
  • f42b88e57d feat(audit): recorder with pg implementation and ip parsing q792602257 2026-04-28 22:53:22 +08:00
  • 0b323b91ee feat(notify): http handler for inbox list / unread count / mark read q792602257 2026-04-28 22:37:19 +08:00
  • 13032c1192 feat(notify): dispatcher with sync persist and async channel fanout q792602257 2026-04-28 22:33:14 +08:00
  • 83c63c5f93 feat(notify): dummy notifier writing structured log lines q792602257 2026-04-28 22:28:47 +08:00
  • d9a8c04195 feat(notify): postgres repository for notifications inbox q792602257 2026-04-28 22:25:23 +08:00
  • f25078dc8c feat(notify): sqlc queries for notifications crud q792602257 2026-04-28 22:18:41 +08:00
  • 32e313d5f7 feat(notify): channel/severity types and Notifier interface q792602257 2026-04-28 18:07:19 +08:00
  • e0a7018226 feat(user): http handler for login/me/logout with middleware integration q792602257 2026-04-28 18:02:09 +08:00
  • c6c4edcd14 feat(user): service with login/logout/resolve/bootstrap (with unit tests) q792602257 2026-04-28 17:51:50 +08:00
  • 2141ddafe1 feat(user): postgres repository wrapping sqlc queries q792602257 2026-04-28 17:45:49 +08:00
  • 42d44800b6 feat(user): sqlc queries for users and sessions q792602257 2026-04-28 17:40:30 +08:00
  • 62ff9ed1fe feat(user): session token generator with sha256 storage hash q792602257 2026-04-28 15:50:47 +08:00
  • da316725fc feat(user): argon2id password hashing helpers q792602257 2026-04-28 15:46:23 +08:00
  • 46fda4f594 feat(user): domain types and Service interface q792602257 2026-04-28 15:39:38 +08:00
  • 782247a239 feat(http/mw): bearer token auth middleware with optional mode q792602257 2026-04-28 15:34:38 +08:00
  • f88c352e55 feat(http/mw): structured request logger middleware q792602257 2026-04-28 15:26:05 +08:00
  • e01db86fb6 feat(http/mw): recover middleware with structured panic log q792602257 2026-04-28 15:10:55 +08:00
  • 5bd56de013 feat(http/mw): request id middleware with context propagation q792602257 2026-04-28 15:04:00 +08:00
  • 98c9ce139f feat(http): chi router skeleton + Google-style error response q792602257 2026-04-28 14:59:02 +08:00
  • b26a7e9a6f feat(crypto): AES-256-GCM encryptor for secret fields q792602257 2026-04-28 14:53:28 +08:00
  • b95bd13377 feat(errs): AppError type with HTTP status mapping q792602257 2026-04-28 14:49:43 +08:00
  • 222335e604 fix(db): add MaxConnLifetimeJitter to prevent synchronized conn expiration storms q792602257 2026-04-28 14:45:02 +08:00
  • 903d872e3f feat(db): add pgxpool with health check and integration test q792602257 2026-04-28 14:32:37 +08:00
  • d491a7047a feat(sqlc): scaffold sqlc config and placeholder queries q792602257 2026-04-28 14:23:53 +08:00
  • 5c5687b9dc feat(db): add 0001_init migration (users/sessions/notifications/audit) q792602257 2026-04-28 14:13:18 +08:00