root
5253aaf174
fix(docker): install all dependencies in builder stage for build tools
...
The base image only includes production dependencies, so we need to install
all dependencies (including devDependencies) in the builder stage to have
TypeScript and Next.js available for building.
Generated with [Devin](https://cli.devin.ai/docs )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-09 23:23:37 +00:00
root
cb51cbe671
refactor(docker): use shared base images for @bytelyst/* packages
...
Update Dockerfiles to use bytelyst-common-base-backend and bytelyst-common-base-web
images instead of installing @bytelyst/* packages via tarballs.
Benefits:
- Smaller final images (~50MB vs ~250MB)
- Faster builds (base image cached)
- Consistent package versions across products
- No need for docker-prep.sh tarball packing
Generated with [Devin](https://cli.devin.ai/docs )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-09 23:22:59 +00:00
root
ce7e04a158
feat(ux): add UX testing setup guide and common platform integration
...
- Add UX_TESTING_SETUP_GUIDE.md for ChronoMind
- Create .pnpmfile.cjs for local package resolution
- Update .npmrc to remove repo-level Gitea auth
- Create Primitives.tsx product adapter with ChronoMind-specific status types
- Add ui directory for shared component imports
Generated with [Devin](https://cli.devin.ai/docs )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-09 22:10:55 +00:00
OpenAI Codex
bfc4670fc3
feat(web): use shared accessibility helpers
2026-05-05 01:21:31 -07:00
OpenAI Codex
d38b9745a4
feat(web): wire settings feedback submission
2026-05-05 00:54:03 -07:00
saravanakumardb1
5dd0a18221
fix(web): add Agent Inbox + Day Planner links to Dashboard navbar with feature flag gates
2026-04-19 00:56:12 -07:00
saravanakumardb1
a9361b44bb
fix(web): add feature flag gate to webhooks page for consistency with inbox/planner
2026-04-19 00:54:59 -07:00
saravanakumardb1
38a15c0595
refactor(web): extract shared apiFetch helper, remove secret from webhook client type
2026-04-19 00:54:53 -07:00
saravanakumardb1
333f0e5316
feat(web): Phase D.3 tempo mode engine + 11 tests
2026-04-18 18:13:45 -07:00
saravanakumardb1
2e0ddcfe43
feat(web): Phase C.4 webhook management UI + client
2026-04-18 18:10:58 -07:00
saravanakumardb1
9973c548fc
feat(web): Phase B.4 Day Planner web UI + planner API client
2026-04-18 18:07:12 -07:00
saravanakumardb1
23c584f4a8
feat(web): Phase B.3 Agent Inbox web UI + backend API client
2026-04-18 18:05:50 -07:00
saravanakumardb1
698fbc19cc
feat(web): TODO-003 accessibility focus trap + ARIA roles in modals
2026-04-18 18:00:00 -07:00
saravanakumardb1
0242ca85ff
feat(web): TODO-002 feedback form in settings page via @bytelyst/feedback-client
2026-04-18 17:58:06 -07:00
saravanakumardb1
8bddbec43c
feat(web): TODO-001 kill switch maintenance banner + disable timer creation
2026-04-18 17:56:37 -07:00
saravanakumardb1
8ca9e27532
test(ai-context): TODO-009 unit tests for LLM context message generators
...
Adds 18 new tests covering:
Backend (13 tests in ai-context.test.ts):
- keyword fallback — meeting, doctor, flight, case-insensitive
- generic fallback — no match, minute/hour formatting
- LLM path — flag-gated (off = no fetch), extraction-service success,
Ollama cascade when extraction returns null, error → keyword fallback,
short Ollama response rejected, non-200 fallthrough
- prompt construction — includes category, urgency, timeOfDay,
recentTimerLabels
Web (5 new tests in context-messages.test.ts):
- LLM success path
- keyword fallback when backend returns 500
- keyword fallback when backend throws
- generic fallback when backend fails and no keyword matches
- payload shape — POST /api/context-message with all params
Test counts: backend 240 (was ~227), web 399 (was ~394), all green.
2026-04-17 12:40:10 -07:00
saravanakumardb1
2bf172935b
fix(web): align billing-client SubscriptionDoc type with platform schema
2026-04-13 22:57:32 -07:00
saravanakumardb1
9e63418837
fix(cleanup): TODO-011 — wire error boundary to telemetry trackEvent
2026-04-13 14:58:59 -07:00
saravanakumardb1
5dafcc2118
fix(cleanup): TODO-006 — centralize backend URL via getBackendBaseURL() from product-config
2026-04-13 14:58:44 -07:00
saravanakumardb1
8152d508d1
fix(docker): .docker-deps COPY + optional secret + .npmrc.docker simplification
...
- Dockerfiles: COPY .docker-deps/ for tarball resolution, make secret read optional
- .npmrc.docker: remove scoped registry (tarballs handle all @bytelyst/* resolution)
2026-04-13 14:05:54 -07:00
saravanakumardb1
ed3bc15a4a
chore(deps): use wildcard (*) for @bytelyst/* internal packages
...
All @bytelyst/* packages are internal to the ByteLyst ecosystem and
published to the private Gitea registry. Using "*" eliminates version
bump noise — always resolves to latest available.
2026-04-13 01:05:40 -07:00
saravanakumardb1
9897d2cd09
docs(todos): standardize all TODOs with running numbers and delegatable instructions
...
Replace ad-hoc AGENTIC-N comments with standardized TODO-NNN format across
the entire codebase. Each TODO has:
- Running number (TODO-001 through TODO-011)
- Priority level (high/medium/low)
- Phase reference (0, A.1, A.4, B, cleanup)
- Clear step-by-step instructions an AI agent can follow
TODO index:
TODO-001: Kill switch maintenance banner (providers.tsx)
TODO-002: Feedback button in settings page
TODO-003: Accessibility focus trap for modals
TODO-004: Clone routine template instead of mutating in-place
TODO-005: Wire real LLM enrichment for context messages
TODO-006: Centralize backend URL configuration
TODO-007: MCP tool integration tests (common-plat)
TODO-008: Wire trackEvent() calls into routes + components
TODO-009: Unit tests for AI context generation
TODO-010: Import PRODUCT_ID from product-config (5 route files)
TODO-011: Wire error boundary to telemetry
Added consolidated TODO Index table at top of AGENTIC_AI_ROADMAP.md
for agent scanning. 219 backend tests pass, no code changes.
2026-04-01 01:05:25 -07:00
saravanakumardb1
f94c2d8424
fix(web): add NEXT_PUBLIC_CHRONOMIND_BACKEND_URL to .env.example
...
The fetchEnrichedMessage() function in context-messages.ts references this
env var but it was missing from .env.example, making it invisible to new
developers setting up the project.
2026-04-01 00:00:11 -07:00
saravanakumardb1
c80c1e4462
feat(ai-context): Phase A.4 — context-aware AI messages with LLM fallback
...
Add AI-enriched context message generation:
- backend/src/lib/ai-context.ts: LLM-powered context generator with keyword fallback
- Calls extraction-service timer-context task when EXTRACTION_SERVICE_URL is set
- Falls back to keyword rules, then generic message
- Gated behind isFeatureEnabled('ai_context_messages.enabled')
- backend/src/lib/config.ts: Add EXTRACTION_SERVICE_URL env var
- backend/src/server.ts: POST /api/context-message route
- web/src/lib/context-messages.ts: fetchEnrichedMessage() with graceful degradation
- Updated AGENTIC_AI_ROADMAP.md checkboxes for Phase A.1 + A.2
All 219 backend tests + 394 web tests pass. No breaking changes.
2026-03-31 23:46:00 -07:00
saravanakumardb1
f3e14e28dd
feat(ecosystem): Phase 0 — kill-switch, feedback, accessibility, feature flags, telemetry events
...
Phase 0 of the Agentic AI Roadmap: ecosystem gap fixes.
- Add @bytelyst/kill-switch-client integration (web/src/lib/kill-switch.ts)
- Wire kill switch check into providers.tsx on app init
- Add @bytelyst/feedback-client integration (web/src/lib/feedback.ts)
- Add @bytelyst/accessibility to web dependencies
- Add 7 agentic feature flags to backend (all default false)
- Define 16 telemetry event constants (backend + web)
- Add AGENTIC_AI_ROADMAP.md with full Phase 0-E plan + audit findings
All 182 backend tests pass. All 394 web tests pass.
No breaking changes to existing functionality.
2026-03-31 23:26:37 -07:00
saravanakumardb1
ac6edec73f
fix(tokens): replace hardcoded personal category hex with CSS token var
2026-03-29 10:29:14 -07:00
saravanakumardb1
d192061df3
fix(web): exclude e2e/ from tsconfig to prevent false typecheck errors
2026-03-29 02:19:06 -07:00
saravanakumardb1
8b18a8e74b
fix(deps): switch @bytelyst/ui and design-tokens to file: refs for local resolution
2026-03-29 02:12:45 -07:00
saravanakumardb1
f5dc7332cb
fix(tokens): import @bytelyst/design-tokens/css/chronomind — remove hand-written token block
2026-03-29 01:23:57 -07:00
saravanakumardb1
c9448d35e4
fix(e2e): fix escaped backticks in visual-regression template literals
2026-03-29 01:01:14 -07:00
saravanakumardb1
e60efddaab
fix(web): remove dead responsive sidebar CSS — ChronoMind uses header layout, no sidebar
2026-03-29 00:06:48 -07:00
saravanakumardb1
72651ceff1
feat(web): add responsive sidebar CSS breakpoints for mobile
2026-03-28 23:30:01 -07:00
saravanakumardb1
947c93d10b
feat(web): wire @bytelyst/ui ToastProvider into app providers
2026-03-28 23:25:41 -07:00
saravanakumardb1
075e1850e5
fix(web): add interactive hover/active states for buttons and links
2026-03-28 23:20:44 -07:00
saravanakumardb1
ffe2d28921
test(visual): add Playwright visual regression screenshot tests
2026-03-28 00:55:40 -07:00
saravanakumardb1
1191d9e00d
chore(design-system): add responsive sidebar CSS breakpoints (768px collapse)
2026-03-28 00:51:28 -07:00
saravanakumardb1
c2db021568
fix(web): add skip-to-content link for WCAG keyboard accessibility
2026-03-28 00:47:03 -07:00
saravanakumardb1
2d0a47be92
fix(web): add prefers-reduced-motion media query for accessibility
2026-03-28 00:38:48 -07:00
saravanakumardb1
0036e6af10
chore(design-system): add @bytelyst/ui shared component library dependency
2026-03-28 00:36:08 -07:00
saravanakumardb1
bc7430a436
chore(design-system): deploy canonical generated Swift theme tokens from @bytelyst/design-tokens
2026-03-28 00:26:05 -07:00
saravanakumardb1
487464bcaf
fix(web): add sr-only utility + prefers-color-scheme light mode to globals.css
2026-03-28 00:25:20 -07:00
saravanakumardb1
7ac57d0ec7
feat(a11y): add axe-core accessibility E2E spec with focus-visible test
2026-03-27 16:42:03 -07:00
saravanakumardb1
3cf08d6cad
feat(design-system): add loading.tsx route transition page
2026-03-27 16:34:27 -07:00
saravanakumardb1
e9e96ba18a
fix(e2e): upgrade shallow specs with page.route() API mocking and error state tests
2026-03-27 13:32:05 -07:00
saravanakumardb1
5453cb131a
chore(web): add Dockerfile, service worker, and e2e test scaffolds
2026-03-27 11:28:33 -07:00
saravanakumardb1
c6e83f991d
fix(docker): correct web Dockerfile EXPOSE/PORT to 3030 matching docker-compose
2026-03-24 11:45:29 -07:00
saravanakumardb1
5c67bed5a6
fix(docker): remove hardcoded corporate proxy and jfrog registry from Dockerfiles
2026-03-24 11:12:38 -07:00
saravanakumardb1
bfbca2b820
feat(docker): migrate to Gitea registry-backed Docker pattern
...
- Convert all @bytelyst/* file: refs to semver ^0.1.0
- Remove sibling common-plat workspace references
- Add .npmrc and .npmrc.docker for local Gitea registry
- Rewrite Dockerfiles: pnpm + BuildKit secret mount
- Verified: pnpm install + backend typecheck pass
2026-03-23 20:57:37 -07:00
saravanakumardb1
1168da3ce2
fix(ci): fix ESLint flat config plugin resolution
...
- Override react-hooks rules within the same config object that defines the plugin
- Avoids 'Cannot redefine plugin' error in ESLint 9 flat config
2026-03-22 21:20:23 -07:00
saravanakumardb1
7cca057831
fix(ci): fix ESLint errors + workflow for Gitea CI
...
- Move theme detection into useState initializer (fixes set-state-in-effect)
- Downgrade React 19 strict ESLint rules to warnings
- Skip pnpm install in common-plat build step, add HUSKY=0
2026-03-22 21:11:44 -07:00