portacode 1.4.18.dev0__tar.gz → 1.4.18.dev1__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.
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/PKG-INFO +1 -1
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/_version.py +2 -2
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/proxmox_infra.py +14 -4
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode.egg-info/PKG-INFO +1 -1
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/.claude/agents/communication-manager.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/.claude/settings.local.json +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/.gitignore +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/.gitmodules +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/LICENSE +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/MANIFEST.in +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/Makefile +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/backup.sh +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/connect.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/connect.sh +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/docker-compose.yaml +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/docs/images/device-transfer-button.png +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/docs/images/device-transfer-modal.png +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/docs/images/pair-device-button.png +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/docs/images/pairing-request.png +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/docs/images/student-workspace.png +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/simple_device/Dockerfile +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/simple_device/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/simple_device/data/device-01/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/simple_device/data/device-01/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/simple_device/docker-compose.yaml +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/Dockerfile +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/.local/share/portacode/run/gateway.pid +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/.gitignore +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/db.sqlite3 +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__pycache__/__init__.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__pycache__/settings.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__pycache__/urls.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__pycache__/wsgi.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/manage.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/requirements.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/__init__.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/admin.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/apps.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/menu.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/models.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/urls.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/views.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/admin.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/apps.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/menu.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/migrations/__pycache__/__init__.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/models.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/tests.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-01/workspace/treats/views.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/manage.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/requirements.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/treats/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/treats/admin.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/treats/apps.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/treats/menu.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/treats/models.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/treats/tests.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/treats/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-02/workspace/treats/views.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/manage.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/requirements.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/treats/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/treats/admin.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/treats/apps.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/treats/menu.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/treats/models.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/treats/tests.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/treats/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-03/workspace/treats/views.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/manage.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/requirements.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/treats/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/treats/admin.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/treats/apps.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/treats/menu.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/treats/models.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/treats/tests.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/treats/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-04/workspace/treats/views.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/manage.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/requirements.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/treats/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/treats/admin.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/treats/apps.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/treats/menu.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/treats/models.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/treats/tests.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/treats/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-05/workspace/treats/views.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/manage.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/requirements.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/treats/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/treats/admin.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/treats/apps.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/treats/menu.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/treats/models.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/treats/tests.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/treats/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-06/workspace/treats/views.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/manage.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/requirements.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/treats/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/treats/admin.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/treats/apps.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/treats/menu.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/treats/models.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/treats/tests.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/treats/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-07/workspace/treats/views.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/manage.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/requirements.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/treats/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/treats/admin.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/treats/apps.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/treats/menu.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/treats/models.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/treats/tests.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/treats/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-08/workspace/treats/views.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/manage.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/requirements.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/treats/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/treats/admin.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/treats/apps.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/treats/menu.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/treats/models.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/treats/tests.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/treats/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-09/workspace/treats/views.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/manage.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/requirements.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/treats/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/treats/admin.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/treats/apps.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/treats/menu.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/treats/models.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/treats/tests.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/treats/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/data/student-10/workspace/treats/views.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/docker-compose.yaml +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/manage.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/requirements.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/templates/treats/home.html +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/treats/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/treats/admin.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/treats/apps.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/treats/menu.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/treats/migrations/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/treats/models.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/treats/tests.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/treats/urls.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/initial_content/treats/views.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/examples/workshop_fleet/instructions/WELCOME.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/__main__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/cli.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/client.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/WEBSOCKET_PROTOCOL.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/base.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/chunked_content.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/diff_handlers.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/file_handlers.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/project_aware_file_handlers.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/project_state/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/project_state/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/project_state/file_system_watcher.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/project_state/git_manager.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/project_state/handlers.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/project_state/manager.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/project_state/models.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/project_state/utils.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/project_state_handlers.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/registry.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/session.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/system_handlers.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/tab_factory.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/terminal_handlers.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/test_proxmox_infra.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/update_handler.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/multiplex.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/terminal.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/data.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/keypair.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/__pycache__/__init__.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/__pycache__/link_capture_wrapper.cpython-311.pyc +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/elinks +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/gio-open +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/gnome-open +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/gvfs-open +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/kde-open +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/kfmclient +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/link_capture_exec.sh +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/link_capture_wrapper.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/links +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/links2 +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/lynx +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/mate-open +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/netsurf +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/sensible-browser +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/w3m +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/x-www-browser +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/link_capture/bin/xdg-open +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/logging_categories.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/pairing.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/service.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/static/js/test-ntp-clock.html +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/static/js/utils/ntp-clock.js +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/utils/NTP_ARCHITECTURE.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/utils/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/utils/diff_apply.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/utils/diff_renderer.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/utils/ntp_clock.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode.egg-info/SOURCES.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode.egg-info/dependency_links.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode.egg-info/entry_points.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode.egg-info/requires.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode.egg-info/top_level.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/pyproject.toml +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/restore.sh +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/run_tests.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/setup.cfg +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/setup.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test.sh +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test_modules/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test_modules/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test_modules/test_device_online.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test_modules/test_file_operations.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test_modules/test_git_status_ui.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test_modules/test_login_flow.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test_modules/test_navigate_testing_folder.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test_modules/test_play_store_screenshots.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test_modules/test_terminal_buffer_performance.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test_modules/test_terminal_interaction.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test_modules/test_terminal_loading_race_condition.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test_modules/test_terminal_start.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/test_request_id.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/testing_framework/.env.example +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/testing_framework/README.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/testing_framework/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/testing_framework/cli.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/testing_framework/core/__init__.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/testing_framework/core/base_test.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/testing_framework/core/cli_manager.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/testing_framework/core/hierarchical_runner.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/testing_framework/core/playwright_manager.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/testing_framework/core/runner.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/testing_framework/core/shared_cli_manager.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/testing_framework/core/test_discovery.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/testing_framework/requirements.txt +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/todo/UI_UX/opening_a_file_on_desktop_results_in_nothing.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/todo/agent_context_management.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/todo/django_server_time_sync.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/todo/issues/device_performance_degradation.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/todo/issues/git_data_not_captured_in_proxmox.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/todo/issues/indefinite_resource_loading.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/todo/issues/portacode_service_silently_down.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/todo/issues/premature_terminal_exit.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/todo/issues/project_cpu_hotspots.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/todo/issues/terminals_exit_upon_starting.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/todo/issues/wrong_item_classification_on_client_side.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/todo/smartphone_terminal_input_frustrations.md +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/tools/generate_play_store_assets.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/tools/pairing_tester.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/tools/run_screenshot_suite.sh +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/tools/test_python_ntp_clock.py +0 -0
- {portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/validate.sh +0 -0
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '1.4.18.
|
|
32
|
-
__version_tuple__ = version_tuple = (1, 4, 18, '
|
|
31
|
+
__version__ = version = '1.4.18.dev1'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 4, 18, 'dev1')
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
{portacode-1.4.18.dev0 → portacode-1.4.18.dev1}/portacode/connection/handlers/proxmox_infra.py
RENAMED
|
@@ -1179,7 +1179,7 @@ def _build_bootstrap_steps(
|
|
|
1179
1179
|
steps.append(
|
|
1180
1180
|
{
|
|
1181
1181
|
"name": "add_ssh_key",
|
|
1182
|
-
"cmd": f"install -d -m 700 /home/{user}/.ssh && echo '{ssh_key}' >> /home/{user}/.ssh/authorized_keys && chown -R {user}
|
|
1182
|
+
"cmd": f"install -d -m 700 /home/{user}/.ssh && echo '{ssh_key}' >> /home/{user}/.ssh/authorized_keys && chown -R {user}:$(id -gn {shlex.quote(user)}) /home/{user}/.ssh",
|
|
1183
1183
|
"retries": 0,
|
|
1184
1184
|
}
|
|
1185
1185
|
)
|
|
@@ -1444,6 +1444,14 @@ def _su_command(user: str, command: str) -> str:
|
|
|
1444
1444
|
return f"su - {user} -s /bin/sh -c {shlex.quote(command)}"
|
|
1445
1445
|
|
|
1446
1446
|
|
|
1447
|
+
def _resolve_user_group(vmid: int, user: str) -> str:
|
|
1448
|
+
res = _run_pct(vmid, f"id -gn {shlex.quote(user)}")
|
|
1449
|
+
group = (res.get("stdout") or "").strip()
|
|
1450
|
+
if group:
|
|
1451
|
+
return f"{user}:{group}"
|
|
1452
|
+
return f"{user}:{user}"
|
|
1453
|
+
|
|
1454
|
+
|
|
1447
1455
|
def _resolve_portacode_cli_path(vmid: int, user: str) -> str:
|
|
1448
1456
|
"""Resolve the full path to the portacode CLI inside the container."""
|
|
1449
1457
|
res = _run_pct(vmid, _su_command(user, "command -v portacode"))
|
|
@@ -1480,12 +1488,13 @@ def _push_bytes_to_container(
|
|
|
1480
1488
|
) -> None:
|
|
1481
1489
|
logger.debug("Preparing to push %d bytes to container vmid=%s path=%s for user=%s", len(data), vmid, path, user)
|
|
1482
1490
|
tmp_path: Optional[str] = None
|
|
1491
|
+
owner = _resolve_user_group(vmid, user)
|
|
1483
1492
|
try:
|
|
1484
1493
|
parent = Path(path).parent
|
|
1485
1494
|
parent_str = parent.as_posix()
|
|
1486
1495
|
if parent_str not in {"", ".", "/"}:
|
|
1487
1496
|
_run_pct_exec_check(vmid, ["mkdir", "-p", parent_str])
|
|
1488
|
-
_run_pct_exec_check(vmid, ["chown", "-R",
|
|
1497
|
+
_run_pct_exec_check(vmid, ["chown", "-R", owner, parent_str])
|
|
1489
1498
|
|
|
1490
1499
|
with tempfile.NamedTemporaryFile(delete=False) as tmp:
|
|
1491
1500
|
tmp.write(data)
|
|
@@ -1497,7 +1506,7 @@ def _push_bytes_to_container(
|
|
|
1497
1506
|
if push_res.returncode != 0:
|
|
1498
1507
|
raise RuntimeError(push_res.stderr or push_res.stdout or f"pct push returned {push_res.returncode}")
|
|
1499
1508
|
|
|
1500
|
-
_run_pct_exec_check(vmid, ["chown",
|
|
1509
|
+
_run_pct_exec_check(vmid, ["chown", owner, path])
|
|
1501
1510
|
_run_pct_exec_check(vmid, ["chmod", format(mode, "o"), path])
|
|
1502
1511
|
logger.debug("Successfully pushed %d bytes to vmid=%s path=%s", len(data), vmid, path)
|
|
1503
1512
|
except Exception as exc:
|
|
@@ -1516,7 +1525,8 @@ def _resolve_portacode_key_dir(vmid: int, user: str) -> str:
|
|
|
1516
1525
|
data_home = _run_pct_check(vmid, data_dir_cmd)["stdout"].strip()
|
|
1517
1526
|
portacode_dir = f"{data_home}/portacode"
|
|
1518
1527
|
_run_pct_exec_check(vmid, ["mkdir", "-p", portacode_dir])
|
|
1519
|
-
|
|
1528
|
+
owner = _resolve_user_group(vmid, user)
|
|
1529
|
+
_run_pct_exec_check(vmid, ["chown", "-R", owner, portacode_dir])
|
|
1520
1530
|
return f"{portacode_dir}/keys"
|
|
1521
1531
|
|
|
1522
1532
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|