feat: comprehensive docs, unit tests, docker-compose app services
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/build-3 Pipeline was successful
ci/woodpecker/push/build-2 Pipeline failed
ci/woodpecker/push/finalize unknown status
ci/woodpecker/push/build-1 Pipeline failed
Build and Push / lint-and-test (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.adapters.broker_adapter name:broker-adapter]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.aggregation.worker name:aggregation]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.extractor.worker name:extractor]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.ingestion.worker name:ingestion]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.lake_publisher.worker name:lake-publisher]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.parser.worker name:parser]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.recommendation.worker name:recommendation]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.scheduler.app name:scheduler]) (push) Has been cancelled
Build and Push / build-services (map[cmd:uvicorn services.api.app:app --host 0.0.0.0 --port 8000 name:query-api]) (push) Has been cancelled
Build and Push / build-services (map[cmd:uvicorn services.risk.app:app --host 0.0.0.0 --port 8000 name:risk]) (push) Has been cancelled
Build and Push / build-services (map[cmd:uvicorn services.symbol_registry.app:app --host 0.0.0.0 --port 8000 name:symbol-registry]) (push) Has been cancelled
Build and Push / build-services (map[cmd:uvicorn services.trading.app:app --host 0.0.0.0 --port 8000 name:trading-engine]) (push) Has been cancelled
Build and Push / build-dashboard (push) Has been cancelled
Build and Push / build-superset (push) Has been cancelled
Build and Push / integration-test (push) Has been cancelled
Build and Push / beta-gate (push) Has been cancelled

- Add scheduler and ingestion unit tests (test_scheduler_unit.py, test_ingestion_unit.py)
- Add all 13 app services + dashboard to docker-compose.yml
- Add full documentation suite: API reference, Helm reference, Docker deployment guide,
  3 architecture diagrams (K8s, Docker Compose, data pipeline), AI agent guide,
  backup/restore guide, observability/metrics reference, per-service docs
- Add intelligence pipeline deep-dive docs with Mermaid diagrams
- Update README with documentation index and links
- Add specs for comprehensive-quality-docs, intelligence-pipeline-deep-dive,
  sanitized-pipeline-docs
This commit is contained in:
Celes Renata
2026-04-22 02:56:41 +00:00
parent f251c53f92
commit 88ad1e8d99
57 changed files with 13318 additions and 51 deletions
@@ -0,0 +1,58 @@
# Weighted Signal Computation
```mermaid
flowchart TD
DOC["Document Signal Input\n(published_at, source_credibility,\nnovelty_score, extraction_confidence,\nmarket_ctx)"]
DOC --> GATE
DOC --> REC
DOC --> CRED
DOC --> NOV
DOC --> MKT
subgraph GATE["Confidence Gate"]
G1["extraction_confidence ≥ 0.2?"]
G1 -->|"Yes"| G2["gate = 1.0"]
G1 -->|"No"| G3["gate = 0.0\n(signal zeroed out)"]
end
subgraph REC["Recency Decay"]
R1["w = 2^(age_hours / half_life)"]
R2["Half-lives per window:\nintraday: 2h\n1d: 12h\n7d: 72h\n30d: 240h\n90d: 720h"]
R3["Floor: min_recency_weight = 0.01"]
R1 --- R2
R1 --- R3
end
subgraph CRED["Source Credibility"]
C1["Clamp to [0.1, 1.0]"]
C2["Apply exponent\n(default 1.0)"]
C1 --> C2
end
subgraph NOV["Novelty Bonus"]
N1["bonus = novelty_score × 0.25"]
N2["Range: [0.0, 0.25]\n(up to 25% boost)"]
N1 --- N2
end
subgraph MKT["Environmental Context Multiplier"]
M1["Volatility boost\nlog₁₊(excess) × 0.15\ncapped at 0.30"]
M2["Volume surge boost\nvolume_change > 50% → +0.15"]
M3["multiplier = 1.0 + boost\n(always ≥ 1.0)"]
M1 --> M3
M2 --> M3
end
GATE --> FORMULA
REC --> FORMULA
CRED --> FORMULA
NOV --> FORMULA
MKT --> FORMULA
FORMULA["combined = gate × recency × credibility\n× (1 + novelty_bonus)\n× market_context_multiplier"]
FORMULA --> SW["SignalWeight\nservices/aggregation/scoring.py"]
SW --> WS["WeightedSignal\n{ document_id, weight: SignalWeight,\nsentiment_value, impact_score }"]
```