Skip to content

feat(files): add scoped local file editing over daemon IPC - #44

Merged
guicybercode merged 16 commits into
mainfrom
feat/maestri-runtime
Sep 6, 2026
Merged

feat(files): add scoped local file editing over daemon IPC#44
guicybercode merged 16 commits into
mainfrom
feat/maestri-runtime

Conversation

@guicybercode

@guicybercode guicybercode commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Registered projects, sessions and managed worktrees can now list directories, read bounded UTF-8 text and save existing files through versioned daemon IPC. Saves check the revision the editor read, publish through a sibling temporary file, and coordinate the final rename with target/worktree removal.

  • Adds file.list, file.read, file.write to Rust, JSON and TypeScript contracts plus typed IpcClient methods and response validation. Paths retain exact relative Unix bytes in base64.
  • Descriptor-relative no-follow traversal, bounded directory pages and 128 KiB text preserve scope and frame limits. macOS owner/group/mode/provenance are verified before publication; unsupported ACL/xattrs/flags/hardlinks reject the save. A narrowly audited Darwin ACL helper is documented in ADR 0006 and SAFETY.md.
  • Keeps S1 through dd84a49, including its prompt composer, library, worktree refresh and bounded probe handling. Real Linux ETXTBSY regressions complement S1's retry tests.

Validation on macOS: 97 core, 68 daemon, 63 agents and 5 descriptor ACL tests; all 278 frontend tests, typecheck and Vite build; Clippy, Rustdoc, rustfmt and version consistency. Linux/macOS CI for this head is pending. Earlier worktree integration passed both CI and packaging matrices.

This increment edits existing text files only. Creation/rename/delete, a watcher and the canvas file editor remain pending. External editors can still race the final comparison/rename; this is optimistic conflict detection. A post-rename durability failure returns writeApplied: true so clients re-read before retrying.

Integration contracts and remaining parity evidence: runtime report, ADR 0006.

@guicybercode guicybercode changed the title feat(runtime): connect isolated sessions and safe worktrees to daemon IPC feat(files): add scoped local file editing over daemon IPC Sep 6, 2026
@guicybercode
guicybercode changed the base branch from refactor/canvas-only-shell to main September 6, 2026 02:22
Combine the scoped local file service with the knowledge discovery and canvas changes already merged into main, plus the monotonic process snapshot correction from PR42. Preserve all IPC catalog mirrors, file safety behavior, and regression coverage.\n\nValidated TypeScript, 319 frontend tests, 13 file contract tests, 12 file IPC tests, 21 knowledge tests, Rust formatting and diff checks.
@guicybercode
guicybercode marked this pull request as ready for review September 6, 2026 02:29
@guicybercode
guicybercode requested a lite review from Copilot September 6, 2026 02:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@guicybercode
guicybercode merged commit 932136d into main Sep 6, 2026
5 of 6 checks passed
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.

2 participants