saravanakumardb1
548f7199bf
fix(extraction-service): fix QueueJob generic type mismatch in createJob
...
enqueue() returns QueueJob<TPayload, unknown> since no result exists at
enqueue time. mapQueueJob expects ExtractionJobResult. Cast at the call
site since newly enqueued jobs have undefined result and all accesses
use optional chaining.
2026-03-19 18:12:34 -07:00
root
2b4fccb744
feat(queue): add durable worker runtime and extraction integration
2026-03-14 06:25:10 +00:00
saravanakumardb1
038cf30aca
fix(jobs): implement stub job handlers with actual functionality
2026-03-02 10:19:15 -08:00
saravanakumardb1
41b32a840f
fix(extraction-service): export rate limit cleanup functions for graceful shutdown
2026-03-02 10:16:24 -08:00
saravanakumardb1
aeae62027f
fix(telemetry): remove redundant event.userId check in cluster affected users dedup
2026-03-02 10:13:47 -08:00
saravanakumardb1
770bc5ae51
feat(referrals): partition key migration to /referrerId with dual-write backfill
2026-03-02 10:04:57 -08:00
saravanakumardb1
3e05260a6f
feat(marketplace): generic template marketplace with listings, reviews, installs, certification
2026-03-02 10:02:54 -08:00
saravanakumardb1
ee9d4b358d
feat(cloud-agnostic): complete Sprints 4-6 — secrets consumer migration, @bytelyst/speech package, push verified
2026-03-02 09:46:24 -08:00
saravanakumardb1
89b6588e1d
feat(extraction): add timer-parse built-in task for ChronoMind NL parsing — 6 classes, 3 examples
2026-02-27 23:16:27 -08:00
saravanakumardb1
fbb2197f7c
test(platform-service): add repository tests for notifications, plans, subscriptions, usage, tokens, memory + fix extraction-service flaky test
2026-02-16 11:59:06 -08:00
saravanakumardb1
81999dcbb3
feat(services): wire AKV secret resolution in platform-service and extraction-service startup
2026-02-14 22:18:01 -08:00
saravanakumardb1
5c1744d3a4
feat(extraction): Phase 6 advanced features (6.1-6.8)
...
- 6.1-6.2: Entity visualization components (bar chart, pie chart, timeline) [in LysnrAI repo]
- 6.3-6.4: Async job queue — POST /extract/jobs, GET /extract/jobs/:id, GET /extract/jobs
- 6.5-6.6: Model registry with tier (standard/premium/free/mock) + GET /extract/models
- 6.7-6.8: Multi-language detection (es/fr/de/pt/ja/zh/ko/ar) + prompt enrichment
- ExtractMetadata.language field added to Python models
- 46 TS tests passing, build clean
2026-02-14 14:08:02 -08:00
saravanakumardb1
b8c0a73e89
feat(extraction): Phase 5 observability + error handling (5.7-5.12)
...
- 5.7: Enhanced structured logging with userId, productId, cacheHit, tokenCount
- 5.8: Metrics module (counters + histograms) + /extract/metrics endpoint
- 5.9: Grafana dashboard config for extraction-service (Loki queries)
- 5.10: Error mapping — sidecar errors → proper HTTP status codes (408, 429, 502, 503)
- 5.11: Circuit breaker for Python sidecar (5 failures → 30s OPEN)
- 5.12: Graceful degradation — circuit open returns 503, cached results still served
- 46 TS tests passing
2026-02-14 14:04:59 -08:00
saravanakumardb1
9c8a3169dc
feat(extraction): Phase 5 caching + cost controls (5.1-5.6)
...
- 5.1: Python sidecar LRU cache (cache.py) with configurable TTL + max size
- 5.2: Fastify-level cache with X-Extraction-Cache HIT/MISS header + /extract/cache-stats
- 5.3-5.5: Per-user daily quota (free=10, pro=100, enterprise=unlimited) with 429 response
- 5.6: GET /extract/usage endpoint for admin usage reporting
- Both Python + TS caches use sha256(taskId:modelId:text) keys
- 46 TS tests + 29 Python tests still passing
2026-02-14 14:02:21 -08:00
saravanakumardb1
c9d5c0caed
feat(extraction): integration tests + Python tests + fix langextract API
...
- 6 route integration tests (mock sidecar via vitest vi.mock)
- 12 task CRUD route tests (mock repository)
- 29 Python tests: 10 extractor, 12 models, 7 app endpoints
- Fix extractor.py: correct lx.extract() API (text_or_documents positional, prompt_description)
- Mock fallback when no GEMINI_API_KEY or USE_MOCK_EXTRACTOR=true
- 46 TS tests + 29 Python tests = 75 total
2026-02-14 13:49:18 -08:00
saravanakumardb1
6a49823e1d
feat(extraction): add task seed module + 7 seed tests
...
- seed.ts: 5 built-in task definitions with idempotent upsert
- seed.test.ts: 7 tests validating task schema compliance
- 28 total tests passing
2026-02-14 13:36:46 -08:00
saravanakumardb1
0a87d1937b
feat(extraction): add rate limiting + 21 schema tests
...
- Rate limiting on extract routes (30 req/min per IP via @fastify/rate-limit)
- 13 tests for ExtractRequestSchema, BatchExtractRequestSchema, ExtractionExampleSchema
- 8 tests for ExtractionTaskSchema, CreateTaskSchema, UpdateTaskSchema
- All 21 tests passing, pnpm build clean
2026-02-14 13:34:26 -08:00
saravanakumardb1
c292bb5cc1
feat(extraction): scaffold extraction-service + @bytelyst/extraction package
...
- extraction-service: Fastify scaffold (port 4005) with extract/tasks modules
- src/lib/: config, errors, cosmos, product-config, python-bridge
- src/modules/extract/: types (Zod schemas), routes (POST /extract, batch, models)
- src/modules/tasks/: types, repository (Cosmos CRUD), routes (CRUD endpoints)
- Python sidecar: FastAPI app, LangExtract wrapper, models, task registry
- @bytelyst/extraction package: types, client factory, index exports
- Both pnpm build pass clean
2026-02-14 13:31:40 -08:00