Skip to content

crates/minimal: This is 0.3.2 - #159

Merged
twitchyliquid64 merged 1 commit into
mainfrom
tom/fix
Apr 24, 2026
Merged

crates/minimal: This is 0.3.2#159
twitchyliquid64 merged 1 commit into
mainfrom
tom/fix

Conversation

@twitchyliquid64

@twitchyliquid64 twitchyliquid64 commented Apr 24, 2026

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Chores
    • Bumped package version to 0.3.2.
    • Prepares the next release with no functional changes; internal metadata updated to reflect the new version.

@coderabbitai

coderabbitai Bot commented Apr 24, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c11f44b6-2493-4fce-8a90-944c31e7a6a8

📥 Commits

Reviewing files that changed from the base of the PR and between 0491589 and bce579f.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • crates/minimal/Cargo.toml
✅ Files skipped from review due to trivial changes (1)
  • crates/minimal/Cargo.toml

📝 Walkthrough

Walkthrough

The pull request updates the package version in the minimal crate's manifest from 0.3.1 to 0.3.2. No other dependencies, configuration entries, or source code were modified.

Changes

Cohort / File(s) Summary
Version Bump
crates/minimal/Cargo.toml
Updated [package].version from 0.3.1 to 0.3.2.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~1 minute

Poem

🐰 A tiny hop to change a line,
From three-point-one to three-point-two,
A whisper in the manifest, fine,
One digit shifts, the rest stays true,
I nibble code and bid adieu.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: bumping the crates/minimal package version from 0.3.1 to 0.3.2.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch tom/fix

Comment @coderabbitai help to get the list of available commands and usage tips.

@twitchyliquid64
twitchyliquid64 enabled auto-merge (rebase) April 24, 2026 21:21

@bryan-minimal bryan-minimal left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@twitchyliquid64
twitchyliquid64 merged commit e5122f5 into main Apr 24, 2026
8 checks passed
@twitchyliquid64
twitchyliquid64 deleted the tom/fix branch April 24, 2026 21:39
0chroma added a commit that referenced this pull request Jun 16, 2026
- Add CLI subcommands: activate, attach, destroy, dash (fzf picker stub)
- Implement SSH client transport over UDS to minimald
- Wire oneshot RPC calls for ls (list sessions), activate (create session)
- Add exec_in_session for non-interactive command execution in sessions
- PTY interactive shell is blocked on daemon PTY support (exec.rs:650-654)
- Update Cargo.toml with minimald-rpc, russh, sessions, serde_json deps
0chroma added a commit that referenced this pull request Jun 16, 2026
- ls --raw: outputs one session ID per line for fzf piping
- minimal dash: interactive fzf picker that chains into attach
- Falls back to plain table if fzf is not installed
- Update implementation plan with Phase 5 details
0chroma added a commit that referenced this pull request Jun 18, 2026
Implement twitchyliquid64's suggestion: shell out to ssh for interactive
PTY attachment instead of reporting it as unsupported. The daemon's
shell_request handler already mints PTY-backed session shells, so we
avoid reimplementing termios/PTY management by deferring to openssh.

Adds a hidden `proxy` subcommand that pipes stdio to the daemon UDS,
used as ssh's ProxyCommand so we don't depend on socat or nc being
installed. Also fixes pre-existing fmt/clippy failures.
0chroma added a commit that referenced this pull request Jun 18, 2026
- Add CLI subcommands: activate, attach, destroy, dash (fzf picker stub)
- Implement SSH client transport over UDS to minimald
- Wire oneshot RPC calls for ls (list sessions), activate (create session)
- Add exec_in_session for non-interactive command execution in sessions
- PTY interactive shell is blocked on daemon PTY support (exec.rs:650-654)
- Update Cargo.toml with minimald-rpc, russh, sessions, serde_json deps
0chroma added a commit that referenced this pull request Jun 18, 2026
- ls --raw: outputs one session ID per line for fzf piping
- minimal dash: interactive fzf picker that chains into attach
- Falls back to plain table if fzf is not installed
- Update implementation plan with Phase 5 details
0chroma added a commit that referenced this pull request Jun 18, 2026
Implement twitchyliquid64's suggestion: shell out to ssh for interactive
PTY attachment instead of reporting it as unsupported. The daemon's
shell_request handler already mints PTY-backed session shells, so we
avoid reimplementing termios/PTY management by deferring to openssh.

Adds a hidden `proxy` subcommand that pipes stdio to the daemon UDS,
used as ssh's ProxyCommand so we don't depend on socat or nc being
installed. Also fixes pre-existing fmt/clippy failures.
0chroma added a commit that referenced this pull request Jun 18, 2026
- Add CLI subcommands: activate, attach, destroy, dash (fzf picker stub)
- Implement SSH client transport over UDS to minimald
- Wire oneshot RPC calls for ls (list sessions), activate (create session)
- Add exec_in_session for non-interactive command execution in sessions
- PTY interactive shell is blocked on daemon PTY support (exec.rs:650-654)
- Update Cargo.toml with minimald-rpc, russh, sessions, serde_json deps
0chroma added a commit that referenced this pull request Jun 18, 2026
- ls --raw: outputs one session ID per line for fzf piping
- minimal dash: interactive fzf picker that chains into attach
- Falls back to plain table if fzf is not installed
- Update implementation plan with Phase 5 details
0chroma added a commit that referenced this pull request Jun 18, 2026
Implement twitchyliquid64's suggestion: shell out to ssh for interactive
PTY attachment instead of reporting it as unsupported. The daemon's
shell_request handler already mints PTY-backed session shells, so we
avoid reimplementing termios/PTY management by deferring to openssh.

Adds a hidden `proxy` subcommand that pipes stdio to the daemon UDS,
used as ssh's ProxyCommand so we don't depend on socat or nc being
installed. Also fixes pre-existing fmt/clippy failures.
0chroma added a commit that referenced this pull request Jun 18, 2026
Wire cmd_destroy to the DestroySession RPC added in #462. Resolves the
session by UUID or name via GetSessionRecord (matching cmd_attach), then
issues the destroy RPC and prints confirmation.
0chroma added a commit that referenced this pull request Jun 18, 2026
Per reviewer feedback, exec_in_session used the daemon's old exec codepath
which doesn't hit the sessions module. Remove it entirely and shell out
to ssh for both interactive and --command attachment — ssh handles
termios/PTY reconfiguration and the daemon's shell_request handler
mints the session shell. exec_request remains on the daemon side for
git-receive-pack and vscode remote only.
0chroma added a commit that referenced this pull request Jun 18, 2026
On Linux, check if the daemon UDS is connectable before each command.
If not, spawn `minimald run` as a detached background process (setsid +
null stdio) and poll the UDS until it becomes available (4s timeout).

Also fixes resolve_socket_path() to match minimald's listen_on() on
Linux ($XDG_STATE_HOME/minimal/providers/local-0/ssh.sock), which was
previously broken — it only worked on macOS via minvmd.

No state machine or state.toml — just socket polling. The lifecycle
management PR (#435) can layer richer state tracking on top later.
0chroma added a commit that referenced this pull request Jun 19, 2026
…destroy) (#434)

* feat(minimal2): implement client interface with SSH transport (#159)

- Add CLI subcommands: activate, attach, destroy, dash (fzf picker stub)
- Implement SSH client transport over UDS to minimald
- Wire oneshot RPC calls for ls (list sessions), activate (create session)
- Add exec_in_session for non-interactive command execution in sessions
- PTY interactive shell is blocked on daemon PTY support (exec.rs:650-654)
- Update Cargo.toml with minimald-rpc, russh, sessions, serde_json deps

* feat(minimal2): add --raw flag and 'dash' fzf session picker (#159)

- ls --raw: outputs one session ID per line for fzf piping
- minimal dash: interactive fzf picker that chains into attach
- Falls back to plain table if fzf is not installed
- Update implementation plan with Phase 5 details

* feat(minimal2): interactive attach via ssh ProxyCommand (#159)

Implement twitchyliquid64's suggestion: shell out to ssh for interactive
PTY attachment instead of reporting it as unsupported. The daemon's
shell_request handler already mints PTY-backed session shells, so we
avoid reimplementing termios/PTY management by deferring to openssh.

Adds a hidden `proxy` subcommand that pipes stdio to the daemon UDS,
used as ssh's ProxyCommand so we don't depend on socat or nc being
installed. Also fixes pre-existing fmt/clippy failures.

* feat(minimal2): wire up destroy command via DestroySession RPC (#159)

Wire cmd_destroy to the DestroySession RPC added in #462. Resolves the
session by UUID or name via GetSessionRecord (matching cmd_attach), then
issues the destroy RPC and prints confirmation.

* refactor(minimal2): migrate attach --command to ssh shell-out (#159)

Per reviewer feedback, exec_in_session used the daemon's old exec codepath
which doesn't hit the sessions module. Remove it entirely and shell out
to ssh for both interactive and --command attachment — ssh handles
termios/PTY reconfiguration and the daemon's shell_request handler
mints the session shell. exec_request remains on the daemon side for
git-receive-pack and vscode remote only.

* feat(minimal2): auto-spawn minimald on Linux (#159)

On Linux, check if the daemon UDS is connectable before each command.
If not, spawn `minimald run` as a detached background process (setsid +
null stdio) and poll the UDS until it becomes available (4s timeout).

Also fixes resolve_socket_path() to match minimald's listen_on() on
Linux ($XDG_STATE_HOME/minimal/providers/local-0/ssh.sock), which was
previously broken — it only worked on macOS via minvmd.

No state machine or state.toml — just socket polling. The lifecycle
management PR (#435) can layer richer state tracking on top later.

* fix(minimal2): thread --minimal-dir through auto-spawn

Auto-spawn was checking the default UDS path instead of the --minimal-dir
override, causing it to fail when the daemon was already running with a
custom state dir. Also pass --minimal-state-dir to the spawned minimald
so it listens on the same path we're polling.

E2E verified: ls, activate, attach --command, destroy (by UUID and
name), auto-spawn (default and --minimal-dir paths).

* refactor(minimal2): remove temporary dash/fzf picker

Remove the `dash` subcommand, `ls --raw` flag, and `LsArgs` struct.
These were temporary scaffolding for an fzf-based session picker — a
proper TUI will be built later. Net -125 lines.

* revert(minimal2): add back ls --raw flag

--raw has standalone value for scripting (e.g. `minimal ls --raw | fzf`),
independent of the removed dash subcommand.

* style(minimal2): add missing blank line between functions

* feat(minimald,minimal2): detect starting daemon via PID file

minimald now writes a PID file at startup. The minimal2 auto-spawn logic
checks this file before spawning: if the PID is alive the daemon is
already starting (e.g. spawned concurrently), so it waits for the UDS
rather than spawning a duplicate. The spawn path uses Child::try_wait
to detect a crash during startup and fail fast instead of exhausting
the 4s timeout.

Addresses review feedback on #434.
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