airc-queue card
Coordinates work via the AIRC queue substrate (airc#562). Edit this card by commenting OR by running airc queue claim/airc queue release/airc queue heartbeat (later PRs).
{
"kind": "airc-queue-card-v1",
"id": "#1208",
"owner": "claude-tab-1",
"status": "merged",
"evidence": "Adopted existing GitHub issue into airc queue.",
"next_action": "Triage, claim, or close this adopted backlog card.",
"last_heartbeat": "2026-05-14T20:37Z @ 2405c83c8"
}
Close this issue when the work is done (status=merged/abandoned).
Original issue body
Pre-adoption body
Smell
Three files in cognition/persona Rust modules exceed the 500 LOC lint cap (likely cap; verify against the actual rust-max-lines config). Each is a sign of missing module split:
- `workers/continuum-core/src/persona/evaluator.rs` (1231 LOC) — mixes 5 admission gates + sleep mode + rate limiter + social signals
- `workers/continuum-core/src/persona/admission.rs` (1225 LOC) — core state machine + semantic-similarity scoring + context hashing
- `workers/continuum-core/src/cognition/model_resolver.rs` (1232 LOC) — resolver logic + tier matching + silicon residency filtering
Fix
For each, extract concerns into submodules:
evaluator.rs split
- `evaluator/mod.rs` (orchestration only, <500 LOC)
- `evaluator/sleep_mode.rs`
- `evaluator/rate_limiter.rs`
- `evaluator/social_signals.rs`
- `evaluator/gates/{social,topic,addressed,recent_self,no_op}.rs`
admission.rs split
- `admission/mod.rs` (state machine, <500 LOC)
- `admission/scoring.rs` (semantic-similarity)
- `admission/context_hash.rs` (hashing)
model_resolver.rs split
- `model_resolver/mod.rs` (resolver, <500 LOC)
- `model_resolver/hw_tier_matching.rs`
- `model_resolver/silicon_residency.rs`
Same pattern as the `MetalMonitor` + `FootprintRegistry` modular submodule splits already shipped (tasks #45 + #46 in local task history).
Acceptance
- All three files under 500 LOC after split
- No public API surface change
- Tests still pass
Refs
Status log
airc-queue card
Coordinates work via the AIRC queue substrate (airc#562). Edit this card by commenting OR by running
airc queue claim/airc queue release/airc queue heartbeat(later PRs).{ "kind": "airc-queue-card-v1", "id": "#1208", "owner": "claude-tab-1", "status": "merged", "evidence": "Adopted existing GitHub issue into airc queue.", "next_action": "Triage, claim, or close this adopted backlog card.", "last_heartbeat": "2026-05-14T20:37Z @ 2405c83c8" }Close this issue when the work is done (status=merged/abandoned).
Original issue body
Pre-adoption body
Smell
Three files in cognition/persona Rust modules exceed the 500 LOC lint cap (likely cap; verify against the actual rust-max-lines config). Each is a sign of missing module split:
Fix
For each, extract concerns into submodules:
evaluator.rs split
admission.rs split
model_resolver.rs split
Same pattern as the `MetalMonitor` + `FootprintRegistry` modular submodule splits already shipped (tasks #45 + #46 in local task history).
Acceptance
Refs
Status log
2026-05-15T14:48Z — merged via PR refactor(persona): split admission.rs (1225 LOC) into mod + recipes (#1208) #1251 @ cc885c6 (closed by github-actions[continuum#1142])
2026-05-14T22:35Z — merged via PR refactor(cognition): split model_resolver.rs (1232 LOC) into mod + types (#1208) #1249 @ 0ca0f57 (closed by github-actions[continuum#1142])
2026-05-14T21:28Z — merged via PR refactor(persona): split evaluator.rs (1231 LOC) into focused submodules (#1208) #1242 @ f9d080b (closed by github-actions[continuum#1142])
2026-05-14T21:28Z — airc-8a5e-bc43 -> status=merged
2026-05-14T20:37Z — claim by claude-tab-1 -> status=review
2026-05-14T20:26Z — claim by claude-tab-1 -> status=in-progress