Back to Codexbar

Macro refactor ideas

docs/refactor/macros.md

0.241.2 KB
Original Source

Macro refactor ideas

  1. Macro ergonomics + errors
  • Emit compile-time errors when a macro is attached to the wrong target or missing descriptor/init.
  • Add a member macro to generate static let descriptor from makeDescriptor() to remove boilerplate.
  1. Descriptor/data shape
  • Split ProviderDescriptor into Descriptor + FetchPlan + Branding + CLI files for cleaner deps.
  • Move source label into fetch results (strategy-specific).
  1. Fetching pipeline
  • Return all attempted strategies + errors for debug UI and CLI --verbose.
  1. Registry order & stability
  • Use ProviderDescriptorRegistry registration order for all; no sorting by rawValue.
  • Use metadata flags (e.g. isPrimaryProvider) instead of hard-coded Codex/Claude.
  1. Account/identity
  • Replace Codex UI special casing with a descriptor flag (e.g. usesAccountFallback).
  • Enforce provider-keyed identity in snapshots to avoid cross-provider display.
  1. Settings + tokens
  • Move Zai/Copilot token lookup into strategy-local resolvers (Keychain/env).
  • Add optional per-provider settings fields in ProviderSettingsSnapshot.
  1. Docs + tests
  • Add a minimal provider example in docs/provider.md.
  • Add registry completeness + deterministic-order test.