You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A grep over autobot-backend/ for class .+Status.*Enum.*: returns 15+ separate status enums, most of which share the canonical job-lifecycle values pending/running/completed/failed/cancelled:
File
Enum
project_state_manager.py
ValidationStatus
enterprise_feature_manager.py
FeatureStatus
async_chat_workflow.py
KnowledgeStatus
phase_progression_manager.py
PhasePromotionStatus
temporal_knowledge_manager.py
FreshnessStatus
integrations/base.py
IntegrationStatus
workflow_scheduler.py
WorkflowStatus
orchestrator.py
WorkflowStatus ← defined twice
enhanced_memory_manager_async.py
TaskStatus
planner/types.py
StepStatus, PlanStatus
utils/todowrite_optimizer.py
TodoStatus
utils/service_registry.py
ServiceStatus
utils/task_queue.py
TaskStatus ← also defined twice (different from memory_manager one)
utils/monitoring_alerts.py
AlertStatus
Two separate WorkflowStatus and two separate TaskStatus are independent definitions that drift over time. The ARC Prize plugin design surfaced this when picking the status enum for Run and SolverExecution — there is no canonical JobStatus to reuse.
Proposed change
Mirror the approach in #6689 (Severity / RiskLevel consolidation):
Define autobot_shared/constants/status_enums.py:JobStatus with the canonical lifecycle: PENDING, RUNNING, SUCCEEDED, FAILED, TIMEOUT, CANCELLED, COMPLETED
Audit the 15+ existing enums — for each, decide:
ReuseJobStatus directly (likely most cases)
Extend via class <Specific>Status(str, Enum) reusing canonical values + adding domain-specific ones (e.g., IntegrationStatus.CONFIGURED doesn't fit lifecycle)
Keep if genuinely orthogonal (e.g., FreshnessStatus is data-age semantics, not lifecycle)
Resolve the two WorkflowStatus and two TaskStatus duplicates — pick one canonical, migrate callers, delete the other.
Add a pre-commit lint rule rejecting new *Status(Enum) definitions outside constants/status_enums.py unless explicitly whitelisted.
Activity
docs(specs): add ARC Prize plugin Phase 1 design spec
refactor(types): consolidate Workflow/Job *Status enums onto canonica…
refactor(types): consolidate Workflow/Job *Status enums onto canonica…
github-actions commentedon May 8, 2026
PR #7266 (merged to
Dev_new_gui) references this issue with a close keyword.If this issue is fully resolved, close it manually. If work remains, no action is needed.
docs: refresh stale status/changelog and canonical TaskStatus examples
docs: refresh stale status/changelog and canonical TaskStatus examples (
refactor(knowledge): grounding stats and the grounded agent's data mo…
refactor: retire the ServiceStatus and SourceType forks (#12771)
refactor(forks): retire fifteen forks across eight issues, each onto …
refactor(forks): retire fifteen forks across eight issues, each onto …
refactor(infra): one ServiceRegistry for the deployment scripts (mrve…