Skip to content

fix(paw-fs,monty): drop non-lossless ParentId eq null from root-dir lookup (ARN-68 413) - #437

Draft
rita-aga wants to merge 1 commit into
mainfrom
claude/arn-68-rootdir-filter-hotpatch
Draft

fix(paw-fs,monty): drop non-lossless ParentId eq null from root-dir lookup (ARN-68 413)#437
rita-aga wants to merge 1 commit into
mainfrom
claude/arn-68-rootdir-filter-hotpatch

Conversation

@rita-aga

Copy link
Copy Markdown
Collaborator

What

The workspace root-directory resolution queried Directories?$filter=Name eq '/' and WorkspaceId eq 'x' and ParentId eq null. ParentId eq null is non-lossless → it disables index pushdown → forces a full Directories scan413 QueryTooLarge once a workspace grows past the read budget. That blocks CreateFile (the file record is never minted; the raw $value PUT works fine). Live repro on katagami-contrib.

Fix (caller-side ARN-68 mitigation)

Name eq '/' + WorkspaceId already uniquely identify the root, so omit the ParentId eq null predicate to keep the read pushed-down (~1 candidate, no scan), and confirm ParentId is unset in-memory.

  • os-apps/paw-fs/wasm/workspace_fs/src/ops.rsfind_directory (root case)
  • os-apps/paw-agent/wasm/monty_repl/src/entity_ops.rspawfs_filter_root_directory (+ test updated, red→green)

Both WASM modules build clean (workspace_fs 276 KB, monty_repl built). The ParentId eq '<id>' (non-root) path already used a lossless string-equality and is unchanged.

Relation

Caller-side mitigation, same class as the existing ARN-68 Files/SessionEntries fixes. The kernel fix is Path A (declared composite-key index — see ARN-68 comment / ARN-102).

🤖 Generated with Claude Code

https://claude.ai/code/session_01MfDeyvWdKTTrsJ8QXaB1sU

… lookup (ARN-68 413)

The workspace root-directory resolution queried Directories with
`Name eq '/' and WorkspaceId eq 'x' and ParentId eq null`. `ParentId eq null`
is non-lossless, so it disables index pushdown and forces a full Directories
scan -> 413 QueryTooLarge once the workspace grows past the read budget,
blocking CreateFile (no file record minted). Name '/' + WorkspaceId already
uniquely identify the root, so omit the null predicate (lossless pushdown) and
confirm ParentId is unset in-memory. Caller-side ARN-68 mitigation; the kernel
fix is Path A (declared composite-key index).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MfDeyvWdKTTrsJ8QXaB1sU
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant