ACTIVITY-WP-0044: disabled repo-manager-bounded-freshness draft (RMGR-WP-0020-T03)
Register bounded operation repo_manager_freshness (single attempt, 300 s, code-fixed 'rmgr freshness run --limit N --max-seconds S [--dry-run]') and add the disabled cron definition (40 */2 * * * UTC, limit 6, max_seconds 240). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 692292@bnt-lap001 Assistant-Session: 89c7d8e8-e1b3-47eb-9411-a0ab227fca2f
This commit is contained in:
parent
c6df768ef0
commit
ba4ef00128
9 changed files with 449 additions and 2 deletions
|
|
@ -0,0 +1,72 @@
|
|||
---
|
||||
id: ACTIVITY-WP-0044
|
||||
type: workplan
|
||||
title: "Repo Manager bounded freshness ActivityDefinition (RMGR-WP-0020-T03)"
|
||||
domain: infotech
|
||||
repo: activity-core
|
||||
status: active
|
||||
owner: claude-activity-core
|
||||
topic_slug: activity-core
|
||||
created: "2026-10-04"
|
||||
updated: "2026-10-04"
|
||||
flavor: implementation
|
||||
related: [RMGR-WP-0020, STATE-WP-0094]
|
||||
---
|
||||
|
||||
Origin: Repo Manager RMGR-WP-0020-T03 hands Activity Core a draft definition
|
||||
for the bounded Forge-sourced freshness runner. Repo Manager owns the engine
|
||||
(`rmgr freshness run`, RMGR-WP-0020-T02) and receipts (T01); Activity Core owns
|
||||
the schedule. Source level only: no schedule enabled, no deployment, no
|
||||
credential handling, no run dispatched.
|
||||
|
||||
## Draft definition and bounded operation (disabled)
|
||||
|
||||
```task
|
||||
id: ACTIVITY-WP-0044-T01
|
||||
status: done
|
||||
priority: medium
|
||||
```
|
||||
|
||||
- `activity-definitions/repo-manager-bounded-freshness.md`: `enabled: false`,
|
||||
cron `40 */2 * * *` UTC, `misfire_policy: skip`, `limit: 6`,
|
||||
`max_seconds: 240`, `apply: true`; rule condition `False` (no task spawning).
|
||||
- ACT-ADR-007 registry entry `repo_manager_freshness` (source `repo-manager` /
|
||||
`freshness_run`): single Temporal attempt, timeout 300 s, admission requires
|
||||
explicit boolean `apply`, `limit` 1..12, `max_seconds` 1..270, and refuses
|
||||
any definition-supplied command/binary.
|
||||
- `context_resolvers/repo_manager.py`: code-fixed argv
|
||||
`rmgr freshness run --limit N --max-seconds S [--dry-run]` (executable from
|
||||
worker env `ACTIVITY_CORE_RMGR_BIN`, default `rmgr`); only a counted
|
||||
projection (receipt count per outcome, exit code) is persisted.
|
||||
- Tests: `tests/test_repo_manager_freshness_definition.py` (parse, admission,
|
||||
argv, projection, dispatch, DB sync stays disabled, schedule sync paused).
|
||||
|
||||
## Interface confirmation against the Repo Manager CLI
|
||||
|
||||
```task
|
||||
id: ACTIVITY-WP-0044-T02
|
||||
status: wait
|
||||
priority: medium
|
||||
needs_human: false
|
||||
blocking_reason: "rmgr freshness run is being built in RMGR-WP-0020-T02; JSON output (receipts[].outcome) assumed from the T01 receipt contract"
|
||||
depends_on: [RMGR-WP-0020-T01, RMGR-WP-0020-T02]
|
||||
```
|
||||
|
||||
When RMGR-WP-0020-T01/T02 land, confirm the CLI flags and that stdout is one
|
||||
JSON object with `receipts[]` carrying `repo-manager.freshness-receipt.v1`
|
||||
outcomes; adjust `normalize_operation_result` if the shape differs. Decide the
|
||||
worker image/packaging of `rmgr` (no deployment in this workplan).
|
||||
|
||||
## Founder-reviewed activation
|
||||
|
||||
```task
|
||||
id: ACTIVITY-WP-0044-T03
|
||||
status: wait
|
||||
priority: medium
|
||||
needs_human: true
|
||||
blocking_reason: "Activation follows RMGR-WP-0020-T04 and is a founder action"
|
||||
depends_on: [RMGR-WP-0020-T04]
|
||||
```
|
||||
|
||||
Flip `enabled: true` only after the RMGR-WP-0020-T04 manual dry-run/apply fires.
|
||||
Rollback: `enabled: false` (or `status: paused`).
|
||||
Loading…
Add table
Add a link
Reference in a new issue