2026-07-15 01:10:28 +09:00
|
|
|
{
|
|
|
|
|
"schema": "lazaret-ignored-workspace-corpus-v1",
|
|
|
|
|
"path_encoding": "lowercase-hex-bytes",
|
|
|
|
|
"cases": [
|
|
|
|
|
{
|
|
|
|
|
"id": "non-utf8-ignore-match",
|
|
|
|
|
"tags": ["non-utf8-names", "ignore-precedence"],
|
|
|
|
|
"path_hex": "fffe2e6f626a",
|
|
|
|
|
"setup": ["root-ignore-star-dot-obj", "host-sentinel"],
|
|
|
|
|
"actions": ["sandbox-lookup", "sandbox-create"],
|
|
|
|
|
"expect": ["host-sentinel-hidden", "isolated-object-created"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "root-negation-precedence",
|
|
|
|
|
"tags": ["ignore-precedence", "negation"],
|
|
|
|
|
"path_hex": "6f75742f6b6565702e6c6f67",
|
|
|
|
|
"setup": ["ignore-out", "negate-keep-log"],
|
|
|
|
|
"actions": ["sandbox-write", "host-write"],
|
|
|
|
|
"expect": ["host-route", "bidirectional-visibility"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "nested-ignore-precedence",
|
|
|
|
|
"tags": ["ignore-precedence", "nested-ignore"],
|
|
|
|
|
"path_hex": "612f622f63616368652e62696e",
|
|
|
|
|
"setup": ["root-negation", "nested-ignore"],
|
|
|
|
|
"actions": ["sandbox-create"],
|
|
|
|
|
"expect": ["isolated-object-created", "host-path-absent"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "info-exclude",
|
|
|
|
|
"tags": ["ignore-precedence", "info-exclude"],
|
|
|
|
|
"path_hex": "6c6f63616c2e736563726574",
|
|
|
|
|
"setup": ["info-exclude-local-secret", "host-sentinel"],
|
|
|
|
|
"actions": ["sandbox-lookup"],
|
|
|
|
|
"expect": ["host-sentinel-hidden"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "global-excludes",
|
|
|
|
|
"tags": ["ignore-precedence", "global-excludes"],
|
|
|
|
|
"path_hex": "656469746f722e73776170",
|
|
|
|
|
"setup": ["global-exclude-star-dot-swap", "host-sentinel"],
|
|
|
|
|
"actions": ["sandbox-lookup"],
|
|
|
|
|
"expect": ["host-sentinel-hidden"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "ignore-case-folding",
|
|
|
|
|
"tags": ["core-ignore-case", "ignore-precedence"],
|
|
|
|
|
"path_hex": "4255494c442e4c4f47",
|
|
|
|
|
"setup": ["core-ignore-case-true", "ignore-build-log", "host-sentinel"],
|
|
|
|
|
"actions": ["sandbox-lookup"],
|
|
|
|
|
"expect": ["host-sentinel-hidden"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "linked-worktree-index",
|
|
|
|
|
"tags": ["worktrees", "git-status"],
|
|
|
|
|
"path_hex": "776f726b747265652d6361636865",
|
|
|
|
|
"setup": ["linked-worktree", "per-worktree-index", "ignored-host-sentinel"],
|
|
|
|
|
"actions": ["sandbox-git-status", "sandbox-create"],
|
|
|
|
|
"expect": ["correct-worktree-index", "host-sentinel-hidden"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "nested-repository-boundary",
|
|
|
|
|
"tags": ["nested-repositories", "ignore-precedence", "git-status"],
|
|
|
|
|
"path_hex": "76656e646f722f6e65737465642f7461726765742f6465627567",
|
|
|
|
|
"setup": ["nested-repository", "nested-ignore-target", "host-sentinel"],
|
|
|
|
|
"actions": ["sandbox-git-status", "sandbox-lookup"],
|
|
|
|
|
"expect": ["nested-rules-selected", "host-sentinel-hidden"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "live-ignore-publication",
|
|
|
|
|
"tags": ["ignore-precedence", "live-policy-change", "concurrent-mutation"],
|
|
|
|
|
"path_hex": "67656e6572617465642f6f7574707574",
|
|
|
|
|
"setup": ["host-object", "path-initially-non-ignored"],
|
|
|
|
|
"actions": ["host-publish-ignore", "sandbox-open-after-publication"],
|
|
|
|
|
"expect": ["single-classification-epoch", "host-object-hidden", "no-copy"]
|
|
|
|
|
},
|
2026-07-26 00:43:30 +09:00
|
|
|
{
|
|
|
|
|
"id": "cargo-target-host-to-isolated-rename",
|
|
|
|
|
"tags": ["rename", "cross-policy-rename", "no-copy-back"],
|
|
|
|
|
"path_hex": "746172676574",
|
|
|
|
|
"setup": ["router-created-host-directory", "router-created-cachedir-tag", "ignored-destination"],
|
|
|
|
|
"actions": ["sandbox-rename"],
|
|
|
|
|
"expect": ["success", "qualified-isolated-destination", "host-source-absent", "no-isolated-to-host-copy"]
|
|
|
|
|
},
|
2026-07-15 01:10:28 +09:00
|
|
|
{
|
|
|
|
|
"id": "cross-route-file-rename",
|
|
|
|
|
"tags": ["rename", "cross-policy-rename", "no-silent-loss"],
|
|
|
|
|
"path_hex": "7372632f746d70",
|
|
|
|
|
"setup": ["host-source", "ignored-destination"],
|
|
|
|
|
"actions": ["sandbox-rename"],
|
|
|
|
|
"expect": ["EXDEV", "source-unchanged", "destination-absent"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "cross-route-directory-exchange",
|
|
|
|
|
"tags": ["rename", "cross-policy-rename", "concurrent-mutation"],
|
|
|
|
|
"path_hex": "63616368652f73776170",
|
|
|
|
|
"setup": ["host-directory", "isolated-directory"],
|
|
|
|
|
"actions": ["sandbox-rename-exchange"],
|
|
|
|
|
"expect": ["EXDEV", "both-trees-unchanged"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "cross-route-hard-link",
|
|
|
|
|
"tags": ["link", "cross-policy-rename", "no-copy-back"],
|
|
|
|
|
"path_hex": "6275696c642f616c696173",
|
|
|
|
|
"setup": ["host-source", "ignored-destination"],
|
|
|
|
|
"actions": ["sandbox-hard-link"],
|
|
|
|
|
"expect": ["EXDEV", "destination-absent", "no-copy"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "ignored-becomes-non-ignored",
|
|
|
|
|
"tags": ["ignored-to-tracked-transition", "open-handle-transition", "no-copy-back"],
|
|
|
|
|
"path_hex": "63616368652f64617461",
|
|
|
|
|
"setup": ["isolated-object", "host-object", "open-isolated-handle"],
|
|
|
|
|
"actions": ["host-negate-ignore", "sandbox-open-new", "write-old-handle"],
|
|
|
|
|
"expect": ["new-handle-host", "old-handle-isolated", "no-copy", "both-objects-retained"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "non-ignored-becomes-ignored",
|
|
|
|
|
"tags": ["ignored-to-tracked-transition", "open-handle-transition", "no-copy-back"],
|
|
|
|
|
"path_hex": "6f75742f64617461",
|
|
|
|
|
"setup": ["host-object", "retained-isolated-object", "open-host-handle"],
|
|
|
|
|
"actions": ["host-publish-ignore", "sandbox-open-new", "write-old-handle"],
|
|
|
|
|
"expect": ["new-handle-isolated", "old-handle-host", "no-copy", "both-objects-retained"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "guest-force-add-isolated-only",
|
|
|
|
|
"tags": ["ignored-to-tracked-transition", "git-add", "no-silent-loss"],
|
|
|
|
|
"path_hex": "7461726765742f617070",
|
|
|
|
|
"setup": ["isolated-object", "path-ignored", "host-path-absent"],
|
|
|
|
|
"actions": ["sandbox-git-add-force"],
|
|
|
|
|
"expect": ["EBUSY-before-index-publication", "prior-index-retained", "isolated-object-visible", "host-path-absent"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "host-established-tracked-cutover",
|
|
|
|
|
"tags": ["ignored-to-tracked-transition", "open-handle-transition", "no-copy-back"],
|
|
|
|
|
"path_hex": "6173736574732f67656e657261746564",
|
|
|
|
|
"setup": ["isolated-object", "open-isolated-handle"],
|
|
|
|
|
"actions": ["host-create-type-compatible-object", "host-publish-tracked-index", "sandbox-open-new"],
|
|
|
|
|
"expect": ["new-handle-host", "old-handle-isolated", "isolated-object-retained-hidden", "no-copy"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "unmediated-inconsistent-index",
|
|
|
|
|
"tags": ["ignored-to-tracked-transition", "no-silent-loss", "concurrent-mutation"],
|
|
|
|
|
"path_hex": "646570732f6c6962",
|
|
|
|
|
"setup": ["isolated-object", "host-path-absent"],
|
|
|
|
|
"actions": ["host-publish-tracked-index", "sandbox-lookup"],
|
|
|
|
|
"expect": ["EIO", "path-fail-closed", "isolated-object-recoverable", "host-path-absent"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "mmap-policy-transition",
|
|
|
|
|
"tags": ["mmap", "open-handle-transition", "no-copy-back"],
|
|
|
|
|
"path_hex": "63616368652f6d6170706564",
|
|
|
|
|
"setup": ["isolated-object", "shared-write-mapping"],
|
|
|
|
|
"actions": ["host-negate-ignore", "mapped-write", "mapping-sync"],
|
|
|
|
|
"expect": ["isolated-object-updated", "host-object-unchanged", "no-copy"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "locks-policy-transition",
|
|
|
|
|
"tags": ["locks", "open-handle-transition"],
|
|
|
|
|
"path_hex": "63616368652f6c6f636b6564",
|
|
|
|
|
"setup": ["isolated-object", "isolated-posix-lock", "host-object"],
|
|
|
|
|
"actions": ["host-negate-ignore", "sandbox-open-new", "host-lock-attempt"],
|
|
|
|
|
"expect": ["old-lock-remains-isolated", "new-lock-domain-host", "no-lock-transfer"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "extended-attributes-and-acls",
|
|
|
|
|
"tags": ["xattrs", "acls"],
|
|
|
|
|
"path_hex": "63616368652f6d65746164617461",
|
|
|
|
|
"setup": ["host-and-isolated-backing-features"],
|
|
|
|
|
"actions": ["sandbox-set-get-remove-user-xattr", "sandbox-set-get-posix-acl"],
|
|
|
|
|
"expect": ["exact-selected-backing-metadata", "native-unsupported-errno-only"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "sparse-copy-range",
|
|
|
|
|
"tags": ["sparse", "copy-range"],
|
|
|
|
|
"path_hex": "6275696c642f737061727365",
|
|
|
|
|
"setup": ["isolated-sparse-source", "isolated-destination", "host-destination"],
|
|
|
|
|
"actions": ["seek-hole-data", "punch-hole", "same-route-copy-range", "cross-route-copy-range"],
|
2026-07-16 13:03:04 +09:00
|
|
|
"expect": ["same-route-returned-count-equals-request", "same-route-source-and-destination-offsets-advance", "same-route-size-and-bytes-match", "cross-route-returned-count-equals-request", "cross-route-destination-range-equals-source", "cross-route-source-unchanged", "cross-route-unrelated-objects-unchanged", "cross-route-handles-remain-pinned", "cross-route-sparse-layout-not-asserted"]
|
2026-07-15 01:10:28 +09:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "symlink-confinement",
|
|
|
|
|
"tags": ["symlink", "concurrent-mutation"],
|
|
|
|
|
"path_hex": "63616368652f6c696e6b",
|
|
|
|
|
"setup": ["relative-symlink", "outside-looking-target", "rename-racer"],
|
|
|
|
|
"actions": ["sandbox-readlink", "sandbox-follow", "concurrent-backing-rename"],
|
|
|
|
|
"expect": ["link-bytes-preserved", "virtual-path-resolution", "no-backing-root-escape"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "timestamps",
|
|
|
|
|
"tags": ["timestamps"],
|
|
|
|
|
"path_hex": "7372632f74696d6564",
|
|
|
|
|
"setup": ["host-object"],
|
|
|
|
|
"actions": ["sandbox-utimens-nanoseconds", "host-stat"],
|
|
|
|
|
"expect": ["exact-supported-nanoseconds", "bidirectional-visibility"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "special-files",
|
|
|
|
|
"tags": ["special-files"],
|
|
|
|
|
"path_hex": "63616368652f7370656369616c",
|
|
|
|
|
"setup": ["isolated-directory"],
|
|
|
|
|
"actions": ["sandbox-create-fifo", "sandbox-bind-unix-socket", "sandbox-create-device"],
|
|
|
|
|
"expect": ["fifo-supported", "unix-socket-supported", "device-EPERM"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "directory-stream-policy-snapshot",
|
|
|
|
|
"tags": ["concurrent-mutation", "open-handle-transition", "ignore-precedence"],
|
|
|
|
|
"path_hex": "6f7574",
|
|
|
|
|
"setup": ["open-directory-stream", "host-and-isolated-children"],
|
|
|
|
|
"actions": ["host-publish-ignore-change", "continue-readdir", "open-new-directory-stream"],
|
|
|
|
|
"expect": ["old-stream-single-snapshot", "new-stream-new-snapshot", "no-duplicate-name"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "git-ordinary-workflow",
|
|
|
|
|
"tags": ["git-status", "git-add", "git-commit", "git-checkout"],
|
|
|
|
|
"path_hex": "7372632f6c69622e7273",
|
|
|
|
|
"setup": ["tracked-host-file", "ordinary-untracked-host-file"],
|
|
|
|
|
"actions": ["sandbox-git-status", "sandbox-git-add", "sandbox-git-commit", "sandbox-git-restore"],
|
|
|
|
|
"expect": ["host-index-and-objects-updated", "host-worktree-bidirectional", "ignored-sentinel-hidden"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "git-history-workflow",
|
|
|
|
|
"tags": ["git-merge", "git-rebase", "git-stash"],
|
|
|
|
|
"path_hex": "7372632f686973746f72792e7273",
|
|
|
|
|
"setup": ["two-host-backed-branches", "host-backed-local-change"],
|
|
|
|
|
"actions": ["sandbox-git-stash", "sandbox-git-merge", "sandbox-git-rebase"],
|
|
|
|
|
"expect": ["native-git-outcomes", "references-bidirectional", "no-isolated-copy-back"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "git-sentry",
|
|
|
|
|
"tags": ["git-config", "git-hooks", "git-status"],
|
|
|
|
|
"path_hex": "2e676974",
|
|
|
|
|
"setup": ["host-config-sentinel", "host-hook-sentinel"],
|
|
|
|
|
"actions": ["sandbox-write-git-config", "sandbox-write-default-hook", "sandbox-git-status"],
|
|
|
|
|
"expect": ["config-EROFS", "host-hook-hidden-unchanged", "sandbox-transient-hook", "git-status-supported"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "concurrent-host-sandbox-mutation",
|
|
|
|
|
"tags": ["concurrent-mutation", "rename", "no-silent-loss"],
|
|
|
|
|
"path_hex": "7372632f72616365",
|
|
|
|
|
"setup": ["host-backed-directory", "isolated-sibling"],
|
|
|
|
|
"actions": ["barrier-concurrent-host-replace", "sandbox-rename-write-unlink", "enumerate-both-backings"],
|
|
|
|
|
"expect": ["native-host-race-result", "isolated-state-intact", "no-duplicate-name", "no-cross-route-mutation"]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": "router-loss-fails-closed",
|
|
|
|
|
"tags": ["concurrent-mutation", "no-silent-loss", "no-copy-back"],
|
|
|
|
|
"path_hex": "63616368652f73656e74696e656c",
|
|
|
|
|
"setup": ["ignored-host-sentinel", "isolated-object", "mounted-router"],
|
|
|
|
|
"actions": ["terminate-router", "sandbox-lookup", "force-unmount", "inspect-backings"],
|
|
|
|
|
"expect": ["access-error-not-host-fallback", "host-sentinel-unchanged", "isolated-object-retained"]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|