Skip to content

Sharing 2/8: add tiered live drop zone and mount lifecycle - #37

Merged
zackees merged 1 commit into
mainfrom
feat/issue-28-drop-zone
Oct 18, 2026
Merged

zackees merged 1 commit into
mainfrom
feat/issue-28-drop-zone

Conversation

@zackees

@zackees zackees commented Oct 18, 2026

Copy link
Copy Markdown
Owner

Closes #28

Creates a private live drop zone for each running session. The compose bind is absent for Off, read-only for Encrypted and Read-only, and writable for Read & write. It uses rslave propagation and degrades to a running session with a visible reason when live propagation is unavailable. Existing startup archive binds keep their existing behavior.

Adds internal live-mount bookkeeping, safe mount names and de-duplication, tier checks, explicit unmount with a busy-file error, and teardown before container removal. The running sharing limit can only tighten after a Settings change. The internal mount API accepts a filesystem mount function; dirfs and zipfs will connect to it in their sub-issues. No webview command accepts a host path.

Verification:

  • nix build .#docker-vm -o /tmp/docker-vm-issue-28-result passed, including Rust unit tests for bind JSON, naming, tier checks and no-propagation fallback.
  • On private Xvfb sessions, docker inspect showed /home/desktop/mnt as (RW=false, Propagation=rslave) for ro and encrypted, (RW=true, Propagation=rslave) for rw, and no drop-zone bind for off.
  • Each test viewer was stopped by exact PID. Its container, network and mount directory were removed.

The filesystem mount callbacks have no native-menu caller yet; the live folder and archive behavior is covered by #29 through #32.

@zackees
zackees merged commit a8f8974 into main Oct 18, 2026
1 check failed
@zackees
zackees deleted the feat/issue-28-drop-zone branch October 18, 2026 00:26
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.

Sharing 2/8: Drop zone bind per tier, live-mount bookkeeping, teardown

1 participant