Skip to content

v0.39.0

Choose a tag to compare

@emil14 emil14 released this 06 Jul 16:22
· 214 commits to main since this release
6aaf9ce

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/io file handles: File, Open, Create, Close, ReadAllFile, and WriteAllFile.
  • Existing filename-based std/io.ReadAll and std/io.WriteAll remain available as convenience APIs for whole-file reads and writes.
  • Expanded std/os with typed environment, process, filesystem, and temp-path primitives.
  • Fixed std/os.Args runtime 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/os runtime helpers are covered by targeted unit and e2e tests.

Internal and tooling notes

  • Version references were synchronized to 0.39.0 across checked-in manifests, examples, docs, generated headers, and test expectations.
  • The release-neva skill now documents repo-wide version bump requirements.
  • Legacy .agent, .claude/rules, and .opencode harness 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

Full Changelog

v0.38.0...v0.39.0