8b568e6988
test(frontend): cover SSE stream client, copilot stream hook, and agent query hooks
2026-08-19 19:47:04 +05:30
b6a9b64c47
merge(feat/ai-ops): wave 3
2026-08-19 19:24:59 +05:30
0b9ce8ecd7
merge(feat/ai-frontend): wave 3
2026-08-19 19:24:59 +05:30
6c34342acc
merge(feat/ai-backend-tests): wave 3
2026-08-19 19:24:58 +05:30
14d978289f
feat(backend): wire PATCH /admin/users/:id/ai endpoint for the AI opt-out toggle
2026-08-19 19:24:55 +05:30
7a84996f51
test(backend): agent runtime, copilot API, and triage/worker suites with mocked provider
...
Also fix two bugs the tests surfaced in the merged AI implementation:
- agent-tool-call model made approval.summary/expiresAt conditionally required only when an approval subdocument is present, so blocked/error tool calls persist without a fake approval
- agent.repo.createRun coerced empty-string session/user ids to null so autonomous triage runs (no session/user) no longer fail ObjectId casting
2026-08-19 19:23:00 +05:30
2975e20b63
feat(frontend): copilot panel with SSE + approvals, admin agent pages, AI toggle
2026-08-19 19:15:23 +05:30
32aa7f6ade
chore(ops): worker compose services, AI env template, docs, ADR, and agentic-AI spec
2026-08-19 19:10:07 +05:30
93e828bcb1
merge(feat/ai-triage): wave 2
...
# Conflicts:
# backend/src/routes/index.ts
2026-08-19 18:53:21 +05:30
dcf241d8e6
merge(feat/ai-copilot): wave 2
2026-08-19 18:52:52 +05:30
1fa20411aa
fix(backend): defer provider endpoint/header resolution to call time
...
The provider previously evaluated env.AI_BASE_URL at module load, which
threw when AI is disabled (no URL configured). Compute the endpoint and
Authorization header lazily inside the fetch calls so importing the module
never fails; the runtime and triage layers already gate on AI_ENABLED first.
2026-08-19 18:52:47 +05:30
84140f31b1
feat(backend): copilot agent runtime, tool registry, and /api/v1/ai API with SSE
2026-08-19 18:50:46 +05:30
7d224f162d
feat(backend): autonomous triage agent, polling worker, and admin agent API
2026-08-19 18:41:37 +05:30
757125e727
fix(backend): use typed AI env and pass assistant tool_calls through provider messages
2026-08-19 18:34:11 +05:30
014e77a5cd
merge(feat/ai-backend-provider): wave 1
2026-08-19 18:24:32 +05:30
84baf39a10
merge(feat/ai-backend-core): wave 1
2026-08-19 18:24:32 +05:30
105d8d78c4
merge(feat/ai-backend-env): wave 1
2026-08-19 18:24:32 +05:30
84c29cd8f2
feat(backend): OpenAI-compatible LLM provider adapter with streaming and SSRF hardening
2026-08-19 18:24:06 +05:30
c97c5f37e3
feat(backend): agentic AI data layer — actor capability, agent models/repos, outbox, triagePatch, aiEnabled
2026-08-19 18:11:58 +05:30
e88568139c
feat(backend): AI/agent environment config with SSRF-safe provider URL validation
2026-08-19 17:56:42 +05:30
3f3fdf8a85
feat(shared): agentic AI types, error codes, tool and SSE schemas
...
Extend the closed error catalog with the AI error codes (AI_UNAVAILABLE,
AI_BUDGET_EXCEEDED, approval lifecycle codes, AI_INJECTION_BLOCKED), add the
AgentRun/AgentToolCall/AgentConfig/CopilotSession/TriageSuggestion DTOs,
add aiEnabled to UserAdmin, and add the LLM-facing tool arg schemas plus the
zod-validated SSE event schema. Owner/version stay out of tool args per the
agentic spec (the runtime injects them).
2026-08-19 17:45:17 +05:30
Lakshit Verma
96f960e0c9
Update README.md
2026-08-17 07:23:24 +05:30
5fd89ee85e
feat(ui): add favicon
2026-08-17 02:20:58 +05:30
835ed20278
fix(test): run backend test files sequentially against a shared database
2026-08-17 02:17:10 +05:30
3cef79b9d4
ci: run on the master branch
2026-08-17 02:13:53 +05:30
50d238e2f5
docs(readme): add code coverage badge
2026-08-17 02:13:11 +05:30
7b3d78f43f
ci(codecov): upload coverage reports
2026-08-17 02:13:11 +05:30
545a8306fb
chore(test): emit lcov coverage reports
2026-08-17 02:13:10 +05:30
0bbbc2aab5
docs(readme): add production and security notes
2026-08-17 02:06:49 +05:30
6d4934d1b2
chore(build): build shared before typecheck, test, and dev
2026-08-17 02:06:49 +05:30
444da042b3
chore(infra): reproducible installs and correct deployment config
2026-08-17 02:06:49 +05:30
bee8838360
fix(client): single-flight the redirect and preserve the intended route
2026-08-17 02:06:49 +05:30
0a4574551a
fix(a11y): improve contrast and add page titles and labels
2026-08-17 02:06:48 +05:30
bf76061847
fix(a11y): announce form errors and wire aria attributes
2026-08-17 02:06:48 +05:30
5bada2ee6f
fix(a11y): make the confirm dialog keyboard accessible
2026-08-17 02:06:48 +05:30
fdd0bfed6b
feat(ui): add mobile navigation
2026-08-17 02:06:48 +05:30
e1aff1fb2f
fix(ux): preserve edits when a version conflict occurs
2026-08-17 02:06:48 +05:30
3118654abd
feat(ui): keep the previous list while paging and debounce search
2026-08-17 02:06:48 +05:30
2e36575834
fix(frontend): scope query invalidation to the board and drop dead hooks
2026-08-17 02:06:40 +05:30
942350d1a0
chore(env): remove unused SMTP_URL and dead constants
2026-08-17 02:06:40 +05:30
1244573fe8
fix(server): log unhandled rejections and exceptions
2026-08-17 02:06:40 +05:30
3889053af1
refactor(backend): add typed request helpers for controllers
2026-08-17 02:06:39 +05:30
5e67608b86
refactor(backend): route mongo pings through a repository
2026-08-17 02:06:39 +05:30
ff145b8000
perf(db): index filtered cursor pagination and admin lists
2026-08-17 02:06:39 +05:30
613aafda8c
perf(auth): use the native bcrypt implementation
2026-08-17 02:06:39 +05:30
6d4decb8f0
fix(auth): harden session handling and registration
2026-08-17 02:06:39 +05:30
6f29e540f0
chore(env): document verified Resend sender
2026-08-17 01:39:03 +05:30
e54868f8b2
chore(deploy): add Vercel and Render configuration
2026-08-17 01:31:48 +05:30
ee5cd2a946
docs: add technical specification and plain-language readme
2026-08-17 01:31:48 +05:30
1fc5200a09
chore(infra): add Docker, nginx, and CI workflows
2026-08-17 01:31:48 +05:30