Summary
jido_code currently carries a repo-local compat/ directory to satisfy :jido_os and :jido_workflow surfaces that the app and jido_code_server expect. That made wrapper PR CI self-contained, but it now reads like a partial vendor/fork and adds ongoing maintenance overhead.
We should remove compat/ and have this repo consume clean upstream packages instead, while still keeping CI and fresh contributor clones self-contained.
Current findings
- Root
mix.exs currently points :jido_os to compat/jido_os and overrides :jido_workflow with compat/jido_workflow.
- The real upstream
jido_os exists in mikehostetler/jido_os and appears to expose the public modules/functions jido_code already calls.
jido_workflow is still expected by jido_code_server through the legacy JidoWorkflow.Workflow.Loader and JidoWorkflow.Workflow.Engine APIs.
- Neither
jido_os nor jido_workflow is currently available on Hex.
jido_code is on Elixir ~> 1.18, while upstream jido_os and jido_code_server currently target ~> 1.19.
- The original compat intent was to avoid requiring a sibling checkout and to avoid CI dependence on external/private dependency resolution.
Desired outcome
Remove the local compat/ folder and replace it with an upstream dependency strategy that is clean, reproducible, and CI-friendly.
Acceptance criteria
compat/ is removed from jido_code.
jido_code no longer depends on sibling workspace checkouts for jido_os.
- CI and fresh contributor clones can resolve dependencies without special local workspace layout.
- Dependency sourcing for both
jido_os and workflow runtime is explicit and documented.
- The coding assistance surface continues to work against upstream
jido_os.
- Workflow asset registration/execution continues to work without the local
compat/jido_workflow shim.
- Elixir/toolchain expectations are aligned across
jido_code, jido_code_server, and upstream runtime dependencies.
Recommended approach
- Decide the upstream sourcing model for
jido_os.
- Either consume upstream via direct Git pin as an intermediate step, or make it publish-ready and consume it as a released package.
- Align the Elixir baseline.
- If upstream
jido_os remains on ~> 1.19, this repo likely needs to move from ~> 1.18 to ~> 1.19 before the compat layer can be dropped cleanly.
- Remove
compat/jido_os.
- Replace the local path dep with the upstream dependency and verify compile/runtime behavior for the public
Jido.Os.* surface already used here.
- Resolve workflow runtime ownership.
- Either switch to a direct upstream
jido_workflow dependency, or migrate jido_code_server workflow handling onto native Jido.Os.Workflow.* services so jido_workflow can be eliminated entirely.
- Remove
compat/jido_workflow and keep regression coverage.
- Preserve or expand tests around coding assistance and
workflow.run.* so the repo proves the new dependency path works end to end.
Notes
I attempted to assign this to psharbon per request, but that handle is not assignable on mikehostetler/jido_code. I assigned the issue to pcharbon70 as the most likely intended assignee.
Summary
jido_codecurrently carries a repo-localcompat/directory to satisfy:jido_osand:jido_workflowsurfaces that the app andjido_code_serverexpect. That made wrapper PR CI self-contained, but it now reads like a partial vendor/fork and adds ongoing maintenance overhead.We should remove
compat/and have this repo consume clean upstream packages instead, while still keeping CI and fresh contributor clones self-contained.Current findings
mix.exscurrently points:jido_ostocompat/jido_osand overrides:jido_workflowwithcompat/jido_workflow.jido_osexists inmikehostetler/jido_osand appears to expose the public modules/functionsjido_codealready calls.jido_workflowis still expected byjido_code_serverthrough the legacyJidoWorkflow.Workflow.LoaderandJidoWorkflow.Workflow.EngineAPIs.jido_osnorjido_workflowis currently available on Hex.jido_codeis on Elixir~> 1.18, while upstreamjido_osandjido_code_servercurrently target~> 1.19.Desired outcome
Remove the local
compat/folder and replace it with an upstream dependency strategy that is clean, reproducible, and CI-friendly.Acceptance criteria
compat/is removed fromjido_code.jido_codeno longer depends on sibling workspace checkouts forjido_os.jido_osand workflow runtime is explicit and documented.jido_os.compat/jido_workflowshim.jido_code,jido_code_server, and upstream runtime dependencies.Recommended approach
jido_os.jido_osremains on~> 1.19, this repo likely needs to move from~> 1.18to~> 1.19before the compat layer can be dropped cleanly.compat/jido_os.Jido.Os.*surface already used here.jido_workflowdependency, or migratejido_code_serverworkflow handling onto nativeJido.Os.Workflow.*services sojido_workflowcan be eliminated entirely.compat/jido_workflowand keep regression coverage.workflow.run.*so the repo proves the new dependency path works end to end.Notes
I attempted to assign this to
psharbonper request, but that handle is not assignable onmikehostetler/jido_code. I assigned the issue topcharbon70as the most likely intended assignee.