UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

82 lines (81 loc) • 3.34 kB
{ "repo": "core", "version": "7.17.6", "from": "3dfd4ff66bfd1c6ea217fa251d2f28df79052f87", "to": "adb5afdddf8b01be7b9b8a8394251eea7fe2ee19", "added": [], "removed": [], "changed": [], "narrowed": [ { "id": "F1", "source": "behaviorFlips.summary", "text": "Narrowing — the execute-time canonical recheck now answers for a GLOB's expansion (#775; B-109; test [7201]): the full Bash face hands the boundary's `undecidedPaths` (the operands the shell will expand) to the same expander the `bash_readonly` face already used, so a pattern that expands to a target outside the roots is refused before spawn; an expansion that cannot be established (uncompilable segment, >256 directories, >8192 names, an unreadable directory) is refused too." }, { "id": "F2", "source": "behaviorFlips.summary", "text": "Narrowing — a `..` taken AFTER a symlink is judged where the kernel takes it (#770; B-110; test [7203]): the lexical walk folds `..` for its containment verdict as before, but the recheck now receives the operand's UNFOLDED spelling and resolves it segment by segment (realpath the prefix, THEN take the parent), so `<link>/../x` is refused when the link's target parent is outside every read root." }, { "id": "F3", "source": "behaviorFlips.summary", "text": "Narrowing — `sed`'s SCRIPT SLOT is judged as an argument-as-program (#769; test [7180] candidate 7): a sed script that names a file or runs a command (`r`/`R`/`w`/`W`/`e` commands, `s///w FILE`, `s///e`) or a script the walk cannot see (`-f FILE`/`--file=`) refuses the command whole (mandated), under the same rule as shell re-entry and argv re-entry." }, { "id": "F5", "source": "behaviorFlips.summary", "text": "Narrowing — the execute-time read boundary asks what an environment DECLARES, not what interface it implements (#782; B-115; test [7214]): the canonical recheck is skipped only when the environment declares `capabilities.isolation: true` (the sandbox is the boundary, C-R37 γ); a lane that implements the remote interface but declares no isolation (server `REMOTE_EXEC=host`, SSH hosts) now runs the recheck like an in-process env." } ], "closedSetMembers": [], "typeKeys": [ { "type": "CompoundReadonlyVerdict", "at": [ "src/tools/fs/bash-readonly-classifier.ts:644" ], "added": [ "checkedSpellings", "outOfRootSpellings", "undecidedSpellings" ], "removed": [], "breaking": false, "criteriaCovered": false } ], "declarationMoves": [], "mintMoves": [], "criteriaObserves": [ { "kind": "typeMember", "name": "AskRequest.ruleOffersAbsence", "assertions": [ "G1.a", "G2.a", "G3.a", "G5.a" ] }, { "kind": "typeMember", "name": "HarvestReport.rejections", "assertions": [ "G4.a" ] } ], "consumersHint": { "cli": [ "CompoundReadonlyVerdict" ], "server": [ "CompoundReadonlyVerdict" ], "sdk": [], "note": "scanned cli@60ea7972 server@940568c6 sdk@6910789 — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it" }, "breakingCount": 0, "breakingItems": [] }