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
3dce28df00
ci: add Playwright E2E job to Gitea CI
2026-03-28 00:35:02 -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
662e66fc4b
fix(scripts): exclude .env.example from secret scan
2026-03-27 23:08:56 -07:00
saravanakumardb1
c710c8172b
chore: add Husky pre-commit hooks + secret-scan scripts
2026-03-27 23:03:33 -07:00
saravanakumardb1
d6cddb9641
chore(backend): add FIELD_ENCRYPT env vars to .env.example
2026-03-27 23:01:26 -07:00
saravanakumardb1
30da27a175
ci: add backend lint step to Gitea CI
2026-03-27 22:58:49 -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
98be554adf
feat(design-system): add design review PR template with screenshot requirement
2026-03-27 16:37:28 -07:00
saravanakumardb1
3cf08d6cad
feat(design-system): add loading.tsx route transition page
2026-03-27 16:34:27 -07:00
saravanakumardb1
d22e73fa0f
fix(widgets): add .privacySensitive() to timer label and countdown views
2026-03-27 13:57:15 -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
d179c4c624
feat(watch,mac): complete watchOS + macOS companion targets
...
- watchOS: add WatchSessionManager (WCSession bridge), WatchNotificationHandler
(snooze/dismiss actions), recommendations() for AppIntentTimelineProvider
- watchOS: WatchTimerStore tick loop with cascade haptics, App Group sync
- macOS: CreateTimerSheet (countdown/alarm/pomodoro), launch-at-login toggle
- macOS: MenuBarState showCreateSheet, MacSettingsView data tab
- Xcode project updated with new file references
2026-03-27 11:28:13 -07:00
saravanakumardb1
a865b9d655
chore: add standalone docker-compose.yml for local dev
2026-03-26 23:12:22 -07:00
saravanakumardb1
38dbed80ef
chore(backend): add eslint config and lint script
2026-03-26 22:59:50 -07:00
saravanakumardb1
2ca292c983
chore: .npmrc use ${GITEA_NPM_HOST}:3300 instead of hardcoded localhost
...
Enables NETWORK-aware Gitea registry resolution:
- NETWORK=corp → localhost (local Gitea)
- NETWORK=home → Azure VM host (from ~/.gitea_vm_host)
switch-network.sh in common-plat sets GITEA_NPM_HOST accordingly.
Matches existing .npmrc.docker pattern used during Docker builds.
2026-03-24 15:46: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
c1ffb3c222
chore: remove docker-prep.sh — replaced by Gitea registry-backed Dockerfiles
2026-03-24 06:21:04 -07:00
saravanakumardb1
3b32b78c35
fix(ci): remove stale common-plat build step — packages from Gitea registry now
2026-03-24 05:54:50 -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
saravanakumardb1
7242c83998
fix(ci): build only @bytelyst/* packages in common-plat
...
- Use pnpm -r --filter './packages/**' build to avoid dashboard/service builds
- Fixes .next/lock conflict from parallel jobs building common-plat
2026-03-22 20:33:50 -07:00
saravanakumardb1
41b7760ebf
fix(ci): use local paths for host-mode Gitea runner
...
- Replace actions/checkout with git pull + local working-directory
- Fixes corp proxy blocking GitHub action downloads
2026-03-22 20:23:02 -07:00
saravanakumardb1
fcc9207385
chore(ci): migrate to Gitea local CI, disable GitHub Actions
...
- Add .gitea/workflows/ci.yml for self-hosted Gitea runner
- Disable .github/workflows/ci.yml (GitHub billing blocked)
2026-03-22 20:13:18 -07:00
saravanakumardb1
582936ad65
feat(repo): migrate chronomind workspace to pnpm
...
- Add pnpm-workspace.yaml (backend + web + common-plat packages)
- Add root package.json with workspace scripts and pnpm config
- Add packageManager: pnpm@10.6.5 to backend/web manifests
- Remove package-lock.json files, generate pnpm-lock.yaml
- Add root .gitignore (was missing)
- Update CI to use pnpm workspace commands
- Add transpilePackages + webpack symlinks to next.config.ts
- Update docker-prep.sh for backend + web consumers
- Rewrite backend/web Dockerfiles to .docker-deps consumer pattern
- Add .dockerignore
Verified: typecheck + 576 tests (182 backend + 394 web) + builds pass
Docker: backend + web smoke builds pass
2026-03-22 19:11:01 -07:00
saravanakumardb1
ab400fbb6a
chore: update project files
2026-03-22 14:06:48 -07:00
saravanakumardb1
cb684fa086
chore(docker): add backend + web Dockerfiles, add standalone output to next.config.ts
2026-03-22 00:20:20 -07:00
saravanakumardb1
5e8c46b5f3
fix(ios): correct iPad sidebar filter closure indentation
2026-03-21 20:56:58 -07:00
saravanakumardb1
b16a6614d4
feat(android): gate Focus tab behind focus_mode_enabled feature flag
2026-03-21 20:42:01 -07:00
saravanakumardb1
39f8a70b6b
feat(ios): gate Focus tab behind focus_mode_enabled feature flag
2026-03-21 20:39:56 -07:00
saravanakumardb1
f6c85ede9e
fix: align Fastify to 5.7.4 + add web product-config.ts
2026-03-21 20:31:26 -07:00
saravanakumardb1
a606617c1d
feat(web): wire feature flag checks into Dashboard UI
...
Gate Focus Mode and Routines nav links behind focus_mode_enabled
and routines_enabled flags. Fix inverted routines_disabled check
to use the actual seeded flag key routines_enabled.
2026-03-21 20:30:49 -07:00
saravanakumardb1
09310b7eb8
feat(web): upgrade feature-flag-client to SSE streaming + getValue()
2026-03-21 17:40:43 -07:00
saravanakumardb1
8c90d863a8
feat(backend): admin-panel encryption toggle via initEncryption()
...
- FIELD_ENCRYPT_ENABLED env var (default: true, fallback only)
- initEncryption(productId) polls encryption_enabled from platform-service
- Admin panel toggle takes precedence, 3s timeout graceful fallback
2026-03-21 15:24:58 -07:00
saravanakumardb1
253a9db0ea
feat(backend): encrypt sensitive fields across all modules
...
- timers: description
- routines: description, steps[].notes
- shared-timers: description
- webhooks: secret, description
- Add @bytelyst/field-encrypt dep + chronomind-mek config
- field-encrypt singleton (getEncryptor lazy pattern)
- Encrypt on create/update/batchUpsert, decrypt on read/list/since
- Backward-compatible via isEncryptedField guard
- 182/182 tests passing, typecheck clean
2026-03-21 12:11:39 -07:00
saravanakumardb1
7a1be12ef5
docs: add cross-repo automation playbook reference
2026-03-21 09:12:18 -07:00
saravanakumardb1
995cdb8e7d
fix(ios): align tests with current PomodoroConfig/PomodoroState/CreateCountdownParams signatures
...
- PomodoroConfig: add longBreakMinutes parameter
- PomodoroState: add isLongBreak, completedRounds parameters; remove roundStartedAt
- CreateCountdownParams: duration → durationSeconds
- RescheduleEngineTests: compare timeIntervalSince1970 (not Date) with accuracy
2026-03-21 08:34:50 -07:00
saravanakumardb1
d3c3affc1b
fix(ios): Fix KillSwitchService — BLKillSwitchClient.check() returns Void
...
Swift BLKillSwitchClient.check() sets isDisabled/maintenanceMessage as
properties on the client, not a returned result. Expose isDisabled and
maintenanceMessage as computed properties on the wrapper.
2026-03-20 23:09:36 -07:00