Repository navigation
AhdCode v2.5.0 — Deployment & Systems Primitives
AhdCode v2.5.0 adds deployment and systems primitives: the building blocks of a deployment worker, such as the AhdCode Panel's, without a shell and without Python.
Archive
Archive.listand safe-by-defaultArchive.extractfor ZIP, TAR, and TAR.GZ- path traversal, absolute, drive, and UNC paths rejected; symbolic-link and hard-link entries rejected, never followed
- bounded extraction (
maxFiles,maxBytes, checked before writing and again while streaming), all-or-nothing into a new directory ArchiveEntrywithpath(),kind(),size()
File
File.copy: binary-safe and streaming; it never overwritesFile.atomicWrite: same-directory temporary file, fsync, renameFile.atomicMove: a rename only; a cross-filesystem move is refused, never copiedFile.symlink(target, link),File.readLink,File.isSymlinkFile.walk: bounded, never follows symbolic links;FileEntry- Unix permissions as octal Strings:
File.setPermissions(path, "0755"),File.permissions(path)
Process (new module)
Process.run(command, args)starts an executable directly with aList<String>of arguments, never through a shell- finite
timeoutSecondsandmaxOutputBytes; on Unix the whole process group is killed on timeout or overflow ProcessResult(exitCode(),stdout(),stderr()); launch failures, timeouts, and overflow raiseProcessError
SQLite
db.backupTo(path): a consistent, integrity-checked snapshot of a live database using SQLite's online backup API
All new APIs behave the same in the REPL evaluator and in native builds, and they have editor completion, hover, and signature help. Process is now a standard module name.
Distribution
v2.5.0 is distributed as portable command-line packages (bin/ahdcode plus libexec/ahdcode/ helpers). Installer packages return in v2.7. The portable packages do not bundle the Go toolchain: ahdcode build and ahdcode run use Go 1.26.4 or later from PATH. LaTeX, PDF, and Plot math rendering need the offline Tectonic renderer (AHDCODE_LATEX_RUNTIME). Verify the downloads with SHA256SUMS.txt.