Commit Graph

334 Commits

Author SHA1 Message Date
saravanakumardb1
18b680ad53 fix(backend): fix sync throw isolation in event bus + add 6 tests
Promise.allSettled only catches rejected promises, not synchronous throws.
Wrap handler calls in Promise.resolve().then() to isolate sync errors.
Add 6 unit tests covering delivery, unsubscribe, error isolation,
singleton, reset, and removeAll.
2026-04-13 11:42:52 -07:00
saravanakumardb1
cce4ca610f refactor(web): merge platform-api.ts into platform.ts
platform.ts and platform-api.ts both created PlatformClient instances.
Merge all typed helpers (getUserSettings, updateUserSettings,
listSessions, revokeSession, updateProfile) into platform.ts and
delete the duplicate file. Use lazy singleton instead of eager.
2026-04-13 11:06:40 -07:00
saravanakumardb1
bb6d77b1a4 refactor(mobile): DRY getAccessToken into shared auth-helpers.ts
Extract the duplicated getAccessToken() function from platform.ts,
billing-client.ts, and platform-api.ts into a single auth-helpers.ts.
All three now import from the shared module.
2026-04-13 11:06:22 -07:00
saravanakumardb1
4813c850a3 feat(web,mobile): add @bytelyst/billing-client and platform-client
Web:
- New lib/billing-client.ts: factory wrapper using shared getAccessToken.
- Add @bytelyst/billing-client to web deps.

Mobile:
- New lib/billing-client.ts: factory wrapper using MMKV token storage.
- New lib/platform-api.ts: typed platform-client wrapper for settings,
  sessions, and profile management.
- Add @bytelyst/billing-client and @bytelyst/platform-client to deps.
2026-04-13 10:30:02 -07:00
saravanakumardb1
61de6ce94a feat(backend): wire @bytelyst/webhook-dispatch to domain event bus
- New lib/webhook-subscriber.ts: bridges event bus to webhook dispatch.
  Registers listeners on all 5 domain events (note.created, updated,
  deleted, task.created, workspace.created). Dispatches to registered
  targets with HMAC-SHA256 signing, retry, and delivery log.
- server.ts: init webhook subscriber on startup, stop on close.
- Adds @bytelyst/webhook-dispatch dependency.
2026-04-13 10:29:43 -07:00
saravanakumardb1
7c4a09f9e9 chore: add common-plat workspace link and switch to localhost Gitea
- pnpm-workspace.yaml: include ../learning_ai_common_plat/packages/*
  so @bytelyst/* resolve locally without Gitea registry access.
- .npmrc: point registry to localhost:3300 for corp network,
  enable link-workspace-packages and prefer-workspace-packages.
2026-04-13 10:29:23 -07:00
saravanakumardb1
190d23280f feat(backend): add domain event bus and wire note CRUD events
- New lib/event-bus.ts: lightweight typed pub/sub with error isolation
  via Promise.allSettled. Supports note.created, note.updated,
  note.deleted, task.created, workspace.created events.
- notes/repository.ts: emit events on create, update, and delete.
- .env.example: add TELEMETRY_ENABLED, FEATURE_FLAGS_ENABLED,
  FIELD_ENCRYPT_ENABLED, PALACE_ENABLED, PALACE_EXTRACTION_ENABLED.
2026-04-13 10:00:12 -07:00
saravanakumardb1
58a778bc1e feat(web): init feature flags + kill switch on startup, fix hardcoded colors
- Providers.tsx now calls initFeatureFlags() and checkKillSwitch()
  on mount (both were wired but never initialized).
- globals.css: replace hardcoded #0b1020 with color-mix() from canvas token.
- layout.tsx: make themeColor responsive (dark/light media queries).
- use-theme.ts: prefix localStorage key with PRODUCT_ID for consistency.
2026-04-13 09:59:54 -07:00
saravanakumardb1
4246d58798 fix(docker): switch Alpine to Debian slim and remove prod NODE_TLS_REJECT_UNAUTHORIZED
Alpine breaks under corporate proxy TLS interception. Debian slim
works reliably. NODE_TLS_REJECT_UNAUTHORIZED=0 removed from production
stages — only kept in build stages where npm registries need it.
2026-04-13 09:59:36 -07:00
saravanakumardb1
71062a57be fix(web): fix auth token key inconsistency and DRY getAccessToken()
feature-flags.ts and prompt-client.ts used bare 'access_token' key
instead of PRODUCT_ID-prefixed key — auth tokens were never sent.

Consolidates 10 web lib files to import the shared getAccessToken()
from api-helpers.ts instead of each redefining their own copy.
2026-04-13 09:59:18 -07:00
saravanakumardb1
3a229c5b42 fix(backend): convert @bytelyst/llm and @bytelyst/palace from file: refs to Gitea registry
Both packages are published to Gitea (llm@0.1.5, palace@0.1.4).
File refs broke Docker builds and caused 8 test files to fail due to
stale dist/providers/fallback.js.

Also removes unused @bytelyst/events dependency (not on Gitea registry).
2026-04-13 09:58:59 -07:00
saravanakumardb1
ddb5bfb49a 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:35 -07:00
root
6add711aa2 chore: update registry URL to gitea.bytelyst.com + lockfile refresh
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 06:04:34 +00:00
root
a73b3e5bc4 chore: bump @bytelyst/* deps to latest registry versions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 06:04:34 +00:00
saravanakumardb1
f2d03d01fc docs(palace): update roadmap — mark all phases complete with commit hashes + test counts 2026-04-10 10:22:42 -07:00
saravanakumardb1
e6a0e7e85c docs(palace): mark N7 web UI phase complete in roadmap 2026-04-10 01:47:19 -07:00
saravanakumardb1
e6dacbe809 feat(palace): web UI — palace client, 4 components, palace page, sidebar nav, 6 tests 2026-04-10 01:46:51 -07:00
saravanakumardb1
1bf9896ea9 fix(palace): pass stripped plainText to extractor instead of raw HTML 2026-04-10 01:42:00 -07:00
saravanakumardb1
1ae35a7e21 fix(palace): wire palace MCP tools into register-note-tools registry 2026-04-10 01:41:28 -07:00
saravanakumardb1
97662d1dc0 fix(palace): deleteMemory now decrements wing/room memoryCount 2026-04-10 01:40:34 -07:00
saravanakumardb1
471660b771 docs(palace): mark Phase N6 complete in roadmap 2026-04-10 01:37:47 -07:00
saravanakumardb1
c7c1ebad74 feat(palace): MCP memory tools — search, store, wake-up, KG query, timeline, list wings (N6) 2026-04-10 01:37:31 -07:00
saravanakumardb1
5ce5a4b3cc docs(palace): mark Phase N5 complete in roadmap 2026-04-10 01:35:44 -07:00
saravanakumardb1
be2f4ff0ad feat(palace): REST API routes with search, CRUD, KG, wake-up, maintenance (N5) 2026-04-10 01:35:20 -07:00
saravanakumardb1
793c25cded docs(palace): mark Phase N3 complete in roadmap 2026-04-10 01:30:33 -07:00
saravanakumardb1
31bdb0ada9 feat(palace): knowledge graph triple CRUD with temporal queries, contradiction detection (N3) 2026-04-10 01:30:02 -07:00
saravanakumardb1
aa675e855b docs(palace): mark Phase N2 complete in roadmap 2026-04-10 01:27:31 -07:00
saravanakumardb1
a5dbeac77e feat(palace): wake-up context builder with L0/L1/L2 layers, L1 cache regeneration (N2) 2026-04-10 01:27:13 -07:00
saravanakumardb1
37fba5d4a5 docs(palace): mark Phase N4 complete in roadmap 2026-04-10 01:25:25 -07:00
saravanakumardb1
0af5f875bb feat(palace): auto-save hooks — extract memories on note create/update (N4) 2026-04-10 01:25:00 -07:00
saravanakumardb1
d9d0cffc8d docs(palace): mark Phase N1 complete in roadmap 2026-04-10 01:20:08 -07:00
saravanakumardb1
632b5df1ac feat(palace): add 30 tests with cross-user isolation, fix extractor regex fallback 2026-04-10 01:19:35 -07:00
saravanakumardb1
13020bc72f feat(palace): add LLM memory extractor with regex fallback 2026-04-10 01:16:55 -07:00
saravanakumardb1
44d8867aa5 feat(palace): add user-isolated repository with CRUD, search, dedup, prune, encryption 2026-04-10 01:15:41 -07:00
saravanakumardb1
38006af1a3 feat(palace): add @bytelyst/palace dep, palace types, 6 cosmos containers, config vars 2026-04-10 01:14:00 -07:00
saravanakumardb1
69a3706615 docs(palace): mark Phase N0 done — @bytelyst/palace d1c6cf4 (91 tests) 2026-04-10 01:07:14 -07:00
saravanakumardb1
b7bdfd97bc fix(test): resolve all TS lint errors in note-collaborators routes test — properly typed mock fns 2026-04-06 20:56:20 -07:00
saravanakumardb1
338e80fc33 fix(intake): support comma-separated status filter in GET /intake/jobs — fixes mobile polling contract mismatch 2026-04-06 20:48:26 -07:00
saravanakumardb1
e5f287c7ea feat(web): add intake URL bar, share dialog, intake API client — dashboard + enhanced sharing UI 2026-04-06 20:35:02 -07:00
saravanakumardb1
599d68e116 feat(sharing): add collaborative shares, export-text, deep-link helper — note-collaborators module (11 new tests) 2026-04-06 20:31:31 -07:00
saravanakumardb1
0e16714da1 feat(intake): add URL intake pipeline — classifier, extractors, rules engine, routes, 6 new prompt templates (27 total), 26 new tests 2026-04-06 20:28:36 -07:00
saravanakumardb1
6f262a5218 fix: register missing note_shares+note_versions containers, add multi-note input type 2026-04-06 20:20:12 -07:00
saravanakumardb1
18646fac6d fix(tests): fix all failing tests — server mock, ecosystem schema stubs, CreateNoteModal body assertion 2026-04-06 19:13:35 -07:00
saravanakumardb1
96015be313 fix: add /userId partition key to scheduler schedule+webhook collections 2026-04-06 16:29:24 -07:00
saravanakumardb1
d4cc696e02 fix: align PromptTemplateEditor, SmartActionsPanel, prompts page with backend enums; fix RunPromptModal type cast 2026-04-06 16:27:22 -07:00
saravanakumardb1
192c7baf2f fix: align web+mobile types with backend (categories, output types, field names, durationMs telemetry) 2026-04-06 16:24:31 -07:00
saravanakumardb1
f1c08d1a83 docs: update AGENTS.md test counts and SMART_ACTIONS_ROADMAP Phase 6 status (G20) 2026-04-06 13:44:41 -07:00
saravanakumardb1
6095f1d985 feat(smart-actions): add prompt-result screen, capture sub-routes, Cmd+Shift+A shortcut, telemetry events (G16-G19) 2026-04-06 13:43:47 -07:00
saravanakumardb1
63ee00037e test(e2e): expand smart-actions spec to 9 tests (G15) 2026-04-06 13:36:39 -07:00
saravanakumardb1
406153eeda test(mobile): add note-prompts API client and prompt-store tests (G14) 2026-04-06 13:36:00 -07:00