remo-cli 4.0.1__tar.gz → 4.2.0__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-4.2.0/.release-please-manifest.json +3 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/AGENTS.md +3 -1
- {remo_cli-4.0.1 → remo_cli-4.2.0}/CHANGELOG.md +16 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/CLAUDE.md +3 -1
- {remo_cli-4.0.1 → remo_cli-4.2.0}/PKG-INFO +1 -1
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docs/web-session-interface.md +26 -3
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/AppShell.tsx +3 -4
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/SettingsPage.tsx +30 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/TerminalCard.tsx +352 -219
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/TopBar.css +8 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/TopBar.tsx +18 -28
- remo_cli-4.2.0/frontend/src/components/WorkspacePane.css +139 -0
- remo_cli-4.2.0/frontend/src/components/WorkspacePane.test.tsx +271 -0
- remo_cli-4.2.0/frontend/src/components/WorkspacePane.tsx +335 -0
- remo_cli-4.2.0/frontend/src/components/masterLayout.test.ts +202 -0
- remo_cli-4.2.0/frontend/src/components/masterLayout.ts +196 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/state/settings.test.ts +50 -12
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/state/settings.ts +56 -6
- remo_cli-4.2.0/frontend/src/state/workspace.test.ts +290 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/state/workspace.ts +151 -8
- {remo_cli-4.0.1 → remo_cli-4.2.0}/pyproject.toml +1 -1
- remo_cli-4.2.0/scripts/palette-check.sh +67 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_discovery.py +57 -18
- {remo_cli-4.0.1 → remo_cli-4.2.0}/uv.lock +1 -1
- remo_cli-4.0.1/.release-please-manifest.json +0 -3
- remo_cli-4.0.1/frontend/src/components/WorkspacePane.css +0 -70
- remo_cli-4.0.1/frontend/src/components/WorkspacePane.tsx +0 -216
- remo_cli-4.0.1/frontend/src/state/workspace.test.ts +0 -98
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/release/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-analyze/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-checklist/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-clarify/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-constitution/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-converge/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-git-commit/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-git-feature/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-git-initialize/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-git-remote/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-git-validate/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-implement/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-plan/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-specify/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-tasks/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.claude/skills/speckit-taskstoissues/SKILL.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.devcontainer/devcontainer.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.dockerignore +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.github/CODEOWNERS +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.github/dependabot.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.github/workflows/ci.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.github/workflows/codeql.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.github/workflows/dependency-review.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.github/workflows/dev-build.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.github/workflows/provision.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.github/workflows/release-please.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.github/workflows/release.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.github/workflows/smoke-test-cleanup.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.github/workflows/smoke-test.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.github/workflows/teardown.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.gitignore +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.maverick/checkpoints/feature/implementation_complete.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.maverick/checkpoints/feature/phase_${{ index }}_complete.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.maverick/checkpoints/feature/validation_complete.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/.registry +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/README.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/commands/speckit.git.commit.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/commands/speckit.git.feature.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/commands/speckit.git.initialize.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/commands/speckit.git.remote.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/commands/speckit.git.validate.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/config-template.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/extension.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/git-config.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/scripts/bash/auto-commit.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/scripts/bash/create-new-feature.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/scripts/bash/git-common.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/scripts/bash/initialize-repo.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/scripts/powershell/create-new-feature.ps1 +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/scripts/powershell/git-common.ps1 +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/extensions.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/feature.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/init-options.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/integration.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/integrations/claude.manifest.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/integrations/speckit.manifest.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/memory/constitution.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/scripts/bash/common.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/scripts/bash/setup-plan.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/scripts/bash/setup-tasks.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/templates/agent-file-template.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/templates/checklist-template.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/templates/constitution-template.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/templates/plan-template.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/templates/spec-template.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/templates/tasks-template.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/workflows/speckit/workflow.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/.specify/workflows/workflow-registry.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/CONTRIBUTING.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/Dockerfile +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/LICENSE +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/README.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/SECURITY.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/.ansible-lint +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/README.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/ansible.cfg +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/aws_configure.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/aws_resize.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/aws_site.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/aws_teardown.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/group_vars/all.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/group_vars/incus_containers.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/group_vars/proxmox_containers.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/hetzner_configure.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/hetzner_provision.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/hetzner_resize.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/hetzner_site.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/hetzner_teardown.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/incus_bootstrap.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/incus_configure.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/incus_provision.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/incus_resize.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/incus_site.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/incus_teardown.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/inventory/hosts.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/inventory/incus_containers.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/proxmox_bootstrap.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/proxmox_configure.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/proxmox_provision.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/proxmox_resize.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/proxmox_site.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/proxmox_teardown.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/requirements.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/aws_server/defaults/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/aws_server/tasks/ebs.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/aws_server/tasks/ec2.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/aws_server/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/aws_server/tasks/patch_manager.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/aws_server/tasks/preflight.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/aws_server/tasks/security_group.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/deacon/defaults/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/deacon/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/devcontainers/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/docker/handlers/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/docker/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/fzf/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/github_cli/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/hetzner_server/defaults/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/hetzner_server/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/incus_bootstrap/defaults/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/incus_bootstrap/handlers/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/incus_bootstrap/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/incus_container/defaults/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/incus_container/handlers/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/incus_container/meta/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/incus_container/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/incus_container/tasks/preflight.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/incus_container_teardown/defaults/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/incus_container_teardown/meta/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/incus_container_teardown/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/nodejs/defaults/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/nodejs/files/nodesource-repo.gpg.key +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/nodejs/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/proxmox_bootstrap/defaults/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/proxmox_bootstrap/meta/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/proxmox_bootstrap/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/proxmox_container/defaults/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/proxmox_container/handlers/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/proxmox_container/meta/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/proxmox_container/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/proxmox_container/tasks/preflight.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/proxmox_container_teardown/defaults/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/proxmox_container_teardown/meta/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/proxmox_container_teardown/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/user_setup/defaults/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/user_setup/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/user_setup/templates/devshell.sh.j2 +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/user_setup/templates/project-launch.sh.j2 +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/user_setup/templates/project-menu.sh.j2 +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/user_setup/templates/remo-host.sh.j2 +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/zellij/defaults/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/zellij/tasks/main.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/zellij/templates/config.kdl.j2 +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/roles/zellij/templates/layouts/minimal.kdl.j2 +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/tasks/configure_dev_tools.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/ansible/tasks/repair_apt_sources.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docker/Dockerfile +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docker/compose.example.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docker/entrypoint.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docs/aws.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docs/feature-history.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docs/hetzner.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docs/incus.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docs/install.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docs/maintaining-claude-md.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docs/maintaining-generated-types.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docs/providers.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docs/proxmox.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docs/remo-web-speckit-input.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/docs/remo-web.html +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/index.html +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/package-lock.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/package.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/scripts/check-types-fresh.mjs +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/scripts/generate-frame-types.mjs +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/scripts/generate-schema-types.mjs +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/api/client.test.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/api/client.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/api/generated/README.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/api/generated/openapi.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/api/generated/schema.d.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/api/generated/terminal-frames.d.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/api/generated/terminal-frames.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/api/generated.test.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/AppRoot.tsx +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/AppShell.css +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/AwaitingAdoption.css +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/AwaitingAdoption.tsx +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/OfflineOverlay.css +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/OfflineOverlay.tsx +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/PairToSync.css +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/PairToSync.tsx +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/SessionRail.css +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/SessionRail.tsx +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/SettingsPage.css +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/ShortcutsModal.css +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/ShortcutsModal.tsx +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/TerminalCard.css +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/TerminalCard.test.tsx +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/providerMeta.test.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/providerMeta.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/railModel.test.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/components/railModel.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/lib/clipboard.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/lib/fullscreen.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/main.tsx +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/state/discovery.test.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/state/discovery.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/state/fonts.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/state/health.test.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/state/health.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/state/latency.test.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/state/latency.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/state/useConsoleKeyboard.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/terminal/.gitkeep +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/terminal/RendererAdapter.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/terminal/TerminalConnection.test.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/terminal/TerminalConnection.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/terminal/XtermRenderer.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/terminal/defaultRenderer.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/terminal/keymap.test.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/terminal/keymap.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/test/setup.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/theme/fonts.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/theme/terminalThemes.test.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/theme/terminalThemes.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/src/theme/tokens.css +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/tsconfig.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/frontend/vite.config.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/install.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/maverick.yaml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/playwright.config.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/project-menu.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/release-please-config.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/remo +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/remo.svg +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/run.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/scripts/export_openapi.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/scripts/setup-aws-oidc.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/001-bootstrap-incus-host/checklists/requirements.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/001-bootstrap-incus-host/checklists/validation.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/001-bootstrap-incus-host/contracts/playbook-interface.yaml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/001-bootstrap-incus-host/contracts/role-interface.yaml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/001-bootstrap-incus-host/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/001-bootstrap-incus-host/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/001-bootstrap-incus-host/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/001-bootstrap-incus-host/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/001-bootstrap-incus-host/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/001-bootstrap-incus-host/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/002-incus-container-support/checklists/requirements.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/002-incus-container-support/contracts/playbook-interface.yaml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/002-incus-container-support/contracts/role-interface.yaml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/002-incus-container-support/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/002-incus-container-support/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/002-incus-container-support/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/002-incus-container-support/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/002-incus-container-support/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/002-incus-container-support/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/003-python-cli-rewrite/checklists/requirements.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/003-python-cli-rewrite/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/003-python-cli-rewrite/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/003-python-cli-rewrite/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/003-python-cli-rewrite/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/003-python-cli-rewrite/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/003-python-cli-rewrite/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/004-proxmox-container-support/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/005-provider-snapshots/checklists/requirements.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/005-provider-snapshots/contracts/cli-surface.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/005-provider-snapshots/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/005-provider-snapshots/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/005-provider-snapshots/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/005-provider-snapshots/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/005-provider-snapshots/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/005-provider-snapshots/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/010-web-session-interface/checklists/requirements.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/010-web-session-interface/contracts/remo-host-protocol.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/010-web-session-interface/contracts/rest-api.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/010-web-session-interface/contracts/terminal-websocket.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/010-web-session-interface/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/010-web-session-interface/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/010-web-session-interface/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/010-web-session-interface/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/010-web-session-interface/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/010-web-session-interface/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/011-web-adopt/checklists/requirements.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/011-web-adopt/contracts/cli-web-adopt.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/011-web-adopt/contracts/setup-api.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/011-web-adopt/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/011-web-adopt/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/011-web-adopt/quickstart-results.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/011-web-adopt/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/011-web-adopt/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/011-web-adopt/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/011-web-adopt/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/012-web-adopt-pairing/contracts/cli-web-adopt.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/012-web-adopt-pairing/contracts/pairing-api.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/012-web-adopt-pairing/contracts/setup-api.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/012-web-adopt-pairing/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/012-web-adopt-pairing/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/012-web-adopt-pairing/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/012-web-adopt-pairing/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/012-web-adopt-pairing/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/012-web-adopt-pairing/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/013-managed-instance-tags/contracts/cli-sync.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/013-managed-instance-tags/contracts/marker-commands.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/013-managed-instance-tags/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/013-managed-instance-tags/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/013-managed-instance-tags/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/013-managed-instance-tags/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/013-managed-instance-tags/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/013-managed-instance-tags/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/014-register-ssh-host/contracts/add-command.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/014-register-ssh-host/contracts/remove-command.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/014-register-ssh-host/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/014-register-ssh-host/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/014-register-ssh-host/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/014-register-ssh-host/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/014-register-ssh-host/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/014-register-ssh-host/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/015-registry-v2/checklists/requirements.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/015-registry-v2/contracts/mirror-payload-v2.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/015-registry-v2/contracts/registry-accessor-api.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/015-registry-v2/contracts/registry-file-v2.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/015-registry-v2/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/015-registry-v2/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/015-registry-v2/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/015-registry-v2/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/015-registry-v2/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/015-registry-v2/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/016-sync-reconcile/checklists/requirements.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/016-sync-reconcile/contracts/cli-sync.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/016-sync-reconcile/contracts/provider-probe.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/016-sync-reconcile/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/016-sync-reconcile/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/016-sync-reconcile/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/016-sync-reconcile/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/016-sync-reconcile/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/016-sync-reconcile/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/017-web-adopt-simplify/checklists/requirements.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/017-web-adopt-simplify/contracts/cli-web-push.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/017-web-adopt-simplify/contracts/cli-web-status.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/017-web-adopt-simplify/contracts/revocation.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/017-web-adopt-simplify/contracts/setup-status-marker.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/017-web-adopt-simplify/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/017-web-adopt-simplify/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/017-web-adopt-simplify/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/017-web-adopt-simplify/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/017-web-adopt-simplify/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/017-web-adopt-simplify/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/018-provider-abstraction/baseline-notes.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/018-provider-abstraction/checklists/requirements.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/018-provider-abstraction/contracts/cli-surface.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/018-provider-abstraction/contracts/errors.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/018-provider-abstraction/contracts/lifecycle-templates.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/018-provider-abstraction/contracts/provider-protocol.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/018-provider-abstraction/contracts/sync-merge.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/018-provider-abstraction/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/018-provider-abstraction/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/018-provider-abstraction/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/018-provider-abstraction/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/018-provider-abstraction/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/018-provider-abstraction/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/019-hygiene-deps-docs/checklists/requirements.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/019-hygiene-deps-docs/contracts/cli-surface-delta.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/019-hygiene-deps-docs/contracts/docs-structure-check.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/019-hygiene-deps-docs/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/019-hygiene-deps-docs/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/019-hygiene-deps-docs/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/019-hygiene-deps-docs/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/019-hygiene-deps-docs/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/019-hygiene-deps-docs/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/020-openapi-type-generation/checklists/requirements.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/020-openapi-type-generation/contracts/drift-checks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/020-openapi-type-generation/contracts/terminal-frames-v1.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/020-openapi-type-generation/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/020-openapi-type-generation/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/020-openapi-type-generation/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/020-openapi-type-generation/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/020-openapi-type-generation/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/020-openapi-type-generation/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/021-cli-plane-separation/contracts/cli-surface.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/021-cli-plane-separation/contracts/descriptor-schema.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/021-cli-plane-separation/data-model.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/021-cli-plane-separation/plan.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/021-cli-plane-separation/quickstart.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/021-cli-plane-separation/research.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/021-cli-plane-separation/spec.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/specs/021-cli-plane-separation/tasks.md +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/__main__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/cli/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/cli/added.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/cli/cp.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/cli/main.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/cli/providers/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/cli/providers/factory.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/cli/shell.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/cli/web.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/ansible_runner.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/completion.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/config.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/errors.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/known_hosts.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/lifecycle.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/output.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/picker.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/provider_protocol.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/provider_registry.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/reconcile.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/registry.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/remo_host_client.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/rsync.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/snapshot.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/ssh.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/validation.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/version.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/web_adopt.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/core/web_drift.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/models/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/models/capability.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/models/discovery.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/models/host.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/models/session_target.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/models/snapshot.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/providers/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/providers/added.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/providers/aws.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/providers/aws_descriptor.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/providers/builtin.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/providers/hetzner.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/providers/hetzner_descriptor.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/providers/incus.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/providers/incus_descriptor.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/providers/proxmox.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/providers/proxmox_descriptor.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/api/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/api/hosts.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/api/pairing.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/api/setup.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/api/terminals.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/app.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/check.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/config.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/discovery.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/frames.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/health.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/logging_config.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/models.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/operator_auth.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/pairing.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/ssh_master.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/state.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/terminal.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/terminal_registry.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/src/remo_cli/web/tokens.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/ansible/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/ansible/test_apt_sources_repair.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/ansible/test_authorized_keys_bootstrap.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/ansible/test_remo_host_idempotency.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/conftest.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/e2e/fixtures.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/e2e/keyboard-routing.spec.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/e2e/mobile.spec.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/e2e/reconnect.spec.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/e2e/terminal-shell-io.spec.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/e2e/terminal-tui-compatibility.spec.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/e2e/workspace-layout.spec.ts +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/image/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/image/test_docker_image.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/_nine_terminal_fixture.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/fish_completion.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/orbstack-cloud-init.yml +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/orbstack.sh +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/test_nine_terminals.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/test_nine_terminals_soak.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/test_registry_concurrency.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/test_remo_host_e2e.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/test_security_rejections.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/test_setup_payload_versions.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/test_sync_reconcile.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/test_terminal_attach.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/test_web_adopt_e2e.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/integration/test_web_cli_parity.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/perf/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/perf/test_latency.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/perf/test_registry_perf.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/providers/test_aws_snapshot.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/providers/test_hetzner_snapshot.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/providers/test_incus_snapshot.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/providers/test_incus_sync_all.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/providers/test_proxmox_snapshot.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/providers/test_proxmox_sync_all.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/surface_baseline.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/test_add_cmd.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/test_cli_uniformity.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/test_cp.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/test_main.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/test_remove_cmd.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/test_shell.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/test_shell_added.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/test_startup_imports.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/test_surface_preservation.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/cli/test_web_adopt_cmd.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_ansible_runner.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_completion.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_config.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_errors.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_known_hosts.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_lifecycle.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_migration_tagging_notice.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_output.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_picker.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_provider_registry.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_reconcile.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_registry_format.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_registry_locking.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_registry_migration.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_remo_host_client.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_rsync.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_snapshot.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_ssh.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_ssh_added.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_ssh_controlpath.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_ssh_identity_opts.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_validation.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_version.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_web_adopt_authorize.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_web_adopt_code.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_web_adopt_payload.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_web_adopt_trust.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_web_drift.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_web_push.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/core/test_web_push_self_heal.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/models/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/models/test_capability.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/models/test_discovery.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/models/test_session_target.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/fake_provider.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_added_add.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_added_provider_guard.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_added_update_remove.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_added_verify.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_aws_provider_protocol.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_aws_snapshot.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_aws_sync.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_aws_upgrade_resize.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_hetzner_entry_adapters.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_hetzner_http.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_hetzner_label.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_hetzner_resize.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_hetzner_snapshot.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_hetzner_sync.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_host_user_consistency.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_incus_entry_adapters.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_incus_marker.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_incus_resize.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_incus_snapshot.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_incus_sync.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_missing_sdk.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_provider_conformance.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_provider_registry_entries.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_proxmox_devcontainer_runtime.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_proxmox_marker.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_proxmox_provider_protocol.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_proxmox_resize.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_proxmox_snapshot.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/providers/test_proxmox_sync.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/test_ansible_templates.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/test_architecture.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/test_docs_structure.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/test_host_model.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/test_host_ssh_type.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/test_lockfile_version.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/test_schema_drift.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/__init__.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/_pairing_support.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/conftest.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/fixtures/hosts_response.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/fixtures/sessions_response.json +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_backpressure.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_check.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_csp.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_discovery_refresh_force.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_frames.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_health_states.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_hosts_mapping.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_lazy_import.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_log_redaction.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_mint_gating.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_operator_auth.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_pairing.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_pairing_origin.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_payload_equivalence.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_registry_readonly.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_setup_api.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_setup_auth.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_setup_dormancy.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_state.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_terminal_resize.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_terminals_api.py +0 -0
- {remo_cli-4.0.1 → remo_cli-4.2.0}/tests/unit/web/test_tokens.py +0 -0
|
@@ -117,6 +117,7 @@ frontend/ # remo-web browser SPA (Vite + React + TypeScript)
|
|
|
117
117
|
├── src/
|
|
118
118
|
│ ├── api/client.ts # REST + WS terminal client (remo-terminal.v1 subprotocol)
|
|
119
119
|
│ ├── components/ # Dashboard, InstanceGroup, TargetCard, GridView, TabView, TerminalCard
|
|
120
|
+
│ │ # + masterLayout.ts (pure pane geometry: uniform grid + master/stack tiling)
|
|
120
121
|
│ ├── state/ # discovery.ts, workspace.ts (layout persisted to localStorage)
|
|
121
122
|
│ └── terminal/ # RendererAdapter (seam), XtermRenderer (the one engine), TerminalConnection, keymap
|
|
122
123
|
|
|
@@ -135,7 +136,8 @@ ansible/ # Ansible playbooks (invoked by Python via subprocess
|
|
|
135
136
|
└── requirements.yml
|
|
136
137
|
|
|
137
138
|
scripts/ # Repo-root utility scripts (not part of the installed package)
|
|
138
|
-
|
|
139
|
+
├── export_openapi.py # Exports frontend/src/api/generated/{openapi.json,terminal-frames.json} (feature 020)
|
|
140
|
+
└── palette-check.sh # Prints every ANSI colour x normal/bold/dim/bright in a live terminal — audits a theme's legibility where contrast maths can't
|
|
139
141
|
|
|
140
142
|
pyproject.toml # Build config, dependencies (incl. `web` extra), console_scripts entry point
|
|
141
143
|
```
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [4.2.0](https://github.com/get2knowio/remo/compare/v4.1.0...v4.2.0) (2026-08-05)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **web:** flatten a tiling from ⊞, and hide terminal headers wholesale ([#139](https://github.com/get2knowio/remo/issues/139)) ([e5890f0](https://github.com/get2knowio/remo/commit/e5890f031c214b835ec8eab9ff85e8e343c12832))
|
|
9
|
+
* **web:** choose the tiling split (40/60, 45/55 or 50/50) from Settings — applied live to a tiling you already have ([#139](https://github.com/get2knowio/remo/issues/139)) ([89f6ee7](https://github.com/get2knowio/remo/commit/89f6ee7))
|
|
10
|
+
* **web:** the tiling control now appears in every mode; from a single view it rebuilds the grid with that terminal as the master ([#139](https://github.com/get2knowio/remo/issues/139)) ([977a1d5](https://github.com/get2knowio/remo/commit/977a1d5))
|
|
11
|
+
|
|
12
|
+
## [4.1.0](https://github.com/get2knowio/remo/compare/v4.0.1...v4.1.0) (2026-08-04)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **web:** tile a terminal to a pane edge as a master area ([#137](https://github.com/get2knowio/remo/issues/137)) ([41802fb](https://github.com/get2knowio/remo/commit/41802fb17ae5741918a31ee9d662aa90808ebb9a))
|
|
18
|
+
|
|
3
19
|
## [4.0.1](https://github.com/get2knowio/remo/compare/v4.0.0...v4.0.1) (2026-08-03)
|
|
4
20
|
|
|
5
21
|
|
|
@@ -117,6 +117,7 @@ frontend/ # remo-web browser SPA (Vite + React + TypeScript)
|
|
|
117
117
|
├── src/
|
|
118
118
|
│ ├── api/client.ts # REST + WS terminal client (remo-terminal.v1 subprotocol)
|
|
119
119
|
│ ├── components/ # Dashboard, InstanceGroup, TargetCard, GridView, TabView, TerminalCard
|
|
120
|
+
│ │ # + masterLayout.ts (pure pane geometry: uniform grid + master/stack tiling)
|
|
120
121
|
│ ├── state/ # discovery.ts, workspace.ts (layout persisted to localStorage), settings.ts (display prefs: site light/dark mode, accent, fonts, terminal theme + per-target overrides)
|
|
121
122
|
│ ├── terminal/ # RendererAdapter (seam), XtermRenderer (the one engine), TerminalConnection, keymap
|
|
122
123
|
│ └── theme/ # tokens.css (light-dark() palette, one pair per token), fonts.ts, terminalThemes.ts (8 terminal color schemes: a token-derived Remo Dark/Light pair the default 'auto' selection tracks, plus 6 curated third-party)
|
|
@@ -136,7 +137,8 @@ ansible/ # Ansible playbooks (invoked by Python via subprocess
|
|
|
136
137
|
└── requirements.yml
|
|
137
138
|
|
|
138
139
|
scripts/ # Repo-root utility scripts (not part of the installed package)
|
|
139
|
-
|
|
140
|
+
├── export_openapi.py # Exports frontend/src/api/generated/{openapi.json,terminal-frames.json} (feature 020)
|
|
141
|
+
└── palette-check.sh # Prints every ANSI colour x normal/bold/dim/bright in a live terminal — audits a theme's legibility where contrast maths can't
|
|
140
142
|
|
|
141
143
|
pyproject.toml # Build config, dependencies (incl. `web` extra), console_scripts entry point
|
|
142
144
|
```
|
|
@@ -104,11 +104,32 @@ The SPA is a two-pane **web console**:
|
|
|
104
104
|
row showing its name, git glyphs, and a Zellij-active bolt. A search box, provider-color filter
|
|
105
105
|
chips, and an "⚡ Active only" toggle narrow the list; "⊞ Open all · N" opens every available
|
|
106
106
|
target as a grid.
|
|
107
|
+
- **Terminal headers** can be hidden wholesale from the **▤/▭** toggle in the app header, which buys
|
|
108
|
+
back ~37px of terminal per tile — a 16% gain on a stacked tile at tablet size, and the reason it
|
|
109
|
+
exists. The trade is real and deliberate: the header carries the per-tile controls AND is the drag
|
|
110
|
+
handle, so with it hidden a tile can't be dragged, tiled, themed or closed from the card itself (use
|
|
111
|
+
the rail, or toggle the headers back — the toggle is in the app header, which never hides). A
|
|
112
|
+
fullscreen terminal keeps its header regardless: there is only one card on screen, so the space saved
|
|
113
|
+
is negligible and its ✕/⤡ controls are the way out.
|
|
107
114
|
- **Terminal pane** (right). Clicking a row opens that target **solo** (single view); ⌘/Ctrl-click a
|
|
108
115
|
row (or its `+` button) **adds** it to a responsive grid (1/2/3 columns by count). In a grid, **drag
|
|
109
116
|
a tile's header onto another to swap their positions** — a window outline follows the cursor and the
|
|
110
117
|
swap target shows a dashed outline (mouse or touch press-and-hold; keyboard-accessible via the
|
|
111
|
-
handle); the arrangement persists until the grid is rebuilt.
|
|
118
|
+
handle); the arrangement persists until the grid is rebuilt. **Drag a tile to a pane edge instead of
|
|
119
|
+
onto another tile** and it takes that whole side as a *master area* — full height on the left/right,
|
|
120
|
+
full width on the top/bottom — with the remaining tiles tiling the leftover strip (the dwm/xmonad
|
|
121
|
+
master+stack model). A translucent band marks each edge while dragging and fills in when the drop
|
|
122
|
+
would land there. The **▦** control in a tile's header cycles the same thing without a drag
|
|
123
|
+
(▌ left → ▀ top → ▐ right → ▄ bottom → back to the even grid), which is the practical path on a touch
|
|
124
|
+
device — and it is in the cluster in every mode, not just a grid: from a single view it rebuilds the
|
|
125
|
+
grid with the terminal you were looking at as the master (inert only when there is no grid to build).
|
|
126
|
+
The master's share is a setting (**Settings → Tiling split**: 40/60, 45/55 or 50/50, applied
|
|
127
|
+
live to a tiling you already have), closing it promotes the head of the stack rather than
|
|
128
|
+
un-tiling everything, and the arrangement persists across reload alongside the tile order. **⊞ flattens
|
|
129
|
+
a tiling back to even tiles** — in a plain grid that control is inert, so it doubles as the way out
|
|
130
|
+
rather than making you cycle ▦ forward until it wraps. This is
|
|
131
|
+
what lets three terminals fill the pane without the empty fourth cell a 2x2 grid would leave. In a
|
|
132
|
+
grid, **resting the pointer on a
|
|
112
133
|
tile focuses it** (focus-follows-mouse, with a short dwell so passing through tiles doesn't steal
|
|
113
134
|
focus) — keystrokes go where the pointer is, no click needed. The **◻** control solos a tile; **Esc**
|
|
114
135
|
collapses the grid back to the focused terminal;
|
|
@@ -143,13 +164,15 @@ they can be stale until something else fetches. Git glyphs only appear on instan
|
|
|
143
164
|
`remo-host` new enough to report git status; see [Upgrade compatibility](#upgrade-compatibility).
|
|
144
165
|
|
|
145
166
|
**Settings** (⚙, top bar; stored in this browser only, FR-034): **appearance** (site light/dark mode),
|
|
146
|
-
accent color, terminal font, **terminal theme**, font size, program ligatures,
|
|
167
|
+
accent color, terminal font, **terminal theme**, **tiling split**, font size, program ligatures,
|
|
168
|
+
grid display mode
|
|
147
169
|
(actual-size vs scale-to-fit), **focus dwell** (how long the pointer rests before focus-follows-mouse
|
|
148
170
|
fires), a **Nerd Font uploader**, and **Pair CLI to sync** (mint a re-sync pairing
|
|
149
171
|
code).
|
|
150
172
|
|
|
151
173
|
**Appearance** is tri-state — `system` (the default, following the OS `prefers-color-scheme`),
|
|
152
|
-
`light`, or `dark` —
|
|
174
|
+
`light`, or `dark` — set from Settings. (It briefly had a top-bar button too; that was removed once
|
|
175
|
+
the header ran short of room, since Settings already owned the choice.) The
|
|
153
176
|
console's palette is a set of `light-dark()` CSS custom properties in `theme/tokens.css`; "system"
|
|
154
177
|
therefore needs no JavaScript to render, and an explicit choice is applied as `data-theme` on `<html>`.
|
|
155
178
|
**Terminal theme** defaults to **Follow site theme**, which tracks the site mode: a light console gets
|
|
@@ -9,7 +9,7 @@ import { exitBrowserFullscreen } from "../lib/fullscreen";
|
|
|
9
9
|
import { useDiscovery } from "../state/discovery";
|
|
10
10
|
import { useHealth } from "../state/health";
|
|
11
11
|
import { useLatency } from "../state/latency";
|
|
12
|
-
import {
|
|
12
|
+
import { settingsActions, useSettings } from "../state/settings";
|
|
13
13
|
import { useConsoleKeyboard } from "../state/useConsoleKeyboard";
|
|
14
14
|
import { useWorkspace } from "../state/workspace";
|
|
15
15
|
import { buildRailModel, type RailFilters } from "./railModel";
|
|
@@ -230,9 +230,8 @@ export function AppShell(): JSX.Element {
|
|
|
230
230
|
onRefresh={() => void discovery.refresh()}
|
|
231
231
|
onSettings={() => setSettingsOpen(true)}
|
|
232
232
|
onShortcuts={onToggleShortcuts}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
onCycleTheme={() => settingsActions.cycleThemeMode()}
|
|
233
|
+
showTileChrome={settings.showTileChrome}
|
|
234
|
+
onToggleTileChrome={() => settingsActions.toggleTileChrome()}
|
|
236
235
|
/>
|
|
237
236
|
|
|
238
237
|
{discovery.isRefreshing && !maximized && (
|
|
@@ -8,6 +8,7 @@ import { listUploadedFonts, registerUploadedFont } from "../state/fonts";
|
|
|
8
8
|
import {
|
|
9
9
|
ACCENT_OPTIONS,
|
|
10
10
|
FONT_OPTIONS,
|
|
11
|
+
MASTER_SPLIT_OPTIONS,
|
|
11
12
|
MAX_FOCUS_DWELL_MS,
|
|
12
13
|
MAX_TERM_SIZE,
|
|
13
14
|
MIN_FOCUS_DWELL_MS,
|
|
@@ -279,6 +280,35 @@ export function SettingsPage({ onClose }: SettingsPageProps): JSX.Element {
|
|
|
279
280
|
</div>
|
|
280
281
|
</section>
|
|
281
282
|
|
|
283
|
+
{/* Tiling split */}
|
|
284
|
+
<section>
|
|
285
|
+
<div className="settings-heading">Tiling split</div>
|
|
286
|
+
<p className="settings-sub">
|
|
287
|
+
How much of the pane a terminal takes when you tile it to an edge (stack / master).
|
|
288
|
+
Applies immediately to a tiling you already have.
|
|
289
|
+
</p>
|
|
290
|
+
<div className="settings-gridmodes">
|
|
291
|
+
{MASTER_SPLIT_OPTIONS.map((o) => {
|
|
292
|
+
const selected = settings.masterSplit === o.value;
|
|
293
|
+
return (
|
|
294
|
+
<button
|
|
295
|
+
key={o.value}
|
|
296
|
+
type="button"
|
|
297
|
+
data-testid={`master-split-${o.label.replace(/\s\/\s/, "-")}`}
|
|
298
|
+
className={`settings-gridmode${selected ? " settings-gridmode--on" : ""}`}
|
|
299
|
+
onClick={() => settingsActions.setMasterSplit(o.value)}
|
|
300
|
+
>
|
|
301
|
+
<span className="settings-radio">{selected ? "✓" : ""}</span>
|
|
302
|
+
<span>
|
|
303
|
+
<span className="settings-gridmode-title">{o.label}</span>
|
|
304
|
+
<span className="settings-gridmode-desc">{o.desc}</span>
|
|
305
|
+
</span>
|
|
306
|
+
</button>
|
|
307
|
+
);
|
|
308
|
+
})}
|
|
309
|
+
</div>
|
|
310
|
+
</section>
|
|
311
|
+
|
|
282
312
|
{/* Focus-follows-mouse dwell */}
|
|
283
313
|
<section>
|
|
284
314
|
<div className="settings-row2-head">
|