Repository navigation
Conversation
New `core` module holds the only side-effecting code and three capabilities: FileSystem, Processes, Network. tools, the backends, flow and a new lifecycle module (extracted from runner) compile with -language:experimental.safe. runner and shell stay non-safe.
…ties-6601c28e # Conflicts: # README.md # docs/authoring/tutorial.md # flow/src/main/scala/orca/AgentSet.scala # flow/src/main/scala/orca/settings/AgentSpec.scala # flows/epics.sc # flows/implement.sc # flows/quick.sc # flows/resolve.sc # flows/review.sc # lifecycle/src/main/scala/orca/lifecycle/FlowLifecycle.scala # opencode/src/main/scala/orca/backend/opencode/OpencodeApi.scala # runner/src/main/scala/orca/flowEntry.scala # shell/src/main/scala/orca/shell/actions/SettingsEditAction.scala
Member
Author
Design decisions and cost per moduleMain code in Module graph: DecisionsCapabilities
What stays plain
Core exposure rule
JSON
Mutable state
Module layout
Build
Cost per module"Errors" means the number of errors on the first safe-mode compile.
Across all modules, the mechanical edits are mostly import changes ( Compiler issues (Scala 3.10.0)
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves all side-effecting code into a new
coremodule and compiles the other modules in Scala 3.10 safe mode (-language:experimental.safe).What changed
core(not safe, trusted): the only module allowed to use@assumeSafe. It has:orca.effect: three capabilities,FileSystem,ProcessesandNetwork, and their implementations.orca.safe: theprelude(small helpers over os-lib paths, Ox'seitherand the standard library) andLogger(over slf4j).orca.concurrency: wrappers over Ox (scopes, forks, channels, retry), plusReffor shared state.orca.mcp: a facade over chimp, for the MCP servers.orca.json:JsonCodec/JsonData/JsonSchemas, with our own schema derivation (tapir'sSchema.derivedfails capture checking). Parity tests compare it with tapir.lifecyclemodule (setup, recovery and git steps moved out of runner).*Agentsobjects, now moved here) and shell.GitTool,CliRunner,Agent, …) stay plain. Implementations take capabilities as constructor parameters; only wiring and tests create real capabilities.@assumeSafestays inside an allowlist in core, that safe code can't reach effect implementations directly, and that aRefupdate can't capture a capability.//> using scala 3.10.0bump.Things to know
"7"is rejected).finishare dropped with a warning.Ref.Testing
A forced clean rebuild compiles with no warnings,
scalafmtCheckAllpasses,testFullpasses in all modules, and the built-in flows compile with scala-cli on 3.10.🤖 Generated with Claude Code