Files
clawfort/openspec/changes/archive/2026-02-13-p02-force-fetch-command/proposal.md

36 lines
1.9 KiB
Markdown

## Why
ClawFort currently fetches news on a fixed hourly schedule, which is not enough during first-time setup or after a failed API cycle. Operators need a reliable way to force an immediate news pull so they can bootstrap content quickly and recover without waiting for the next scheduled run.
## What Changes
- **New Capabilities:**
- Add a manual Python command to trigger an immediate news fetch on demand.
- Add command output that clearly reports success/failure, number of fetched/stored items, and error details.
- Add safe invocation behavior so manual runs reuse existing fetch/retry/dedup logic.
- **Backend:**
- Add a CLI entrypoint/script for force-fetch execution.
- Wire the command to existing news aggregation pipeline used by scheduled jobs.
- Return non-zero exit codes on command failure for operational automation.
- **Operations:**
- Document how and when to run the force-fetch command (initial setup and recovery scenarios).
## Capabilities
### New Capabilities
- `force-fetch-command`: Provide a Python command that triggers immediate news aggregation outside the hourly scheduler.
- `fetch-run-reporting`: Provide operator-facing command output and exit semantics for successful runs and failures.
- `manual-fetch-recovery`: Support manual recovery workflow after failed or partial API fetch cycles.
### Modified Capabilities
- None.
## Impact
- **Code:** New CLI command module/entrypoint plus minimal integration with existing `news_service` execution path.
- **APIs:** No external API contract changes.
- **Dependencies:** No required new runtime dependencies expected.
- **Infrastructure:** No deployment topology change; command runs in the same container/runtime.
- **Environment:** Reuses existing env vars (`PERPLEXITY_API_KEY`, `OPENROUTER_API_KEY`, `IMAGE_QUALITY`).
- **Data:** No schema changes; command writes through existing dedup + persistence flow.