v0.39.0
Operating Handles
Compared to v0.38.0, this release expands the standard library with practical OS and file-handle capabilities, improves parser error handling, and tightens release/version maintenance.
Summary
- Added explicit
std/iofile handles:File,Open,Create,Close,ReadAllFile, andWriteAllFile. - Existing filename-based
std/io.ReadAllandstd/io.WriteAllremain available as convenience APIs for whole-file reads and writes. - Expanded
std/oswith typed environment, process, filesystem, and temp-path primitives. - Fixed
std/os.Argsruntime list construction. - Parser recovery now returns compiler errors for missing connection/sender/receiver sides instead of panicking.
- Release prep now bumps repository version references consistently across manifests, docs, generated headers, and tests.
- Repository AI harness assets were consolidated under
.codex/.
Standard library: file handles
std/io now supports explicit open/create/read/write/close flows for programs that need to keep file access state visible in the graph.
import { bytes, io }
def WriteExample(start any) (stop any, err error) {
create io.Create?
from_string bytes.FromString
write io.WriteAllFile?
close io.Close?
---
:start -> [
'out.txt' -> create:filename,
'hello' -> from_string:data
]
from_string:res -> write:data
create:res -> write:file
write:res -> close:file
close:res -> :stop
}
Standard library: OS primitives
std/os now covers common environment, process, filesystem, and temporary-path operations through typed, dataflow-friendly components. Query-style components are signal-triggered so programs stay explicit about when OS data is read.
import { os }
def ListCwd(start any) (res list<os.DirEntry>, err error) {
getwd os.Getwd?
read_dir os.ReadDir?
---
:start -> getwd:sig
getwd:res -> read_dir:path
read_dir:res -> :res
}
Parser and runtime reliability
- Malformed connection shapes that previously could panic during parser recovery now produce
compiler.Error. - File-handle runtime paths include lifecycle and registry coverage.
- New
std/osruntime helpers are covered by targeted unit and e2e tests.
Internal and tooling notes
- Version references were synchronized to
0.39.0across checked-in manifests, examples, docs, generated headers, and test expectations. - The
release-nevaskill now documents repo-wide version bump requirements. - Legacy
.agent,.claude/rules, and.opencodeharness roots were consolidated under.codex/.
Included PRs
- #1139 fix(parser): return compiler errors for missing conn sides
- #1141 [codex] consolidate AI harness
- #1040 stdlib/io: add explicit Open/Create/Close file-handle API
- #1041 Implement std/os package for env/process/fs primitives
- #1143 release: bump version to v0.39.0