From 298eccc6b6e4f10a56f53c4d2eb3a76479a17b8b Mon Sep 17 00:00:00 2001 From: vycdev2 Date: Sun, 9 Aug 2026 15:18:03 +0000 Subject: [PATCH] docs: track os environment contract --- docs/architecture.md | 4 ++-- docs/design.md | 3 +++ docs/progress.md | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/architecture.md b/docs/architecture.md index 2ab09686..20ee602f 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -406,7 +406,7 @@ Walk all type declarations and build the type registry: - **Built-in generic types:** `list[T]`, `map[K, V]`, `set[T]`, `optional[T]`, `result[T, E]`. - **User-defined types:** structs, enums, machines, actors, bitfields, interfaces, type aliases (including refinement types). - **Function types:** `function(T) returns U`. -- **Capability types:** `Filesystem`, `Network`, `Stdout`, `Stderr`, `Stdin`, `Clock`, `Random`, `Process`, `Environment`. The stable `Random` capability, entropy, determinism, and stdlib/runtime boundary is [tracked by #67](https://github.com/vycdev/jett/issues/67). +- **Capability types:** `Filesystem`, `Network`, `Stdout`, `Stderr`, `Stdin`, `Clock`, `Random`, `Process`, `Environment`. The stable `Random` capability, entropy, determinism, and stdlib/runtime boundary is [tracked by #67](https://github.com/vycdev/jett/issues/67). The `os` `Environment`/argv effect and public stdlib/runtime boundary are [tracked by #94](https://github.com/vycdev/jett/issues/94). - **Secret wrapper:** `secret[T]`. - **State-qualified types:** `Machine at state`. - **Built-in error types:** `CancelledError` (returned when a cancelled task's next I/O operation executes). @@ -1675,7 +1675,7 @@ Core stdlib (string, list, math, json) is implemented in Phase D. This phase com - **I/O:** `net.http`, `net.socket`, `csv` - **Time:** `time` (time value and `Clock` capability contract [tracked by #75](https://github.com/vycdev/jett/issues/75)) - **Security:** `crypto`, `encoding`, `validate` (the crypto hashing contract is [tracked by #69](https://github.com/vycdev/jett/issues/69), and the encoding contract is [tracked by #71](https://github.com/vycdev/jett/issues/71)) -- **OS:** `os` (environment variables, process management, argv — wraps `Environment` and `Process` capabilities) +- **OS:** `os` (environment variables, process management, argv — the `Environment`/argv capability and public stdlib/runtime boundary are [tracked by #94](https://github.com/vycdev/jett/issues/94)) - **Utilities:** `regex`, `random`, `uuid` (generation and entropy contract [tracked by #73](https://github.com/vycdev/jett/issues/73)), `log`, `format` - **Testing:** `test.mock` (mock capabilities for property-based testing) diff --git a/docs/design.md b/docs/design.md index 4bfcd270..72098596 100644 --- a/docs/design.md +++ b/docs/design.md @@ -2908,6 +2908,9 @@ secret[T] ──→ secret.compare() ALLOWED (constant-time comparison) > Tracked by [#67](https://github.com/vycdev/jett/issues/67) for the stable > `Random` capability, entropy, determinism, and stdlib/runtime boundary. +> The `Environment`/argv contract and public `os` stdlib/runtime boundary are +> [tracked by #94](https://github.com/vycdev/jett/issues/94). + #### The Problem: Side Effects Hide in the Call Stack In high-performance languages like C++ or Rust, any function can open a file, connect to a network socket, or spawn a process. The function signature says `fn process(data: Vec) -> Result` — nothing in the signature reveals that this function writes to disk, sends network packets, or reads environment variables. diff --git a/docs/progress.md b/docs/progress.md index fc69ad80..6fc6f42d 100644 --- a/docs/progress.md +++ b/docs/progress.md @@ -166,7 +166,7 @@ | `bytes` | Partial (9 builtins: new, length, slice, concat, from_string, to_string, get, to_hex, from_hex) | | `uuid` | Partial (`uuid.new`; generation and entropy contract [tracked by #73](https://github.com/vycdev/jett/issues/73)) | | `time` | Partial (`time.now_ms`, `time.now_s`; time value and `Clock` capability contract [tracked by #75](https://github.com/vycdev/jett/issues/75)) | -| `os` | Partial (os.env, os.args) | +| `os` | Partial (`os.env`, `os.args`; `Environment`/argv capability and public stdlib/runtime boundary [tracked by #94](https://github.com/vycdev/jett/issues/94)) | | `net.http` | Not started | | `net.socket` | Not started | | `csv` | Partial (interpreter builtins for `csv.parse`, `csv.stringify`, and `csv.parse_with_header`; quoted commas, quotes, and multiline fields are covered) |