@@ -5,7 +5,25 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8- ## [ 0.1.2] - 2026-05-20
8+ ## [ 0.1.2] - 2026-05-21
9+
10+ ### Added
11+ - ` skill-upper ` : a bundled meta-skill under ` skills/skill-upper/ ` that
12+ drives ` skill-up ` to scaffold and run evals for a target skill end-to-end.
13+ - ` --runtime ` CLI flag on ` skill-up run ` overrides ` environment.type `
14+ (` none ` / ` opensandbox ` ) without editing ` eval.yaml ` . The override path
15+ also rejects ` --runtime none ` when ` network_policy ` is configured, so
16+ network isolation cannot be silently dropped.
17+ - ` network_policy ` for sandbox egress isolation: ` deny_all ` blocks all
18+ egress; ` allow_declared ` plus ` environment.allowed_egress ` permits only
19+ the listed FQDN / wildcard domains. Validated against the runtime type
20+ (rejected on ` environment.type: none ` ) and against URL-shaped entries.
21+ - Mocked MCP servers (` mode: mocked ` ): provisioned as generated stdio
22+ servers via the existing agent MCP install path. Supports the built-in
23+ ` filesystem ` mock and arbitrary ` tool_responses ` via ` config_ref ` .
24+ - ` userconfig.LoadFile(path) ` helper for callers that need to read and
25+ validate a single config file without consulting discovery layers.
26+ - Coverage badge generation in CI and README badge links.
927
1028### Changed
1129- ` skill-up init ` : ` --config <path> ` now names a ** source** file to read
@@ -16,10 +34,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1634 still writes the commented template as before. This aligns ` --config `
1735 with the ` run ` /` validate ` discovery chain semantics
1836 (` embed < user < project < --config ` ).
37+ - OpenSandbox directory uploads now use the SDK's batch ` UploadFiles ` in
38+ chunks of 128 files (one multipart request per chunk) instead of N
39+ concurrent single-file uploads. ` file_transfer_parallelism ` now only
40+ governs directory ** download** .
41+ - OpenSandbox SDK upgraded to v1.0.1.
42+ - Default eval workspace is now placed ** alongside** the skill directory
43+ (` <skill>-workspace/ ` as a sibling of ` <skill>/ ` ) instead of inside it,
44+ matching the Anthropic eval layout convention. Docs and ` --output-dir `
45+ default updated accordingly.
1946
20- ### Added
21- - ` userconfig.LoadFile(path) ` helper for callers that need to read and
22- validate a single config file without consulting discovery layers.
47+ ### Fixed
48+ - ` context.git.checkout ` is now actually honored by the fixture loader.
49+ Previously the field parsed but was never read, so cases ran on the
50+ fixture's current branch. The loader now runs ` git switch ` (or creates
51+ the branch on an unborn HEAD) before inline ` context.files ` and
52+ ` apply_diff ` ; a missing branch in a committed fixture fails loudly,
53+ and branch names are validated against shell injection.
54+ - ` skill-up run ` credential resolver now reads the documented
55+ ` ~/.skill-up/credentials.yaml ` . Previously the run path passed an
56+ empty config path, so only ` --api-key ` , env vars, and a CWD ` .env `
57+ were consulted.
58+ - Post-run session lookup, stdout download, and last-message resolution
59+ (claude_code / codex / qodercli) no longer inherit the canceled run
60+ context, so a timed-out eval case no longer produces two bursts of
61+ misleading "command exited with code -1: ..." log lines for the
62+ cleanup steps. A fresh 30s ` sessionCleanupTimeout ` is used instead.
63+ - ` runtime/none ` : when a command is killed because its context was
64+ canceled or timed out, the log now reads "command killed by context"
65+ instead of pretending to be a real ` -1 ` exit with the full bootstrap
66+ script attached.
67+ - ` runtime/opensandbox ` : when the OpenSandbox SDK call itself fails
68+ (network error, nil execution, timeout before a remote exit code is
69+ reported), the log now identifies it as an SDK-level failure and
70+ skips the misleading script dump. Genuine remote non-zero exits keep
71+ the existing log.
2372
2473## [ 0.1.1] - 2026-05-15
2574
0 commit comments