Enforce effect-system philosophy across codebase#487
Merged
Conversation
Remove 3 obsolete docs (cache.md, 08-graph-tracking.md, 22-with-intercept.md) whose APIs are entirely _Removed. Fix AGENTS.md project structure (referenced non-existent core.py, interpreter.py, effects/, handlers/, utils.py, types.py, cache.py). Fix README.md build command (uv sync → make sync) and mark deprecated CLI flags. Rewrite docs/13-api-reference.md to match current run(doexpr) single-arg API, correct handler composition, and remove deleted APIs. Update docs/index.md Quick Example and Effect Reference. Record remaining ~20 stale files in documentation-fix-table.md with priority and replacement guide. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update 39 files across tutorials (01-09), advanced docs (11-22), design docs, proposals, specs, positioning materials, and integration guides. Key changes applied throughout: - default_handlers() → individual handler composition - run(prog, handlers=..., env=...) → run(doexpr) single-arg - RunResult/.value/.is_ok() → run() returns raw value - async_run() → run(scheduled(prog)) - Modify → Get + Put - WithIntercept → WithObserve(observer, body) - KleisliProgram/Call → @Do returns Callable, produces Expand - task.cancel() → yield Cancel(task) - Gather(*programs) → Spawn first, then Gather(*tasks) - LLMStructuredOutput → LLMStructuredQuery - Sleep → ClockSleep in doeff_agents No from-doeff-import of deleted APIs remains in any docs/ file. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…IO in handlers - Convert writer/slog_handler from factories to pre-installed handlers using lazy state init (Get/Put + Some), removing .log side-channel - Add writer_log()/slog_log() @Do helpers to read log through effects - Add ShellRun effect + ShellRunResult + shell-run-handler as IO boundary for subprocess execution — handlers yield effects, not call subprocess - Convert docker-build-handler, image-push-handler, rsync-handler, write-file-handler, docker-run-handler to yield ShellRun - Add output field to ExecResult, remove sys.stdout.write bypass - Fix 59 files: factory calls, .log access, WithHandler usage, docs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
Summary
.logside-channel entirely — replaced withwriter_log()/slog_log()effect-system-native helpers that return frozen copiesShellRuneffect +ShellRunResult+ productionshell-run-handleras the IO boundary for subprocess execution. Handlers yield effects instead of callingsubprocess.rundirectlydocker-build-handler,image-push-handler,rsync-handler,write-file-handler,docker-run-handlerall yieldShellRunnowoutputfield, removedsys.stdout.writebypass — callers decide what to do with outputwriter()→writer,slog_handler()→slog_handler),.logaccess removal,WithHandlerusage fixes, documentation updatesTest plan
CreateWorkspaceNameError)doeff_docker,doeff_ml_nexus)ml_nexus_interpreterfull stack import verifiedWithHandler→ direct call fix🤖 Generated with Claude Code