Commit graph

49 commits

Author SHA1 Message Date
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
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
47093a0ebf
feat(frontend): build React work order desk 2026-08-17 01:31:48 +05:30
d16fbf2dc8
feat(backend): implement Express work-order API with cookie auth 2026-08-17 01:31:48 +05:30
df1827dd55
feat(shared): add zod schemas and shared API types 2026-08-17 01:31:48 +05:30
99458eb562
chore(monorepo): scaffold npm workspaces and tooling 2026-08-17 01:31:48 +05:30