Skip to content

perf(cognition): split files >1000 LOC — evaluator.rs (1231), admission.rs (1225), model_resolver.rs (1232) #1208

Description

@joelteply

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    airc-queueAIRC-backed agent work queue card

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions