Commit graph naco-api/internal/store/models.go
Author SHA1 Message Date
0dcb74675e fix(analytics,x402): fix coverage gaps, engagement drivers, and Twitter cost passing
Analytics review fixes:
- Store Twitter analytics coverage as discrete intervals instead of a single
  contiguous window so disjoint fetch ranges no longer mask inner gaps as
  covered (fetch per uncovered range, add gap regression tests)
- Compute real AvgEngagement/Correlation in getEngagementDrivers instead of
  all-zero placeholders
- Make parseAnalyticsTimeRange surface invalid timestamps, cap merged analytics
  posts at limit, and normalize sentiment by timestamped posts only
- gofmt: fix misalignment in config.go and types.go
- Include Twitter in the default aggregate analytics scope; its API costs are
  passed to the caller through paid tool pricing

x402 cost passing:
- computeTwitterStyleProfileCost now charges base cost ($0.10) + user lookup
  ($0.01) + $0.005 per Twitter post, guaranteeing the charge always clears the
  underlying API cost (never break-even or loss)
- Return a $-prefixed dollar string for the settlement override, fixing the
  previously off-by-factor-100 raw-atomic-unit amount
- Raise getStyleProfile base registration to $0.36 to authorize the max Twitter
  charge
- Add tests for the cost formula, profitable floor, and dollar formatting
2026-09-02 22:44:02 +00:00
c851d0e50f store: add sqlc queries for analytics cache, posts and coverage 2026-09-02 23:49:35 +02:00
63709524de db: make migrations idempotent, regenerate store, minor cleanup
- schema: add IF NOT EXISTS to CREATE TABLE/INDEX for idempotent migrations
- store: regenerate with sqlc v1.31.1 (adds UserStylePost, interface{} for Embedding)
- webhook: minor formatting cleanup
2026-09-01 23:42:23 +02:00
e54d17736b Complete Matrix webhook integration and interface{}→any migration
- Add MATRIX_WEBHOOK_URL and MATRIX_SERVER_ID config fields (optional, defaults to hostname)
- Create internal/server/webhook.go: WebhookSender with exponential backoff retry (5 attempts),
  first/last attempt logging, non-blocking goroutine integration
- Wire webhook into OnAfterSettle callback in server.go (goroutine, fire-and-forget)
- Migrate all persistent interface{} to any (Go 1.25.4 convention):
  db.go: ...any in DBTX interface
  models.go: Embedding any
  FindSimilarUsers.sql.go: QueryEmbedding any, Embedding any
  UpsertStyleProfiles.sql.go: Embedding any
- Migrate server.go map[string]interface{} to map[string]any in webhook payload
- Add TestStoreSaveTransaction integration test (skipped without TEST_DATABASE_URL)
- Add TestSettleHook unit test for param mapping
2026-08-31 01:02:55 +02:00
9918134fd0 Add ModelVersion/SchemaVersion/AlgorithmVersion fields to UserStyleProfile and update db.go version
- Add missing ModelVersion, SchemaVersion, AlgorithmVersion fields to UserStyleProfile struct
- Update sqlc version from v1.30.0 to v1.31.1 in db.go and models.go
- Fix any/interface{} type consistency in db.go
2026-08-30 22:42:47 +02:00
bd707cf2ca refactor: replace interface{} with any
- convert remaining interface{} usages to any in store, utils, bluesky
- consolidate pgvector extension drop into 002 migration
2026-08-30 16:03:03 +02:00
b87910d1c4 Major changes 2025-12-02 19:33:03 +00:00
af58fdeeab initial commit 2025-10-25 01:06:02 +00:00