Repository navigation
Umbrella: canonical-naming — eliminate Enhanced/Unified/Consolidated/V2 prefixes repo-wide #10666
Copy link
Copy link
Closed
1 / 21 of 2 issues completedClosed
1 / 21 of 2 issues completed
Copy link
Labels
backendmaintainabilitytechnical-debtumbrellaEpic/umbrella tracking issue grouping member issuesEpic/umbrella tracking issue grouping member issues
Description
Umbrella: canonical-naming — eliminate Enhanced/Unified/Consolidated/V2 prefixes repo-wide
Goal
Collapse every Enhanced*/Unified*/Consolidated*/*V2 prefixed entity (class, function, file, package, method) into ONE canonical plain-named implementation — merging logic, not just renaming. No prefixed names, no EnhancedX = X aliases anywhere.
Mandate (owner 2026-06-29)
- For every collision / file-pending-deletion: pick the canonical, fold the duplicate's unique behavior into it (wire-in BEFORE delete), migrate ALL callers, delete the redundant.
- Deprecated duplicate public endpoints/methods: REMOVE them, fold logic into the canonical.
- Field-name conflicts: pydantic
validation_alias/AliasChoices— one class, not two. - Genuinely-different concepts that merely share a post-strip name: give DISTINCT descriptive names (not a blind collide).
- KEEP
FlashAttentionV2(published algorithm name; document as ARCHITECTURE_EXCEPTION).
Acceptance criteria (umbrella)
-
git grep -wE "Enhanced[A-Z]|Unified[A-Z]|Consolidated[A-Z]|[A-Za-z]V2"(code identifiers) = 0 repo-wide exceptFlashAttentionV2. - No prefixed aliases; every canonical concept has exactly one implementation.
-
py-duplicate-conceptrule promoted warn→BLOCK once count = 0 (completes feat(lint): make canonical-check self-enforcing — add rules + fix the Make target #10577 / Umbrella: canonical-debt — converge non-canonical code + make canonical-check self-enforcing #10569 self-enforcing AC). - startup-import smoke + flake8/black green; behavior preserved (no lost methods/security checks).
Task tree (one PR each)
- chat schemas — ChatMessage/ChatHealthData (+Enhanced* folded) → PR refactor(schemas): consolidate ChatMessage + ChatHealthData pairs in schemas_chat.py (#10654) #10663
- B1 api-schemas — SearchRequest 3-way collapse (validation_alias), GoalPayload, KBSearchResponse, Enhanced* data renames → PR refactor(schemas): B1 api-schema naming consolidation — strip Enhanced*/Consolidated*/Unified* prefixes #10671 (Closes refactor(api): consolidate duplicate base/Enhanced request schemas (ChatMessage, SearchRequest, GoalPayload, ChatHealthData) #10654)
- search endpoints — fold /enhanced_search,/rag_search,/similarity_search,/enhanced_search_v2 → one /search; remove deprecated routes → PR refactor(knowledge-search): remove deprecated /enhanced_search /rag_search /similarity_search /enhanced_search_v2, fold into /search (#10666) #10688
- B2 memory — UnifiedMemoryManager→MemoryManager (+services/memory MemoryManager folded as _ProviderRouter); alias removed → PR refactor(memory): B2 consolidate MemoryManager — rename UnifiedMemoryManager, fold provider router, delete duplicate #10686
- B3 orchestration — enhanced_orchestration/ (24) merged into orchestration/ (51); package deleted → PR refactor(orchestration): B3 merge enhanced_orchestration into orchestration (#10666) #10690
- B4 secrets-vault — UnifiedSecretsService→EnvelopeSecretsService (distinct from legacy SecretsService — Umbrella/PRD: unify AutoBot secrets — one RBAC-governed store, vaults + one key abstraction (replaces 11 stores, 5 keys, 2 UIs) #10088 owns the legacy→envelope merge); unified_credential/audit/vault_client renames → PR refactor(secrets): strip Unified*/Enhanced* prefixes — B4 secrets-vault consolidation (#10666) #10694
- B7 api-routes — handler fn renames (enhanced_search→search etc.), enhanced_search.py→search.py → PR refactor(api-routes): B7 — strip Enhanced*/Consolidated*/Unified* prefixes from route handler functions + rename enhanced_search.py → search.py #10685
- B8 shared-plugin-sdk — UnifiedRegistry→Registry → PR refactor(plugin_sdk): rename UnifiedRegistry → Registry (#10666) #10670
- B9 gateway-message — UnifiedMessage ×2 → GatewayMessage + ChannelMessage → PR refactor(gateway): resolve UnifiedMessage clash → GatewayMessage + ChannelMessage #10680
- B10 misc — EnhancedProjectStateTracker→ProjectStateTracker, fn/test renames → PR refactor(misc): B10 misc naming consolidation — strip Enhanced*/v2/unified_ from misc classes/fns/tests (#10666) #10684
- B5 llm/knowledge/multimodal — UnifiedKnowledgeManager/LLMInterface/MultiModalProcessor + KB 3-search-method fold + v2-method rename → PR (in progress)
- B6 security/terminal — EnhancedSecurityLayer/FixAgent folded, ConsolidatedTerminal* renamed, *_v2 approval methods → PR refactor(security-terminal): strip Enhanced*/Consolidated*/*_v2 prefixes — consolidate, not alias (#10666) #10696 (CI)
- Final cleanup — residual migration comments +
test_search_kb_..._v2name; verify ZERO prefixes repo-wide; promotepy-duplicate-concept→BLOCK; document FlashAttentionV2 exception.
Related issues
- refactor(api): consolidate duplicate base/Enhanced request schemas (ChatMessage, SearchRequest, GoalPayload, ChatHealthData) #10654 (API-schema duplicate consolidation) — Closed by B1.
- Umbrella/PRD: unify AutoBot secrets — one RBAC-governed store, vaults + one key abstraction (replaces 11 stores, 5 keys, 2 UIs) #10088 (unify secrets — legacy SecretsService → envelope) — pre-existing epic; B4 only de-prefixed, did NOT force-merge (correct).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
backendmaintainabilitytechnical-debtumbrellaEpic/umbrella tracking issue grouping member issuesEpic/umbrella tracking issue grouping member issues
Activity
mrveiss commentedon Jun 29, 2026
Batch plan (from audit) + owner decisions
~86 prefixed entities → 10 PRs. Collisions solved per canonical-coding: same concept→fold into one; different concepts that clash→distinct descriptive names.
Closes #10654Decisions (owner 2026-06-29): UnifiedMessage → two distinct names (GatewayMessage/ChannelMessage). FlashAttentionV2 → kept (published algorithm name; document as ARCHITECTURE_EXCEPTION).
Rules per batch: no aliases;
git grep <oldname>=0 after each; rename def + ALL refs atomically; validation_alias for field-name conflicts; startup-import smoke + flake8/black green.refactor(plugin_sdk): rename UnifiedRegistry → Registry, unified_regi…
refactor(schemas): B1 api-schema naming consolidation — strip Enhance…
refactor(schemas): B1 api-schema naming consolidation — strip Enhance…
refactor(gateway): resolve UnifiedMessage name clash → GatewayMessage…
mrveiss commentedon Jun 29, 2026
Renaming a prefixed name only removes duplication when the underlying logic is merged. For EVERY collision / file-pending-deletion:
Deprecated duplicate public endpoints/methods (owner decision): REMOVE them — fold logic into the canonical, migrate internal callers, delete the deprecated route/method (clients on already-deprecated surfaces break by design).
Concrete pending logic-consolidations (not just renames)
/search+ deprecated/enhanced_search,/enhanced_search_v2) → ONE/search(fold logic, remove deprecated routes). [B7]*_v2methods → fold into base, remove.Pure renames (no base/duplicate: UnifiedRegistry✓, UnifiedMessage-split✓, UnifiedLLMInterface, etc.) stay simple renames.
refactor(misc): delete legacy enhanced_project_state_tracker.py from …
refactor(gateway): resolve UnifiedMessage clash → GatewayMessage + Ch…
refactor(misc): B10 misc naming consolidation — strip Enhanced*/v2/un…
refactor(api-routes): B7 — strip Enhanced*/Consolidated*/Unified* pre…
refactor(api-routes): B7 — strip Enhanced*/Consolidated*/Unified* pre…
22 remaining items
style: auto-format post-rename files (black --line-length=120) (#10666)
refactor(naming): B6 final cleanup — eliminate all Enhanced/Unified/V…
github-actions commentedon Jun 30, 2026
PR #10733 (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.
mrveiss commentedon Jun 30, 2026
✅ Complete — zero prefixed code identifiers repo-wide
All 13 PRs merged (12 batches + final cleanup #10733). Verified on
Dev_new_gui:FlashAttentionV2remains (documented in ARCHITECTURE_EXCEPTIONS.md as the published algorithm name).py-duplicate-conceptpromoted warn→BLOCK (0 violations) — completes the self-enforcing goal.Residual (separate, intentional): URL route paths
/enhanced-memory,/unified/searchleft unchanged (external API contracts — code identifiers renamed, paths need deliberate API versioning). Closing.fix(lint): py-hardcoded-url prod-scope + correct BLOCK severity in ru…
fix(celery): explicit logged reconciliation of persisted Beat schedule (
fix(tests): repoint stale singleton/subpackage imports in dead test c…
fix(knowledge): repair 4 broken KB-search call sites found by #13009'…
fix(security-api): restore dropped response payload, stop swallowing …
refactor(memory): move get_memory_manager beside the class it constru…
refactor(memory): move get_memory_manager beside the class it constru…
fix(infrastructure): unbreak two operator scripts and nl_database's s…