arch: split circuitforge-core into MIT infrastructure layer + BSL 1.1 orchestration layer #24
Labels
No labels
architecture
backlog
enhancement
module:documents
module:hardware
module:manage
module:pipeline
module:voice
priority:backlog
priority:high
priority:medium
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/circuitforge-core#24
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
MIT / BSL 1.1 Split — Design Complete
Full spec:
circuitforge-plans/circuitforge-core/superpowers/specs/2026-04-04-mit-bsl-split-design.mdDecisions
Package boundary:
circuitforge-core(MIT): db, config, affiliates, preferences, tiers, wizard,LLMRouter,TaskSchedulerprotocol +LocalSchedulercircuitforge-orch(BSL 1.1):CFOrchClient, coordinator FastAPI app,OrchestratedScheduler, auto-discovery probe engineBSL cutoff:
CFOrchClientis the first BSL symbol. Core never statically imports it.Capability gate:
GPU_0_*,GPU_1_*)Auto-discovery is BSL-gated — it is the coordinator magic behind the license.
LLMRouterstays MIT. Its lazyfrom circuitforge_orch.client import CFOrchClientonly fires whenCF_ORCH_URLis set — zero hard dependency at import time.TaskScheduler: Protocol +LocalSchedulerin MIT core.OrchestratedSchedulerin orch.Migration Steps
circuitforge-orchrepo (BSL 1.1, private)resources/coordinator/,resources/client.pyinto itOrchestratedSchedulerto orchTaskSchedulerprotocol +LocalSchedulerto coretasks/LLMRouterlazy import pathpyproject.tomlwithcircuitforge-core>=0.8.0depStatus
Design complete. Implementation blocked until after current affiliates/preferences PR (#25) merges.
Implementation Complete
circuitforge-core v0.8.0 (MIT) and circuitforge-orch v0.1.0 (BSL 1.1) are live.
What shipped
circuitforge-orchrepo created atCircuit-Forge/circuitforge-orch(private)resources/(coordinator, agent, inference, docuvision, profiles, client, models, cli) moved to orchOrchestratedScheduleradded to orch (coordinator-aware VRAM budgeting)TaskSchedulerProtocol +LocalScheduler(FIFO, no coordinator) added to coretasks/LLMRouterlazy import updated:circuitforge_core.resources.client→circuitforge_orch.clientcircuitforge_core.resourcesdeleted from coreVerification
from circuitforge_core.resources.client import CFOrchClient→ModuleNotFoundError✅from circuitforge_orch.client import CFOrchClient→ ok ✅from circuitforge_core.tasks.scheduler import LocalScheduler→ ok ✅from circuitforge_orch.scheduler import OrchestratedScheduler→ ok ✅import circuitforge_core.llm.router(no CF_ORCH_URL set) → ok ✅