Skip to content

feat(source): ship governed AIHOT REST v1 data ingestion #141

Description

@1012839419a-alt

Parent: #130
Source audit: #135 / commit 81ab347dc082954bf35d1cfe9d549ebf404e5533

Goal

Ship AIHOT as the first real, license-aware hot-data reference source through the existing Source -> WorkflowRun -> Record -> MCP evidence chain. This is one vertical slice; do not add a parallel hot-news API or per-provider MCP facade.

Execution contract

  • Worktree: D:\projects\opencli-aihot-source-20260914
  • Branch: codex/aihot-source-20260914
  • Baseline: 6b7c69e0d7f1767d7101336cfeb68e869c772fdf
  • Owned paths:
    • _bmad-output/implementation-artifacts/spec-gh-141-aihot-source.md
    • backend/channels/aihot_channel.py
    • backend/channels/registry.py
    • backend/schemas/source.py
    • backend/workflow/capability_projection.py
    • frontend/lib/workflow/node-contracts.ts
    • frontend/lib/workflow/studio-templates.ts
    • tests/unit/channels/test_aihot_channel.py
    • tests/unit/test_workflow_http_source_executor.py
    • tests/integration/test_records_api.py
    • tests/unit/test_mcp_server.py
  • Do not change shared models/migrations, generic MCP tool names, research service, or package files. Unexpected need expands upward first.

Required behavior

  • Anonymous read-only AIHOT REST v1 on aihot.news only; never old /api/public/*.
  • Channel is incremental + paginated with explicit no-auth readiness and stable identity.
  • Preserve opaque page/snapshot/change cursors, ETag/304 semantics, 409 snapshot_required rebootstrap, Problem JSON, Retry-After, and forward-compatible unknown fields.
  • Preserve attribution, source/original links, publishedAt/discoveredAt/latestAt distinctions, raw/normalized/lineage/hash/identity; do not infer missing timestamps or heat.
  • Publish one versioned intelligence.source.aihot capability with allowed_domains fixed to aihot.news and a Studio template.
  • Usage/commercial authorization must be surfaced as a readiness/manifest condition: internal/non-commercial allowed; external commercial redistribution requires written authorization.
  • Existing workflow/MCP tools execute/read the source; no duplicate AIHOT MCP tool.

Acceptance

Unit tests for 200/304, pagination, invalid/cross-query cursor, 400, 409 rebootstrap, 429/503 Retry-After, identity, schema addition, attribution and timestamps. Integration verifies update-by-identity without duplicate records and no credential leakage. Live canary: items first request + conditional request, then hot-topics provenance/freshness. Report fixture vs live evidence and keep worktree clean.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions