Commit Graph

908 Commits

Author SHA1 Message Date
saravanakumardb1
1d2003a30f feat(workflows): add docker-smoke-test, audit-repo-health, verify-all-backends
- /docker-smoke-test: prep, build, verify all Dockerfiles in a repo
- /audit-repo-health: cross-repo pnpm/Docker/config consistency audit
- /verify-all-backends: quick local typecheck+test+build (complement to /gitea-ci)
2026-03-22 22:19:08 -07:00
saravanakumardb1
0ffbdce0ef fix(ci): fix admin-web test mocks + workflow build command
- Add getCurrentUserFromRequest + requireAdmin to all 8 auth-server test mocks
- Fixes Vitest 4.x strict mock requiring all accessed exports
- Skip pnpm install in CI workflow (deps already installed locally)
2026-03-22 21:11:24 -07:00
saravanakumardb1
e427282234 docs(ci): update Gitea CI docs + add /gitea-ci workflow
- Add key settings, runner log path, detailed repo/job matrix to GITEA_LOCAL_CI.md
- Add /gitea-ci Windsurf workflow: start, push all, check status, view logs
- Add learning_ai_local_memory_gpt to repos.txt
2026-03-22 20:56:03 -07:00
saravanakumardb1
acb866774c feat(repo): add packageManager field + finalize pnpm migration tracker
- Add packageManager: pnpm@10.6.5 to root package.json
- Mark all 9 repos complete in PNPM_MIGRATION.md
- Record lysnrai commit c3a88af + common-plat completion notes
2026-03-22 20:36:41 -07:00
saravanakumardb1
017eb4278b 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:01 -07:00
saravanakumardb1
6d4579da37 chore(ci): migrate to Gitea local CI, disable GitHub Actions
- Add .gitea/workflows/ci.yml for Gitea Actions
- Disable GitHub Actions: ci-extraction-service, ci-mcp-server, reusable-pnpm-workspace
- Add docs/devops/GITEA_LOCAL_CI.md setup guide
2026-03-22 20:13:02 -07:00
saravanakumardb1
8070009fde docs(pnpm): update jarvisjr + peakpulse migration tracker 2026-03-22 19:43:24 -07:00
saravanakumardb1
d9434bbb3e docs(pnpm): update chronomind migration tracker 2026-03-22 19:12:22 -07:00
saravanakumardb1
6a92f43db5 docs(pnpm): update nomgap migration tracker 2026-03-22 18:42:50 -07:00
saravanakumardb1
1e725e977d docs(pnpm): update actiontrail migration tracker 2026-03-22 17:35:01 -07:00
saravanakumardb1
d7651a73cf docs(pnpm): update localmemgpt migration tracker 2026-03-22 17:18:27 -07:00
saravanakumardb1
e2a0960a6d docs(pnpm): record notelett push status 2026-03-22 15:53:06 -07:00
saravanakumardb1
14e7e490e2 docs(pnpm): update notelett migration tracker 2026-03-22 15:52:22 -07:00
saravanakumardb1
17a117f132 fix(docker): pack bytelyst consumer closure for prep 2026-03-22 15:51:17 -07:00
saravanakumardb1
5998af45e3 docs(pnpm): fix tracker audit gaps 2026-03-22 14:19:05 -07:00
saravanakumardb1
afcbf852b2 docs(pnpm): strengthen migration tracker gates 2026-03-22 14:15:48 -07:00
saravanakumardb1
828d31b63d docs: update documentation 2026-03-22 14:06:44 -07:00
saravanakumardb1
d934bb3286 docs(pnpm): add canonical ecosystem migration roadmap 2026-03-22 14:03:17 -07:00
saravanakumardb1
cd811114e5 fix(devops): harden local shared-service docker bring-up 2026-03-22 12:34:38 -07:00
saravanakumardb1
67ef6a6068 fix(exports): preserve processing state on async export failures 2026-03-22 11:58:54 -07:00
saravanakumardb1
265599d005 fix(platform-service): harden broadcast metrics and export job lifecycle 2026-03-22 11:57:47 -07:00
saravanakumardb1
dda38aa009 fix(exports): strip data payload from list endpoint + update audit doc
- exports/routes: exclude inline data from GET /exports list response
  to prevent returning megabytes of serialized export data (perf+security)
- Update WORKSPACE_TODO_AUDIT.md: add post-audit review section with
  9 bugs found and fixed across 2 commits (73b07c2, 841cdf3), mark
  all action plan sprints complete
- Typecheck clean, 1483/1483 tests pass
2026-03-22 01:23:08 -07:00
saravanakumardb1
841cdf3a16 fix(platform-service+events): 3 more gaps in diagnostics + delivery
- diagnostics/subscribers: wire session.created email notification to
  target user using existing 'diagnostics-session-created' template
  (was just logging instead of sending the email)
- events/types: add missing 'currency' field to payment.failed schema
  (payment.succeeded had it, payment.failed did not — inconsistency)
- delivery/subscribers: use event.payload.currency instead of hardcoded
  empty string in payment-failed email variables
- Typecheck clean, 1483/1483 tests pass
2026-03-22 01:20:24 -07:00
saravanakumardb1
73b07c2c3a fix(platform-service): 5 bugs in recent P2/P3 implementations
- diagnostics/subscribers: use correct template IDs
  'diagnostics-session-cancelled' and 'diagnostics-session-completed'
  instead of non-existent 'generic' (would throw at runtime)
- delivery/templates: add missing 'broadcast' email template used by
  broadcast delivery route (dispatchEmail would throw on unknown ID)
- broadcasts/routes: replace broken dot-path 'metrics.sent' update
  with proper updateBroadcastMetrics() call, add productName variable
- exports/routes: store serialized data on job doc, add download
  endpoint GET /exports/:id/download with content-type headers,
  exclude data payload from metadata GET endpoint
- waitlist/routes: store invitation doc ID (inv_...) instead of
  code string (WL-...) in invitationCodeId field
- delivery/delivery.test.ts: update template count 12 -> 13
- Typecheck clean, 1483/1483 tests pass
2026-03-22 01:14:55 -07:00
saravanakumardb1
1576b699b0 feat(platform-service): resolve all P3 TODOs — diagnostics notifications + test cleanup
- diagnostics/subscribers: notify admin via email when debug session is
  cancelled (looks up session creator via getSession + getUserById)
- diagnostics/subscribers: email session summary (logs/traces/screenshots)
  to admin when debug session completes
- diagnostics/subscribers: send Slack alert via dispatchSlack for FATAL
  logs ingested during debug sessions (on-call engineer notification)
- feedback-client/integration.test.ts: replace TODO-4 with clear NOTE,
  fix unused var lint errors
- feedback-client/gdpr.test.ts: mark lifecycle policy as accepted,
  remove console.log + unused blobPath variable
- Update WORKSPACE_TODO_AUDIT.md — P3 section: all 5 resolved
- Typecheck clean, 1483/1483 tests pass
2026-03-22 01:03:51 -07:00
saravanakumardb1
a92373adec docs(devops): fix 15 bugs/gaps in single-VM deployment guide — add 4 missing web services, update stale references 2026-03-22 00:49:14 -07:00
saravanakumardb1
0502dead68 docs(devops): add Docker Desktop K8s as primary local option alongside K3s 2026-03-22 00:44:23 -07:00
saravanakumardb1
6f03a74a76 feat(platform-service): resolve P2 TODOs — exports, broadcasts, telemetry, waitlist
- telemetry/repository: group upsertEventsBatch by pk — same-partition
  writes sequential, different partitions parallel (reduces contention)
- exports/routes: wire async export processing via process.nextTick —
  queries users/audit/telemetry/usage/subscriptions/licenses, serializes
  to CSV or JSON, updates job status with rowCount and fileSizeBytes
- broadcasts/repository: replace mock estimateTargetReach with real user
  count query from auth module, respects percentageRollout
- broadcasts/routes: wire async broadcast delivery — fetches target users,
  dispatches email per recipient, updates metrics on completion
- waitlist/routes: auto-generate invitation codes via invitations module
  when batch-inviting waitlist entries (WL-XXXXXXXX format, 14-day trial)
- CAPTCHA (item 12) deferred — requires external API keys
- Update WORKSPACE_TODO_AUDIT.md — P2 section: 5/6 resolved
- Typecheck clean, 1483/1483 tests pass
2026-03-22 00:41:11 -07:00
saravanakumardb1
5646cefcbd docs(devops): add K8s best practices from production comparisons, update gap table to reflect all Dockerfiles created 2026-03-22 00:36:59 -07:00
saravanakumardb1
09525f671f fix(platform-service): 3 bugs in delivery subscribers + survey incentives
- delivery/subscribers: welcome email used raw productId as productName,
  now uses resolveProductName() for proper display name
- delivery/subscribers: remove redundant String(daysLeft) in trial_expiring
- surveys/routes: incentiveClaimed was set outside if(sub) block, marking
  response as claimed even when user has no subscription. Moved inside
  if(sub) so claims are only recorded when incentive is actually granted
2026-03-22 00:19:32 -07:00
saravanakumardb1
ae2af43d71 docs(devops): add single-VM deployment guide with audit findings 2026-03-22 00:18:17 -07:00
saravanakumardb1
2f06aacc27 fix(platform-service): resolve P1 TODOs — delivery email subscribers + survey incentives
- delivery/subscribers: add resolveUserEmail() helper using auth getById()
- payment.failed: look up user email, dispatch payment-failed template
- trial_expiring: look up user, compute daysLeft from expiresAt, dispatch
- trial_expired: look up user, dispatch trial-expired template with upgradeUrl
- surveys/routes: wire incentive fulfillment to subscriptions module
  - pro_days: extend currentPeriodEnd by incentive amount
  - credits: add bonus tokensIncluded via subscriptions repo
- Update WORKSPACE_TODO_AUDIT.md — P0+P1 all resolved (7/18)
- Typecheck clean, 1483/1483 tests pass
2026-03-22 00:14:41 -07:00
saravanakumardb1
9f00c120da docs: update TODO audit — P0 items resolved, clean table formatting 2026-03-21 23:51:23 -07:00
saravanakumardb1
34c34360b7 fix(dashboards): wire telemetry error reporting in admin-web + tracker-web error boundaries
- Import trackEvent from @/lib/telemetry in both error.tsx files
- Report unhandled errors with error name, message, and digest
- Resolves P0 TODO items #1 and #2 from WORKSPACE_TODO_AUDIT.md
2026-03-21 23:49:14 -07:00
saravanakumardb1
07e4d838ed docs: comprehensive workspace TODO audit — 18 findings across 15 repos
Scanned all 15 workspace repos for TODOs, disabled features, stubs.
- 12 actionable TODOs in platform-service (delivery, exports, broadcasts, surveys, waitlist, diagnostics, telemetry)
- 3 identical error.tsx telemetry TODOs across dashboards
- 3 package-level TODOs (feedback-client tests, create-app template)
- All 9 product backends + webs are TODO-free
- Prioritized into P0-P3 with impact/benefit analysis and sprint plan
2026-03-21 23:46:14 -07:00
saravanakumardb1
9180954903 fix(platform+admin-web): 3 bugs in delivery retry + webhooks delivery loading
Backend (delivery retry):
- Use NotFoundError (404) instead of BadRequestError (400) for missing log doc
- Add telegram + slack retry support (was email-only, threw error for others)

Frontend (delivery page):
- Add pk field to DeliveryEntry interface
- Pass pk query param in retry call so backend can look up the doc
- Fix handleRetry to accept full entry object instead of just id

Frontend (webhooks page):
- Parallelize delivery fetches with Promise.allSettled (was sequential for loop)
- Significant page load improvement for subscriptions with many deliveries
2026-03-21 23:21:58 -07:00
saravanakumardb1
f92504ceb4 docs(admin-web): update gap analysis — all Q1-Q4 TODOs resolved, 0 partially exposed pages
- Batch 5: 3 backend endpoints added + 4 frontend features re-enabled
- Batch 6: debug-session JSON download implemented, console.log removed
- Statistics: 21 broken calls fixed (6 commits), 0 partially exposed pages
- No actionable TODOs remain
2026-03-21 23:15:24 -07:00
saravanakumardb1
29605da16d fix(admin-web): implement debug-session JSON download, remove console.log 2026-03-21 23:13:58 -07:00
saravanakumardb1
ead9457345 feat(platform+admin-web): implement 4 missing backend endpoints + re-enable frontend
Backend endpoints added:
- POST /delivery/logs/:id/retry — re-dispatches failed email deliveries (Q1)
- POST /reviews/:id/flag — flags review item with reason + admin metadata (Q2)
- DELETE /agent-evals/suites/:id — deletes evaluation suite with 204 response (Q3)

Frontend re-enabled:
- delivery: retry button for failed entries
- reviews: flag dropdown menu item
- agent-evals: delete dropdown menu item + Trash2 icon

Frontend fixed:
- webhooks: per-subscription delivery loading via GET /subscriptions/:id/deliveries (Q4)
2026-03-21 23:11:38 -07:00
saravanakumardb1
1935b39525 docs(admin-web): update gap analysis — all page proxy routes verified complete
- Add batch 4 fixes: experiments/ab-testing proxy routes, webhooks B20 fix
- Add verification section: all 30 API call paths have matching proxy routes
- Update statistics: 46 proxy route dirs, 20 broken calls fixed, 0 missing for pages
- Add TODO Q4: webhooks per-subscription delivery loading
- Update 'Still Missing' table with better notes (none are blocking)
2026-03-21 23:00:35 -07:00
saravanakumardb1
8c45e440df feat(admin-web): add experiments + ab-testing proxy routes, fix webhooks deliveries
New proxy routes:
- /api/experiments → rewrites to /api/ab-testing/experiments (base + catch-all)
- /api/ab-testing/[...path] → /api/ab-testing/* (for suggestions, hypotheses)

Bug fix:
- B20: webhooks page called GET /webhooks/deliveries (404) — removed broken call,
  backend only has GET /webhooks/subscriptions/:id/deliveries (TODO Q4)
2026-03-21 22:56:22 -07:00
saravanakumardb1
6d9b687b49 docs(admin-web): update gap analysis with batch 2+3 fixes + new proxy routes
- Add batch 2 bug fixes table (587d22e): orgs members→memberships, marketplace admin paths
- Add batch 3 bug fixes table (c54a3fe): agent-evals run plural, delete disabled
- Add missing proxy routes section (880338b): ai-diagnostics, feedback
- Update statistics: 43 proxy route dirs, 19 total API call fixes, ~10 remaining
- Add TODO Q3: agent-evals suite delete endpoint needed
2026-03-21 21:19:27 -07:00
saravanakumardb1
880338b79c feat(admin-web): add missing proxy routes for ai-diagnostics + feedback pages
- ai-diagnostics: GET/POST /api/ai-diagnostics/* → platform-service /api/ai-diagnostics/*
- feedback: GET/POST/DELETE /api/feedback/* → platform-service /api/feedback/*
- feedback base: GET/POST /api/feedback → platform-service /api/feedback

These pages existed with sidebar items but had no proxy routes, causing 404s.
2026-03-21 21:17:04 -07:00
saravanakumardb1
c54a3fe277 fix(admin-web): fix agent-evals run endpoint + disable delete (no backend)
- B18: POST /agent-evals/suites/:id/run → /suites/:id/runs (plural)
- B19: DELETE /agent-evals/suites/:id has no backend endpoint — disabled with TODO Q3
2026-03-21 21:14:52 -07:00
saravanakumardb1
587d22e107 fix(admin-web): correct 4 more broken API calls in organizations + marketplace
Organizations fixes:
- B13: GET /orgs/:id/members → GET /orgs/:id/memberships (match backend)
- B14: DELETE /orgs/:id/delete → DELETE /orgs/:id (no suffix needed)

Marketplace fixes:
- B16: GET /marketplace/listings → GET /marketplace/admin/pending (admin view)
- B17: POST /marketplace/listings/:id/approve → POST /marketplace/admin/:id/approve
- B17: POST /marketplace/listings/:id/reject → POST /marketplace/admin/:id/reject
2026-03-21 21:12:32 -07:00
saravanakumardb1
a1fd1d2e37 docs(admin-web): update gap analysis with implementation status + bug fix log
- Add Implementation Status section with checkboxes for all completed work
- Sprint 0-4 items all checked off (sidebar, pages, proxy routes)
- Document 12 API call bugs found and fixed in a3e94f3
- Track 11 remaining missing proxy routes
- Track 2 open TODOs (Q1: delivery retry, Q2: reviews flag)
- Update Part 6 statistics with before/after columns
- Admin gap reduced from 28 missing to ~11
2026-03-21 21:08:47 -07:00
saravanakumardb1
a3e94f3f3d fix(admin-web): correct 12 broken API calls across 5 pages
Pages fixed:
- waitlist: GET /waitlist/list → GET /waitlist (root)
- delivery: GET /delivery/log → GET /delivery/logs; disable retry button (no backend endpoint)
- reviews: GET /reviews/list → GET /reviews; approve/reject → POST /:id/decision with body; disable flag (no endpoint)
- jobs: GET /jobs/list → GET /jobs; GET /runs/list → GET /runs; trigger → POST /jobs/trigger with {jobId}
- gdpr-export: GET /exports/list → GET /exports; POST /exports/create → POST /exports

TODO Q1: delivery retry endpoint not implemented in backend
TODO Q2: reviews flag endpoint not implemented in backend
2026-03-21 21:06:49 -07:00
saravanakumardb1
edf8926d6d fix(docs): self-audit Portal PRD + roadmap — 15 findings corrected
Review Errata (15 findings):
- F1-F2: Product count 11→10 (ByteLyst Auth has no backend)
- F3: product.json count 4→3 missing (FlowMonk, ActionTrail, LocalMemGPT)
- F4: Architecture diagram spacing fixes
- F5: Remove portalLayout from GlobalPreferences (contradicted separate Cosmos container)
- F6-F7: Widget endpoint unified to /widgets/:widgetId/data + added layout CRUD endpoints
- F8: Verified all 10 feed source endpoints against actual backend route files
- F9: Added @bytelyst/datastore to BFF tech stack
- F10: Added Cosmos containers section (portal_widget_layouts)
- F11: Global prefs dependency Phase 2→Phase 5 blocker
- F12: Removed emojis from search example
- F13: Added quick-actions task to roadmap Phase 1
- F14: Added 4 missing scaffold tasks (errors, datastore, cosmos-init, vitest)
- F15: Corrected run-local-all-services.sh location
- Updated task totals: 124→129
2026-03-21 20:57:28 -07:00
saravanakumardb1
7a4cca034c docs: add Unified ByteLyst Portal PRD + phased roadmap with 124 tasks
- PRD: product identity, architecture (BFF + web), data model, 10 pages,
  21 widgets, cross-product feed/search, security, resilience, telemetry
- Roadmap: 8 phases (scaffold, auth, feed, widgets, search, billing,
  security, polish), dependency graph, ~21 days estimated
- Builds on CROSS_PRODUCT_USER_DASHBOARD.md design + DASHBOARD_UI_GAP_ANALYSIS.md findings
2026-03-21 20:49:55 -07:00
saravanakumardb1
0b8e45a9b0 fix(admin-web): jobs proxy route missing PATCH+DELETE exports — page uses PATCH in handleToggle 2026-03-21 20:46:53 -07:00