Commit Graph

1232 Commits

Author SHA1 Message Date
root
4a0ceb17e3 chore: release version bumps [skip ci] 2026-04-13 05:00:19 +00:00
root
e2259f39ec chore: release version bumps [skip ci] 2026-04-13 04:37:22 +00:00
root
39e48f3241 feat(llm): add FallbackLLMProvider + release pipeline script
- packages/llm: add FallbackLLMProvider (providers/fallback.ts) that
  tries each provider in order, skipping unconfigured or erroring ones;
  wire 'fallback' as a first-class LLMProviderType in factory + types
- packages/llm: improve auto-detection in factory — PERPLEXITY_API_KEY
  and GEMINI_API_KEY trigger auto-selection when no explicit provider set
- scripts/release.sh: new pipeline — rebase from origin/main, build,
  apply changesets, publish outdated packages to Gitea registry, push
- scripts/run-registry-tests.sh: fix Gitea URL health-check to use a
  real package endpoint with auth header instead of bare registry root
- docs: mark Vercel track-B prompts B1–B3 as complete

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 04:21:12 +00:00
saravanakumardb1
85d8cef110 docs: expand Docker build corporate proxy workarounds
- AGENTS.md § 9: add 'Docker builds behind corporate proxy' subsection
  with Alpine/corepack/strict-ssl/NODE_TLS rules
- dual-network-setup.md: replace one-liner Docker section with full
  workaround table, recommended Dockerfile pattern, and key rules
2026-04-10 16:00:12 -07:00
saravanakumardb1
d1c6cf47c8 feat(palace): add @bytelyst/palace shared package — MemPalace primitives (91 tests)
New shared package: packages/palace/ (@bytelyst/palace)

Modules:
- types.ts — BasePalaceWingDoc, RoomDoc, MemoryDoc, TunnelDoc, KGTripleDoc, DiaryDoc
- halls.ts — HallType union, HALL_PRESETS (notelett/mindlyst/coding), hallFromLabel()
- cosine.ts — cosineSimilarity(), topKByCosine(), normalizeVector()
- dedup.ts — isContentDuplicate(), isExactDuplicate(), findClosestMatch()
- decay.ts — computeDecayedRelevance(), boostRelevance()
- extraction.ts — buildExtractionPrompt(), parseExtractionResponse(), regexFallbackExtraction()
- kg.ts — findContradictions(), mergeTriples(), isTripleCurrent()
- wakeup.ts — buildWakeUpLayers(), truncateToTokenBudget(), WAKEUP_PRESETS
- config.ts — palaceConfigSchema (Zod)

7 test files, 91 tests passing.
Consumed by NoteLett, MindLyst, and future palace-enabled products.
2026-04-10 00:57:00 -07:00
saravanakumardb1
031e910607 fix(extraction-service): review fixes — locale mapping, model passthrough, content-type validation
BUG 1: Azure locale derivation produced 'en-EN' (invalid) for 2-letter codes.
  → Added toAzureLocale() with 28-language mapping table (en→en-US, pt→pt-BR, etc.)
  → Exported for testing; falls back to code-CODE for unmapped languages.

BUG 2: model field from request schema was silently dropped after provider refactor.
  → Added optional model field to TranscriptionInput interface.
  → OpenAI provider now uses input.model override (falls back to config.model).
  → Route passes model through to provider.transcribe().

GAP 4: SUPPORTED_AUDIO_TYPES was defined but never validated against.
  → Route now rejects unsupported content-types with a clear error message.
  → Allows application/octet-stream (Azure Blob SAS URLs often return this).

GAP 5: Client JSDoc still said 'via OpenAI Whisper API' — now 'via configured STT provider'.

GAP 8: Azure WAV content-type hardcoded samplerate=16000 — now generic audio/wav.

Tests: 42 transcription tests (was 35), 178 total passing.
  → toAzureLocale: 4 tests (locale mapping, passthrough, fallback, case-insensitive)
  → setSTT: 1 test (singleton override)
  → model passthrough: 2 tests (mock ignores, input accepts)
2026-04-06 11:40:27 -07:00
saravanakumardb1
a77b3ff931 refactor(extraction-service): provider-agnostic transcription — OpenAI + Azure Speech + Mock
- TranscriptionProvider interface with transcribe() + isConfigured()
- OpenAITranscriptionProvider: Whisper API (existing behavior)
- AzureTranscriptionProvider: Azure Speech REST API for short audio
- MockTranscriptionProvider: deterministic results for testing
- Factory: getSTT() singleton with env-driven auto-detection
  - STT_PROVIDER=openai|azure|mock (explicit)
  - Auto-detect: AZURE_SPEECH_KEY → azure, OPENAI_API_KEY → openai, else mock
- Config: add STT_PROVIDER, AZURE_SPEECH_KEY, AZURE_SPEECH_REGION env vars
- Route refactored: audio download (common) → provider.transcribe() (swappable)
- deriveFilename() extracted to types.ts (shared by route + providers)
- 35 transcription tests (was 12), 171 total passing
- Follows same pattern as @bytelyst/llm provider abstraction
2026-04-06 11:30:22 -07:00
saravanakumardb1
f8e15880d2 feat(extraction): add transcribe() to ExtractionClient — reusable speech-to-text client
- TranscribeRequest/TranscribeResponse types exported from @bytelyst/extraction
- transcribe() method on ExtractionClient calls POST /api/transcribe
- 3 new client tests (correct body, optional fields, error propagation)
- Package test count: 16 → 19
2026-04-06 11:11:17 -07:00
saravanakumardb1
cc3fbf8187 feat(extraction-service): add /api/transcribe route — speech-to-text via OpenAI Whisper API
- POST /api/transcribe: download audio from URL, call Whisper API, return transcript
- Types: TranscribeRequestSchema (Zod), TranscribeResponse, SUPPORTED_AUDIO_TYPES
- Guards: 25MB size limit, 30s download timeout, 120s Whisper timeout, 429 rate limit
- Config: OPENAI_API_KEY, OPENAI_BASE_URL, WHISPER_MODEL env vars
- 12 new tests (schema validation + constants)
- Registered in server.ts alongside extract + task routes
2026-04-06 11:10:57 -07:00
saravanakumardb1
8e5403a47e chore(workflows): rename publish-outdated-packages → publish-outdated-pnpm-packages 2026-04-06 10:50:15 -07:00
saravanakumardb1
151e07207b feat(llm): add vision, streaming, and embedding support
- ContentPart types (TextContentPart, ImageUrlContentPart) for multipart messages
- ChatMessage.content now accepts string | ContentPart[] for vision
- EmbeddingRequest/Response types + optional embed() on LLMProvider
- chatCompletionStream() implemented in OpenAI + Azure providers (SSE parsing)
- embed() implemented in OpenAI + Azure providers
- Vision helpers: isVisionMessage, hasVisionContent, buildVisionMessage, getMessageText
- MockLLMProvider: streaming, embedding, vision content support
- 27 tests passing (up from 7)
2026-04-06 07:42:30 -07:00
43bf51a290 feat(llm): add Perplexity, Gemini providers and createFallbackChain
- Add PerplexityProvider (OpenAI-compatible, reads PERPLEXITY_API_KEY)
- Add GeminiProvider (Google Generative Language API adapter, reads GEMINI_API_KEY)
- Add createFallbackChain() — ordered provider chain, skips unconfigured,
  aggregates errors; allows any app to replace custom LLM fallback loops
- Extend LLMProviderType with 'perplexity' | 'gemini'
- Update factory to resolve and instantiate new provider types
- Add PAID_PROVIDERS to llm-router registry (OpenAI, Perplexity) for apps
  using round-robin routing alongside free-tier providers
- 27 tests covering fallback chain, new providers, error/edge cases

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 12:50:08 -07:00
saravanakumardb1
a762c5b07f docs: add Apple App Store + Google Play Store release guides
- APPLE/README.md: API key details, App Store Connect setup, TestFlight workflow, submission checklist, provisioning, screenshots/metadata requirements
- GOOGLE/README.md: Play Console setup, service account config, signing keys, AAB upload, testing tracks, data safety, content rating, submission checklist
2026-04-04 23:37:25 -07:00
saravanakumardb1
05594a334f feat(jobs): register devintelli-daily-sync cron job (0 6 * * *)
- Add devintelli-daily-sync handler: POST to DevIntelli backend /api/sync/daily
- Uses x-internal-key header for service-to-service auth
- Add DEVINTELLI_BACKEND_URL + DEVINTELLI_INTERNAL_API_KEY env vars
- Cron: 0 6 * * * (6am UTC daily), timeout: 5 min
- Returns triggered/skipped/totalConnections metrics from DevIntelli response
2026-04-04 23:37:25 -07:00
saravanakumardb1
89e200fa9f feat(flags): seed devintelli feature flags (11 flags)
- devintelli_enabled, devintelli_scan_enabled, devintelli_daily_sync
- 6 analytics panel flags (overview, commit, pr, review, language, productivity, repo)
- devintelli_billing_enabled (disabled by default)

Aligns with backend/src/lib/feature-flags.ts defaults
2026-04-04 23:37:25 -07:00
f8949d230f chore(admin-web): reduce high-signal lint warnings 2026-04-04 17:56:53 -07:00
631784e551 chore(admin-web): clear repo-wide lint errors 2026-04-04 17:50:20 -07:00
5e40cd1b6e docs(runtime): record Cowork checkpoint drill-in 2026-04-04 17:29:44 -07:00
82a44c249f feat(runtime): add Cowork checkpoint drill-in 2026-04-04 17:29:12 -07:00
9cc4bbe906 docs(runtime): record FlowMonk replay controls 2026-04-04 17:18:55 -07:00
cff76d9037 docs(ecosystem): add optional enhancement backlog 2026-04-04 17:03:37 -07:00
cedfacc408 docs(ecosystem): close hardening tracker gaps 2026-04-04 16:48:33 -07:00
066e75f0c3 docs(ecosystem): harden approvals marketplace and timeline policy 2026-04-04 16:47:20 -07:00
617d970718 docs(ecosystem): harden artifact lifecycle and event taxonomy 2026-04-04 16:45:58 -07:00
ab50831d28 docs(ecosystem): harden adoption coverage and governance 2026-04-04 16:44:52 -07:00
065c025854 docs(ecosystem): split remaining roadmap into hardening buckets 2026-04-04 16:37:27 -07:00
9e2257200c docs(ecosystem): add roadmap summary to tracker 2026-04-04 16:36:25 -07:00
51bbeb86fd docs(runtime): record FlowMonk live e2e verification 2026-04-04 16:33:03 -07:00
2a4d8a7b75 docs(runtime): record FlowMonk replay review 2026-04-04 15:02:26 -07:00
1c92284314 docs(runtime): clarify Cowork direct and projected states 2026-04-04 14:59:15 -07:00
ec593d722e docs(runtime): record FlowMonk checkpoint guidance 2026-04-04 14:57:52 -07:00
1addccfeb5 docs(runtime): record FlowMonk runtime drill-in 2026-04-04 14:40:03 -07:00
e3f72fa22d docs(runtime): record FlowMonk runtime review UI 2026-04-04 14:37:10 -07:00
e6fb20f86b docs(runtime): record checkpoint artifact id rollout 2026-04-04 14:27:34 -07:00
59ae0e1943 feat(runtime): add checkpoint artifact id contract 2026-04-04 14:27:26 -07:00
2d86c9801a docs(runtime): reconcile checkpoint refs and editing surfaces 2026-04-04 13:53:58 -07:00
32b46f0625 feat(cowork-service): map enriched checkpoint refs and IPC ids 2026-04-04 13:51:57 -07:00
41673125af docs(runtime): close checkpoint and primitive follow-through 2026-04-04 12:15:40 -07:00
9aeb9bbd59 feat(runtime): add checkpoint summaries to shared and cowork surfaces 2026-04-04 12:13:46 -07:00
3330ca55cd docs(runtime): define first conforming product plan 2026-04-04 11:52:32 -07:00
4bb8efe375 docs(runtime): define ActionTrail replay requirements 2026-04-04 11:45:12 -07:00
2ad979ce19 docs(runtime): define checkpoint and resume semantics 2026-04-04 11:44:26 -07:00
6eaf5980a7 docs(ecosystem): update timeline and runtime remainder 2026-04-04 11:41:39 -07:00
d328c7ad68 feat(admin-web): harden timeline review console 2026-04-04 11:40:56 -07:00
977d41486a docs(ecosystem): reconcile runtime lifecycle and verification 2026-04-04 11:38:07 -07:00
97b731e14f feat(cowork-service): add runtime todo projection 2026-04-04 11:32:46 -07:00
fdf9286e34 fix(audit): preserve source event timestamps 2026-04-04 11:27:21 -07:00
eee122506c docs(ecosystem): record canonical audit event id rollout 2026-04-04 11:21:08 -07:00
a57b367fe5 feat(cowork-service): prefer canonical audit event ids 2026-04-04 11:19:25 -07:00
69bced0a25 docs(ecosystem): record queued runtime commit 2026-04-04 11:12:19 -07:00