Skip to content

Add remote SFTP editing with GlassEditorKit - #33

Merged
msitarzewski merged 2 commits into
mainfrom
agent/glass-editor-sftp-m4
Aug 14, 2026
Merged

Add remote SFTP editing with GlassEditorKit#33
msitarzewski merged 2 commits into
mainfrom
agent/glass-editor-sftp-m4

Conversation

@msitarzewski

Copy link
Copy Markdown
Owner

Summary

  • integrate GlassEditorKit by local path for remote SFTP file editing
  • keep every remote byte inside glas.sh's existing verified SFTP transfer layer
  • add two-tier remote conflict detection and explicit user-owned resolutions
  • add verified atomic replacement through OpenSSH POSIX rename while preserving ordinary no-clobber uploads
  • record the implementation, acceptance evidence, and permanent Keychain/sandbox operating rule in the Memory Bank

Boundary and safety

  • GlassEditorKit owns editor UI and conflict decisions only; it receives no SFTP client or credentials
  • the streaming reader and editor configuration share one 8 MiB ceiling
  • SFTP v3 nanoseconds remain unknown instead of inventing precision
  • dirty or indeterminate conflicts never auto-resolve or silently overwrite
  • the existing create-no-clobber upload path remains behavior-identical
  • release packaging must replace the local package path with a pinned GitHub URL

Validation

  • glas.sh macOS tests: 278/278 passed
  • Citadel: 40 passed, 5 environment-gated skips, 0 failures
  • GlassEditorKit UI: 102 passed
  • GlassEditorKit Core: 297 passed, 1 package-known ReDoS issue
  • macOS Debug build: passed
  • visionOS Simulator build: passed
  • signed manual open/edit/save acceptance: passed
  • signed forced-conflict acceptance: passed
  • git diff check and Memory Bank JSONL validation: passed
  • no local foreground GUI automation run

Manual M4 acceptance

A remote file was opened, edited, and saved. The same file was then changed from a shell while the editor held local changes. glas.sh surfaced Overwrite Remote, Discard Local Changes and Reload, Save Local Copy, and Keep Editing instead of overwriting automatically.

@msitarzewski
msitarzewski merged commit d9dd772 into main Aug 14, 2026
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