36 lines
1.9 KiB
Markdown
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.
|