Skip to content

Automate manuals extraction as part of ABI fanout #340

@murderteeth

Description

@murderteeth

Problem

When new entries are added to config/manuals.yaml, they require a manual deployment ritual to take effect: SSH into the ingest shell, navigate to terminal, and trigger extract manuals. This is error-prone and blocks vault initialization behind human intervention.

Solution

Add the manuals extraction call to AbisFanout.fanout() in packages/ingest/fanout/abis.ts. The ABI fanout already runs on a 15-minute cron and handles things discovery — manuals are just another source of things.

Tasks

  • Add manuals extraction to AbisFanout.fanout()
    At the top of the fanout method, before the ABI loop, enqueue mq.job.extract.manuals. Manuals define things that the subsequent fanout loop may need to process, so they should be extracted first.

  • Update docs/manuals.md
    Keep the manual shell steps but document that manuals are now extracted automatically as part of the ABI fanout cycle.

Acceptance Criteria

  • Manuals extraction runs automatically every 15 minutes as part of the ABI fanout
  • Manuals are extracted before the ABI source/thing fanout loop
  • Repeated runs remain safe (upsertThing is already idempotent)
  • Manual terminal trigger still works as a fallback

Notes

  • upsertThing uses ON CONFLICT ... DO UPDATE with defaults merging, so repeated extraction is safe
  • The manuals extractor is trivial — just iterates entries and enqueues load.thing jobs
  • Keeps the "one consolidated cycle" pattern the project has converged on

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions