remo-cli 2.2.0rc7__tar.gz → 2.2.0rc9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.github/workflows/ci.yml +31 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/CLAUDE.md +2 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/PKG-INFO +1 -1
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/docs/web-session-interface.md +10 -7
- remo_cli-2.2.0rc9/frontend/package-lock.json +3891 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/package.json +10 -1
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/SessionRail.css +0 -8
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/SessionRail.tsx +0 -4
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/TerminalCard.css +27 -6
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/TerminalCard.tsx +68 -39
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/WorkspacePane.tsx +60 -25
- remo_cli-2.2.0rc9/frontend/src/state/workspace.test.ts +98 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/state/workspace.ts +16 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/terminal/GhosttyRenderer.ts +5 -5
- remo_cli-2.2.0rc9/frontend/src/terminal/TerminalConnection.test.ts +147 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/terminal/XtermRenderer.ts +10 -8
- remo_cli-2.2.0rc9/frontend/src/terminal/keymap.test.ts +32 -0
- remo_cli-2.2.0rc9/frontend/src/terminal/keymap.ts +27 -0
- remo_cli-2.2.0rc9/frontend/src/test/setup.ts +10 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/vite.config.ts +14 -1
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/pyproject.toml +1 -1
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/e2e/fixtures.ts +4 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/e2e/workspace-layout.spec.ts +4 -3
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/uv.lock +1 -1
- remo_cli-2.2.0rc7/frontend/package-lock.json +0 -1968
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-analyze/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-checklist/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-clarify/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-constitution/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-converge/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-git-commit/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-git-feature/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-git-initialize/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-git-remote/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-git-validate/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-implement/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-plan/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-specify/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-tasks/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.claude/skills/speckit-taskstoissues/SKILL.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.devcontainer/devcontainer.json +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.dockerignore +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.github/dependabot.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.github/workflows/provision.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.github/workflows/release.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.github/workflows/smoke-test-cleanup.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.github/workflows/smoke-test.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.github/workflows/teardown.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.gitignore +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.maverick/checkpoints/feature/implementation_complete.json +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.maverick/checkpoints/feature/phase_${{ index }}_complete.json +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.maverick/checkpoints/feature/validation_complete.json +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/.registry +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/README.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/commands/speckit.git.commit.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/commands/speckit.git.feature.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/commands/speckit.git.initialize.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/commands/speckit.git.remote.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/commands/speckit.git.validate.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/config-template.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/extension.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/git-config.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/scripts/bash/auto-commit.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/scripts/bash/create-new-feature.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/scripts/bash/git-common.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/scripts/bash/initialize-repo.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/scripts/powershell/create-new-feature.ps1 +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/scripts/powershell/git-common.ps1 +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/extensions.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/feature.json +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/init-options.json +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/integration.json +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/integrations/claude.manifest.json +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/integrations/speckit.manifest.json +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/memory/constitution.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/scripts/bash/common.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/scripts/bash/setup-plan.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/scripts/bash/setup-tasks.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/templates/agent-file-template.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/templates/checklist-template.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/templates/constitution-template.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/templates/plan-template.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/templates/spec-template.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/templates/tasks-template.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/workflows/speckit/workflow.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/.specify/workflows/workflow-registry.json +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/AGENTS.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/CONTRIBUTING.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/Dockerfile +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/LICENSE +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/README.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/.ansible-lint +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/README.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/ansible.cfg +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/aws_configure.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/aws_resize.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/aws_site.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/aws_teardown.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/group_vars/all.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/group_vars/incus_containers.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/group_vars/proxmox_containers.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/hetzner_configure.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/hetzner_provision.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/hetzner_resize.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/hetzner_site.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/hetzner_teardown.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/incus_bootstrap.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/incus_configure.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/incus_provision.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/incus_resize.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/incus_site.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/incus_teardown.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/inventory/hosts.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/inventory/incus_containers.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/proxmox_bootstrap.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/proxmox_configure.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/proxmox_provision.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/proxmox_resize.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/proxmox_site.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/proxmox_teardown.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/requirements.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/aws_server/defaults/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/aws_server/tasks/ebs.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/aws_server/tasks/ec2.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/aws_server/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/aws_server/tasks/patch_manager.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/aws_server/tasks/preflight.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/aws_server/tasks/security_group.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/deacon/defaults/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/deacon/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/devcontainers/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/docker/handlers/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/docker/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/fzf/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/github_cli/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/hetzner_server/defaults/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/hetzner_server/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/incus_bootstrap/defaults/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/incus_bootstrap/handlers/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/incus_bootstrap/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/incus_container/defaults/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/incus_container/handlers/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/incus_container/meta/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/incus_container/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/incus_container/tasks/preflight.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/incus_container_teardown/defaults/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/incus_container_teardown/meta/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/incus_container_teardown/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/nodejs/defaults/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/nodejs/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/proxmox_bootstrap/defaults/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/proxmox_bootstrap/meta/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/proxmox_bootstrap/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/proxmox_container/defaults/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/proxmox_container/handlers/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/proxmox_container/meta/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/proxmox_container/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/proxmox_container/tasks/preflight.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/proxmox_container_teardown/defaults/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/proxmox_container_teardown/meta/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/proxmox_container_teardown/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/user_setup/defaults/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/user_setup/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/user_setup/templates/devshell.sh.j2 +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/user_setup/templates/project-launch.sh.j2 +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/user_setup/templates/project-menu.sh.j2 +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/user_setup/templates/remo-host.sh.j2 +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/zellij/defaults/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/zellij/tasks/main.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/zellij/templates/config.kdl.j2 +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/roles/zellij/templates/layouts/minimal.kdl.j2 +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/ansible/tasks/configure_dev_tools.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/docker/Dockerfile +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/docker/compose.example.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/docker/entrypoint.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/docs/aws.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/docs/hetzner.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/docs/incus.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/docs/install.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/docs/proxmox.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/docs/remo-web-speckit-input.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/docs/remo-web.html +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/index.html +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/public/README.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/public/dist__ghostty-vt.wasm +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/public/ghostty-vt.wasm +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/scripts/copy-ghostty-wasm.mjs +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/api/client.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/AppRoot.tsx +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/AppShell.css +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/AppShell.tsx +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/AwaitingAdoption.css +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/AwaitingAdoption.tsx +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/OfflineOverlay.css +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/OfflineOverlay.tsx +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/PairToSync.css +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/PairToSync.tsx +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/SettingsPage.css +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/SettingsPage.tsx +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/ShortcutsModal.css +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/ShortcutsModal.tsx +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/TopBar.css +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/TopBar.tsx +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/WorkspacePane.css +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/providerMeta.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/components/railModel.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/lib/clipboard.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/lib/fullscreen.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/main.tsx +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/state/discovery.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/state/fonts.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/state/health.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/state/settings.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/state/useConsoleKeyboard.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/terminal/.gitkeep +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/terminal/RendererAdapter.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/terminal/TerminalConnection.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/terminal/defaultRenderer.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/theme/fonts.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/src/theme/tokens.css +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/frontend/tsconfig.json +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/install.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/maverick.yaml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/playwright.config.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/project-menu.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/remo +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/run.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/scripts/setup-aws-oidc.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/001-bootstrap-incus-host/checklists/requirements.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/001-bootstrap-incus-host/checklists/validation.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/001-bootstrap-incus-host/contracts/playbook-interface.yaml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/001-bootstrap-incus-host/contracts/role-interface.yaml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/001-bootstrap-incus-host/data-model.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/001-bootstrap-incus-host/plan.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/001-bootstrap-incus-host/quickstart.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/001-bootstrap-incus-host/research.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/001-bootstrap-incus-host/spec.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/001-bootstrap-incus-host/tasks.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/002-incus-container-support/checklists/requirements.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/002-incus-container-support/contracts/playbook-interface.yaml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/002-incus-container-support/contracts/role-interface.yaml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/002-incus-container-support/data-model.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/002-incus-container-support/plan.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/002-incus-container-support/quickstart.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/002-incus-container-support/research.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/002-incus-container-support/spec.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/002-incus-container-support/tasks.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/003-python-cli-rewrite/checklists/requirements.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/003-python-cli-rewrite/data-model.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/003-python-cli-rewrite/plan.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/003-python-cli-rewrite/quickstart.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/003-python-cli-rewrite/research.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/003-python-cli-rewrite/spec.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/003-python-cli-rewrite/tasks.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/004-proxmox-container-support/spec.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/005-provider-snapshots/checklists/requirements.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/005-provider-snapshots/contracts/cli-surface.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/005-provider-snapshots/data-model.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/005-provider-snapshots/plan.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/005-provider-snapshots/quickstart.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/005-provider-snapshots/research.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/005-provider-snapshots/spec.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/005-provider-snapshots/tasks.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/010-web-session-interface/checklists/requirements.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/010-web-session-interface/contracts/remo-host-protocol.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/010-web-session-interface/contracts/rest-api.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/010-web-session-interface/contracts/terminal-websocket.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/010-web-session-interface/data-model.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/010-web-session-interface/plan.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/010-web-session-interface/quickstart.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/010-web-session-interface/research.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/010-web-session-interface/spec.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/010-web-session-interface/tasks.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/011-web-adopt/checklists/requirements.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/011-web-adopt/contracts/cli-web-adopt.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/011-web-adopt/contracts/setup-api.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/011-web-adopt/data-model.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/011-web-adopt/plan.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/011-web-adopt/quickstart-results.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/011-web-adopt/quickstart.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/011-web-adopt/research.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/011-web-adopt/spec.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/011-web-adopt/tasks.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/012-web-adopt-pairing/contracts/cli-web-adopt.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/012-web-adopt-pairing/contracts/pairing-api.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/012-web-adopt-pairing/contracts/setup-api.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/012-web-adopt-pairing/data-model.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/012-web-adopt-pairing/plan.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/012-web-adopt-pairing/quickstart.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/012-web-adopt-pairing/research.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/012-web-adopt-pairing/spec.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/specs/012-web-adopt-pairing/tasks.md +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/__main__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/cli/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/cli/cp.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/cli/main.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/cli/providers/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/cli/providers/aws.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/cli/providers/hetzner.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/cli/providers/incus.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/cli/providers/proxmox.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/cli/shell.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/cli/web.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/ansible_runner.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/completion.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/config.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/known_hosts.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/output.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/picker.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/remo_host_client.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/rsync.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/snapshot.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/ssh.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/validation.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/version.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/core/web_adopt.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/models/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/models/capability.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/models/discovery.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/models/host.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/models/session_target.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/models/snapshot.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/providers/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/providers/aws.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/providers/hetzner.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/providers/incus.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/providers/proxmox.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/api/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/api/hosts.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/api/pairing.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/api/setup.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/api/terminals.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/app.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/check.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/config.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/discovery.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/health.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/logging_config.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/models.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/operator_auth.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/pairing.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/ssh_master.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/state.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/terminal.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/terminal_registry.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/src/remo_cli/web/tokens.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/ansible/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/ansible/test_remo_host_idempotency.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/conftest.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/e2e/ghostty-shell-io.spec.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/e2e/ghostty-tui-compatibility.spec.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/e2e/keyboard-routing.spec.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/e2e/mobile.spec.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/e2e/reconnect.spec.ts +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/image/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/image/test_docker_image.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/integration/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/integration/_nine_terminal_fixture.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/integration/orbstack-cloud-init.yml +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/integration/orbstack.sh +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/integration/test_nine_terminals.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/integration/test_nine_terminals_soak.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/integration/test_remo_host_e2e.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/integration/test_security_rejections.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/integration/test_terminal_attach.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/integration/test_web_adopt_e2e.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/integration/test_web_cli_parity.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/perf/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/perf/test_latency.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/cli/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/cli/providers/test_aws_snapshot.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/cli/providers/test_hetzner_snapshot.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/cli/providers/test_incus_snapshot.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/cli/providers/test_proxmox_snapshot.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/cli/test_cp.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/cli/test_main.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/cli/test_shell.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/cli/test_web_adopt_cmd.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_ansible_runner.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_config.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_known_hosts.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_output.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_picker.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_remo_host_client.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_rsync.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_snapshot.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_ssh.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_ssh_controlpath.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_ssh_identity_opts.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_validation.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_version.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_web_adopt_authorize.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_web_adopt_code.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_web_adopt_payload.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_web_adopt_trust.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/core/test_web_push.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/models/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/models/test_capability.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/models/test_discovery.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/models/test_session_target.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/providers/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/providers/test_aws_snapshot.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/providers/test_hetzner_snapshot.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/providers/test_incus_snapshot.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/providers/test_proxmox_devcontainer_runtime.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/providers/test_proxmox_snapshot.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/test_ansible_templates.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/test_host_model.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/__init__.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/_pairing_support.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/conftest.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_backpressure.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_check.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_csp.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_discovery.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_health_states.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_hosts_mapping.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_lazy_import.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_log_redaction.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_mint_gating.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_operator_auth.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_pairing.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_pairing_origin.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_setup_api.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_setup_auth.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_setup_dormancy.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_state.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_terminal_resize.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_terminals_api.py +0 -0
- {remo_cli-2.2.0rc7 → remo_cli-2.2.0rc9}/tests/unit/web/test_tokens.py +0 -0
|
@@ -105,3 +105,34 @@ jobs:
|
|
|
105
105
|
|
|
106
106
|
- name: Ruff check
|
|
107
107
|
run: uv run ruff check src/remo_cli
|
|
108
|
+
|
|
109
|
+
frontend:
|
|
110
|
+
name: Frontend (typecheck + unit + build)
|
|
111
|
+
runs-on: ubuntu-latest
|
|
112
|
+
# Fast, backend-free coverage of the SPA: tsc typecheck, the Vitest
|
|
113
|
+
# unit/component suite (frontend/src/**/*.test.ts), and a production build.
|
|
114
|
+
# The Playwright e2e suite (tests/e2e) is NOT run here — it needs a live
|
|
115
|
+
# `remo web serve` backend (REMO_E2E_BASE_URL); see playwright.config.ts.
|
|
116
|
+
defaults:
|
|
117
|
+
run:
|
|
118
|
+
working-directory: frontend
|
|
119
|
+
steps:
|
|
120
|
+
- uses: actions/checkout@v7
|
|
121
|
+
|
|
122
|
+
- uses: actions/setup-node@v4
|
|
123
|
+
with:
|
|
124
|
+
node-version: "20"
|
|
125
|
+
cache: npm
|
|
126
|
+
cache-dependency-path: frontend/package-lock.json
|
|
127
|
+
|
|
128
|
+
- name: Install dependencies
|
|
129
|
+
run: npm ci
|
|
130
|
+
|
|
131
|
+
- name: Typecheck
|
|
132
|
+
run: npm run lint
|
|
133
|
+
|
|
134
|
+
- name: Unit tests
|
|
135
|
+
run: npm run test
|
|
136
|
+
|
|
137
|
+
- name: Build
|
|
138
|
+
run: npm run build
|
|
@@ -170,6 +170,8 @@ uv run remo web serve # Run the browser terminal broker locally
|
|
|
170
170
|
cd frontend && npm ci
|
|
171
171
|
npm run build # tsc -b && vite build -> frontend/dist
|
|
172
172
|
npm run lint # tsc --noEmit
|
|
173
|
+
npm run test # Vitest unit/component suite (jsdom, no backend)
|
|
174
|
+
npm run test:e2e # Playwright (needs REMO_E2E_BASE_URL -> live remo web serve)
|
|
173
175
|
```
|
|
174
176
|
|
|
175
177
|
## Architecture (Three-Layer)
|
|
@@ -99,13 +99,16 @@ The SPA is a two-pane **web console**:
|
|
|
99
99
|
chips, and an "⚡ Active only" toggle narrow the list; "⊞ Open all · N" opens every available
|
|
100
100
|
target as a grid.
|
|
101
101
|
- **Terminal pane** (right). Clicking a row opens that target **solo** (single view); ⌘/Ctrl-click a
|
|
102
|
-
row (or its `+` button) **adds** it to a responsive grid (1/2/3 columns by count).
|
|
103
|
-
tile
|
|
104
|
-
the
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
102
|
+
row (or its `+` button) **adds** it to a responsive grid (1/2/3 columns by count). In a grid, **drag
|
|
103
|
+
a tile's header onto another to swap their positions** (the arrangement persists until the grid is
|
|
104
|
+
rebuilt); the **◻** control solos a tile; **Esc** collapses the grid back to the focused terminal;
|
|
105
|
+
number keys **1–9** jump to the numbered sessions (⌘ 1–9 add to the grid). Hidden terminals stay
|
|
106
|
+
connected and keep their scrollback. Each terminal header shows `provider · instance · region`
|
|
107
|
+
(doubling as the drag handle), connection state, and a
|
|
108
|
+
window-control cluster of the display modes, ordered by how much space they take: **⊞ Grid** (smaller —
|
|
109
|
+
a tile in the grid, when one is available), **◻ Normal** (fills the app's main pane — single view),
|
|
110
|
+
**⤢ Fullscreen** (the terminal fills the whole window — shell chrome hidden, plus best-effort browser
|
|
111
|
+
fullscreen), and **✕ Close** — with the current mode shown active. Press **f** to
|
|
109
112
|
toggle fullscreen on the focused terminal; **Esc** exits it. Fullscreen is a presentation overlay: it
|
|
110
113
|
never disturbs the single/grid layout underneath, so exiting returns to exactly where you were.
|
|
111
114
|
|