portacode 1.4.12.dev9__tar.gz → 1.4.13.dev0__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.
Files changed (382) hide show
  1. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/PKG-INFO +1 -1
  2. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/_version.py +2 -2
  3. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/proxmox_infra.py +103 -9
  4. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode.egg-info/PKG-INFO +1 -1
  5. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/.claude/agents/communication-manager.md +0 -0
  6. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/.claude/settings.local.json +0 -0
  7. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/.gitignore +0 -0
  8. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/.gitmodules +0 -0
  9. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/LICENSE +0 -0
  10. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/MANIFEST.in +0 -0
  11. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/Makefile +0 -0
  12. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/README.md +0 -0
  13. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/backup.sh +0 -0
  14. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/connect.py +0 -0
  15. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/connect.sh +0 -0
  16. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/docker-compose.yaml +0 -0
  17. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/docs/images/device-transfer-button.png +0 -0
  18. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/docs/images/device-transfer-modal.png +0 -0
  19. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/docs/images/pair-device-button.png +0 -0
  20. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/docs/images/pairing-request.png +0 -0
  21. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/docs/images/student-workspace.png +0 -0
  22. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/README.md +0 -0
  23. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/simple_device/Dockerfile +0 -0
  24. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/simple_device/README.md +0 -0
  25. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/simple_device/data/device-01/.local/share/portacode/keys/id_portacode +0 -0
  26. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/simple_device/data/device-01/.local/share/portacode/keys/id_portacode.pub +0 -0
  27. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/simple_device/docker-compose.yaml +0 -0
  28. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/Dockerfile +0 -0
  29. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/README.md +0 -0
  30. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/.local/share/portacode/keys/id_portacode +0 -0
  31. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/.local/share/portacode/keys/id_portacode.pub +0 -0
  32. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/.local/share/portacode/run/gateway.pid +0 -0
  33. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/.gitignore +0 -0
  34. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/README.md +0 -0
  35. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/db.sqlite3 +0 -0
  36. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__init__.py +0 -0
  37. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__pycache__/__init__.cpython-311.pyc +0 -0
  38. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__pycache__/settings.cpython-311.pyc +0 -0
  39. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__pycache__/urls.cpython-311.pyc +0 -0
  40. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__pycache__/wsgi.cpython-311.pyc +0 -0
  41. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/asgi.py +0 -0
  42. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/settings.py +0 -0
  43. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/urls.py +0 -0
  44. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/wsgi.py +0 -0
  45. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/manage.py +0 -0
  46. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/requirements.txt +0 -0
  47. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/templates/treats/home.html +0 -0
  48. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/__init__.py +0 -0
  49. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/__init__.cpython-311.pyc +0 -0
  50. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/admin.cpython-311.pyc +0 -0
  51. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/apps.cpython-311.pyc +0 -0
  52. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/menu.cpython-311.pyc +0 -0
  53. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/models.cpython-311.pyc +0 -0
  54. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/urls.cpython-311.pyc +0 -0
  55. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/views.cpython-311.pyc +0 -0
  56. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/admin.py +0 -0
  57. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/apps.py +0 -0
  58. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/menu.py +0 -0
  59. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/migrations/__init__.py +0 -0
  60. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/migrations/__pycache__/__init__.cpython-311.pyc +0 -0
  61. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/models.py +0 -0
  62. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/tests.py +0 -0
  63. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/urls.py +0 -0
  64. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-01/workspace/treats/views.py +0 -0
  65. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/.local/share/portacode/keys/id_portacode +0 -0
  66. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/.local/share/portacode/keys/id_portacode.pub +0 -0
  67. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/README.md +0 -0
  68. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/__init__.py +0 -0
  69. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/asgi.py +0 -0
  70. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/settings.py +0 -0
  71. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/urls.py +0 -0
  72. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/wsgi.py +0 -0
  73. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/manage.py +0 -0
  74. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/requirements.txt +0 -0
  75. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/templates/treats/home.html +0 -0
  76. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/treats/__init__.py +0 -0
  77. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/treats/admin.py +0 -0
  78. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/treats/apps.py +0 -0
  79. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/treats/menu.py +0 -0
  80. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/treats/migrations/__init__.py +0 -0
  81. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/treats/models.py +0 -0
  82. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/treats/tests.py +0 -0
  83. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/treats/urls.py +0 -0
  84. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-02/workspace/treats/views.py +0 -0
  85. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/.local/share/portacode/keys/id_portacode +0 -0
  86. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/.local/share/portacode/keys/id_portacode.pub +0 -0
  87. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/README.md +0 -0
  88. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/__init__.py +0 -0
  89. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/asgi.py +0 -0
  90. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/settings.py +0 -0
  91. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/urls.py +0 -0
  92. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/wsgi.py +0 -0
  93. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/manage.py +0 -0
  94. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/requirements.txt +0 -0
  95. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/templates/treats/home.html +0 -0
  96. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/treats/__init__.py +0 -0
  97. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/treats/admin.py +0 -0
  98. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/treats/apps.py +0 -0
  99. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/treats/menu.py +0 -0
  100. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/treats/migrations/__init__.py +0 -0
  101. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/treats/models.py +0 -0
  102. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/treats/tests.py +0 -0
  103. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/treats/urls.py +0 -0
  104. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-03/workspace/treats/views.py +0 -0
  105. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/.local/share/portacode/keys/id_portacode +0 -0
  106. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/.local/share/portacode/keys/id_portacode.pub +0 -0
  107. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/README.md +0 -0
  108. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/__init__.py +0 -0
  109. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/asgi.py +0 -0
  110. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/settings.py +0 -0
  111. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/urls.py +0 -0
  112. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/wsgi.py +0 -0
  113. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/manage.py +0 -0
  114. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/requirements.txt +0 -0
  115. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/templates/treats/home.html +0 -0
  116. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/treats/__init__.py +0 -0
  117. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/treats/admin.py +0 -0
  118. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/treats/apps.py +0 -0
  119. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/treats/menu.py +0 -0
  120. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/treats/migrations/__init__.py +0 -0
  121. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/treats/models.py +0 -0
  122. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/treats/tests.py +0 -0
  123. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/treats/urls.py +0 -0
  124. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-04/workspace/treats/views.py +0 -0
  125. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/.local/share/portacode/keys/id_portacode +0 -0
  126. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/.local/share/portacode/keys/id_portacode.pub +0 -0
  127. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/README.md +0 -0
  128. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/__init__.py +0 -0
  129. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/asgi.py +0 -0
  130. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/settings.py +0 -0
  131. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/urls.py +0 -0
  132. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/wsgi.py +0 -0
  133. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/manage.py +0 -0
  134. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/requirements.txt +0 -0
  135. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/templates/treats/home.html +0 -0
  136. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/treats/__init__.py +0 -0
  137. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/treats/admin.py +0 -0
  138. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/treats/apps.py +0 -0
  139. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/treats/menu.py +0 -0
  140. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/treats/migrations/__init__.py +0 -0
  141. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/treats/models.py +0 -0
  142. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/treats/tests.py +0 -0
  143. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/treats/urls.py +0 -0
  144. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-05/workspace/treats/views.py +0 -0
  145. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/.local/share/portacode/keys/id_portacode +0 -0
  146. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/.local/share/portacode/keys/id_portacode.pub +0 -0
  147. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/README.md +0 -0
  148. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/__init__.py +0 -0
  149. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/asgi.py +0 -0
  150. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/settings.py +0 -0
  151. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/urls.py +0 -0
  152. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/wsgi.py +0 -0
  153. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/manage.py +0 -0
  154. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/requirements.txt +0 -0
  155. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/templates/treats/home.html +0 -0
  156. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/treats/__init__.py +0 -0
  157. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/treats/admin.py +0 -0
  158. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/treats/apps.py +0 -0
  159. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/treats/menu.py +0 -0
  160. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/treats/migrations/__init__.py +0 -0
  161. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/treats/models.py +0 -0
  162. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/treats/tests.py +0 -0
  163. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/treats/urls.py +0 -0
  164. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-06/workspace/treats/views.py +0 -0
  165. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/.local/share/portacode/keys/id_portacode +0 -0
  166. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/.local/share/portacode/keys/id_portacode.pub +0 -0
  167. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/README.md +0 -0
  168. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/__init__.py +0 -0
  169. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/asgi.py +0 -0
  170. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/settings.py +0 -0
  171. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/urls.py +0 -0
  172. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/wsgi.py +0 -0
  173. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/manage.py +0 -0
  174. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/requirements.txt +0 -0
  175. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/templates/treats/home.html +0 -0
  176. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/treats/__init__.py +0 -0
  177. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/treats/admin.py +0 -0
  178. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/treats/apps.py +0 -0
  179. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/treats/menu.py +0 -0
  180. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/treats/migrations/__init__.py +0 -0
  181. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/treats/models.py +0 -0
  182. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/treats/tests.py +0 -0
  183. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/treats/urls.py +0 -0
  184. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-07/workspace/treats/views.py +0 -0
  185. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/.local/share/portacode/keys/id_portacode +0 -0
  186. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/.local/share/portacode/keys/id_portacode.pub +0 -0
  187. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/README.md +0 -0
  188. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/__init__.py +0 -0
  189. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/asgi.py +0 -0
  190. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/settings.py +0 -0
  191. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/urls.py +0 -0
  192. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/wsgi.py +0 -0
  193. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/manage.py +0 -0
  194. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/requirements.txt +0 -0
  195. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/templates/treats/home.html +0 -0
  196. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/treats/__init__.py +0 -0
  197. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/treats/admin.py +0 -0
  198. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/treats/apps.py +0 -0
  199. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/treats/menu.py +0 -0
  200. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/treats/migrations/__init__.py +0 -0
  201. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/treats/models.py +0 -0
  202. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/treats/tests.py +0 -0
  203. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/treats/urls.py +0 -0
  204. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-08/workspace/treats/views.py +0 -0
  205. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/.local/share/portacode/keys/id_portacode +0 -0
  206. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/.local/share/portacode/keys/id_portacode.pub +0 -0
  207. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/README.md +0 -0
  208. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/__init__.py +0 -0
  209. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/asgi.py +0 -0
  210. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/settings.py +0 -0
  211. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/urls.py +0 -0
  212. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/wsgi.py +0 -0
  213. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/manage.py +0 -0
  214. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/requirements.txt +0 -0
  215. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/templates/treats/home.html +0 -0
  216. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/treats/__init__.py +0 -0
  217. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/treats/admin.py +0 -0
  218. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/treats/apps.py +0 -0
  219. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/treats/menu.py +0 -0
  220. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/treats/migrations/__init__.py +0 -0
  221. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/treats/models.py +0 -0
  222. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/treats/tests.py +0 -0
  223. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/treats/urls.py +0 -0
  224. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-09/workspace/treats/views.py +0 -0
  225. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/.local/share/portacode/keys/id_portacode +0 -0
  226. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/.local/share/portacode/keys/id_portacode.pub +0 -0
  227. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/README.md +0 -0
  228. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/__init__.py +0 -0
  229. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/asgi.py +0 -0
  230. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/settings.py +0 -0
  231. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/urls.py +0 -0
  232. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/wsgi.py +0 -0
  233. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/manage.py +0 -0
  234. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/requirements.txt +0 -0
  235. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/templates/treats/home.html +0 -0
  236. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/treats/__init__.py +0 -0
  237. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/treats/admin.py +0 -0
  238. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/treats/apps.py +0 -0
  239. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/treats/menu.py +0 -0
  240. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/treats/migrations/__init__.py +0 -0
  241. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/treats/models.py +0 -0
  242. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/treats/tests.py +0 -0
  243. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/treats/urls.py +0 -0
  244. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/data/student-10/workspace/treats/views.py +0 -0
  245. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/docker-compose.yaml +0 -0
  246. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/README.md +0 -0
  247. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/galactic_bakeshop/__init__.py +0 -0
  248. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/galactic_bakeshop/asgi.py +0 -0
  249. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/galactic_bakeshop/settings.py +0 -0
  250. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/galactic_bakeshop/urls.py +0 -0
  251. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/galactic_bakeshop/wsgi.py +0 -0
  252. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/manage.py +0 -0
  253. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/requirements.txt +0 -0
  254. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/templates/treats/home.html +0 -0
  255. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/treats/__init__.py +0 -0
  256. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/treats/admin.py +0 -0
  257. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/treats/apps.py +0 -0
  258. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/treats/menu.py +0 -0
  259. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/treats/migrations/__init__.py +0 -0
  260. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/treats/models.py +0 -0
  261. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/treats/tests.py +0 -0
  262. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/treats/urls.py +0 -0
  263. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/initial_content/treats/views.py +0 -0
  264. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/examples/workshop_fleet/instructions/WELCOME.md +0 -0
  265. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/README.md +0 -0
  266. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/__init__.py +0 -0
  267. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/__main__.py +0 -0
  268. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/cli.py +0 -0
  269. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/README.md +0 -0
  270. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/__init__.py +0 -0
  271. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/client.py +0 -0
  272. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/README.md +0 -0
  273. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/WEBSOCKET_PROTOCOL.md +0 -0
  274. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/__init__.py +0 -0
  275. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/base.py +0 -0
  276. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/chunked_content.py +0 -0
  277. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/diff_handlers.py +0 -0
  278. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/file_handlers.py +0 -0
  279. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/project_aware_file_handlers.py +0 -0
  280. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/project_state/README.md +0 -0
  281. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/project_state/__init__.py +0 -0
  282. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/project_state/file_system_watcher.py +0 -0
  283. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/project_state/git_manager.py +0 -0
  284. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/project_state/handlers.py +0 -0
  285. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/project_state/manager.py +0 -0
  286. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/project_state/models.py +0 -0
  287. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/project_state/utils.py +0 -0
  288. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/project_state_handlers.py +0 -0
  289. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/registry.py +0 -0
  290. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/session.py +0 -0
  291. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/system_handlers.py +0 -0
  292. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/tab_factory.py +0 -0
  293. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/terminal_handlers.py +0 -0
  294. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/handlers/update_handler.py +0 -0
  295. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/multiplex.py +0 -0
  296. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/connection/terminal.py +0 -0
  297. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/data.py +0 -0
  298. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/keypair.py +0 -0
  299. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/__init__.py +0 -0
  300. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/__pycache__/__init__.cpython-311.pyc +0 -0
  301. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/__pycache__/link_capture_wrapper.cpython-311.pyc +0 -0
  302. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/elinks +0 -0
  303. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/gio-open +0 -0
  304. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/gnome-open +0 -0
  305. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/gvfs-open +0 -0
  306. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/kde-open +0 -0
  307. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/kfmclient +0 -0
  308. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/link_capture_exec.sh +0 -0
  309. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/link_capture_wrapper.py +0 -0
  310. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/links +0 -0
  311. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/links2 +0 -0
  312. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/lynx +0 -0
  313. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/mate-open +0 -0
  314. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/netsurf +0 -0
  315. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/sensible-browser +0 -0
  316. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/w3m +0 -0
  317. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/x-www-browser +0 -0
  318. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/link_capture/bin/xdg-open +0 -0
  319. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/logging_categories.py +0 -0
  320. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/pairing.py +0 -0
  321. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/service.py +0 -0
  322. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/static/js/test-ntp-clock.html +0 -0
  323. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/static/js/utils/ntp-clock.js +0 -0
  324. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/utils/NTP_ARCHITECTURE.md +0 -0
  325. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/utils/__init__.py +0 -0
  326. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/utils/diff_apply.py +0 -0
  327. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/utils/diff_renderer.py +0 -0
  328. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode/utils/ntp_clock.py +0 -0
  329. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode.egg-info/SOURCES.txt +0 -0
  330. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode.egg-info/dependency_links.txt +0 -0
  331. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode.egg-info/entry_points.txt +0 -0
  332. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode.egg-info/requires.txt +0 -0
  333. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/portacode.egg-info/top_level.txt +0 -0
  334. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/pyproject.toml +0 -0
  335. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/restore.sh +0 -0
  336. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/run_tests.py +0 -0
  337. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/setup.cfg +0 -0
  338. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/setup.py +0 -0
  339. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test.sh +0 -0
  340. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test_modules/README.md +0 -0
  341. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test_modules/__init__.py +0 -0
  342. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test_modules/test_device_online.py +0 -0
  343. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test_modules/test_file_operations.py +0 -0
  344. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test_modules/test_git_status_ui.py +0 -0
  345. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test_modules/test_login_flow.py +0 -0
  346. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test_modules/test_navigate_testing_folder.py +0 -0
  347. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test_modules/test_play_store_screenshots.py +0 -0
  348. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test_modules/test_terminal_buffer_performance.py +0 -0
  349. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test_modules/test_terminal_interaction.py +0 -0
  350. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test_modules/test_terminal_loading_race_condition.py +0 -0
  351. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test_modules/test_terminal_start.py +0 -0
  352. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/test_request_id.py +0 -0
  353. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/testing_framework/.env.example +0 -0
  354. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/testing_framework/README.md +0 -0
  355. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/testing_framework/__init__.py +0 -0
  356. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/testing_framework/cli.py +0 -0
  357. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/testing_framework/core/__init__.py +0 -0
  358. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/testing_framework/core/base_test.py +0 -0
  359. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/testing_framework/core/cli_manager.py +0 -0
  360. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/testing_framework/core/hierarchical_runner.py +0 -0
  361. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/testing_framework/core/playwright_manager.py +0 -0
  362. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/testing_framework/core/runner.py +0 -0
  363. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/testing_framework/core/shared_cli_manager.py +0 -0
  364. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/testing_framework/core/test_discovery.py +0 -0
  365. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/testing_framework/requirements.txt +0 -0
  366. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/todo/UI_UX/opening_a_file_on_desktop_results_in_nothing.md +0 -0
  367. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/todo/agent_context_management.md +0 -0
  368. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/todo/django_server_time_sync.md +0 -0
  369. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/todo/issues/device_performance_degradation.md +0 -0
  370. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/todo/issues/git_data_not_captured_in_proxmox.md +0 -0
  371. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/todo/issues/indefinite_resource_loading.md +0 -0
  372. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/todo/issues/portacode_service_silently_down.md +0 -0
  373. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/todo/issues/premature_terminal_exit.md +0 -0
  374. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/todo/issues/project_cpu_hotspots.md +0 -0
  375. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/todo/issues/terminals_exit_upon_starting.md +0 -0
  376. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/todo/issues/wrong_item_classification_on_client_side.md +0 -0
  377. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/todo/smartphone_terminal_input_frustrations.md +0 -0
  378. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/tools/generate_play_store_assets.py +0 -0
  379. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/tools/pairing_tester.py +0 -0
  380. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/tools/run_screenshot_suite.sh +0 -0
  381. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/tools/test_python_ntp_clock.py +0 -0
  382. {portacode-1.4.12.dev9 → portacode-1.4.13.dev0}/validate.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: portacode
3
- Version: 1.4.12.dev9
3
+ Version: 1.4.13.dev0
4
4
  Summary: Portacode CLI client and SDK
5
5
  Home-page: https://github.com/portacode/portacode
6
6
  Author: Meena Erian
@@ -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.12.dev9'
32
- __version_tuple__ = version_tuple = (1, 4, 12, 'dev9')
31
+ __version__ = version = '1.4.13.dev0'
32
+ __version_tuple__ = version_tuple = (1, 4, 13, 'dev0')
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -59,6 +59,7 @@ def _emit_progress_event(
59
59
  message: str,
60
60
  phase: str,
61
61
  request_id: Optional[str],
62
+ client_sessions: Optional[List[str]] = None,
62
63
  details: Optional[Dict[str, Any]] = None,
63
64
  ) -> None:
64
65
  loop = handler.context.get("event_loop")
@@ -84,6 +85,8 @@ def _emit_progress_event(
84
85
  payload["request_id"] = request_id
85
86
  if details:
86
87
  payload["details"] = details
88
+ if client_sessions:
89
+ payload["client_sessions"] = client_sessions
87
90
 
88
91
  future = asyncio.run_coroutine_threadsafe(handler.send_response(payload), loop)
89
92
  future.add_done_callback(
@@ -1050,8 +1053,14 @@ class CreateProxmoxContainerHandler(SyncHandler):
1050
1053
  return "create_proxmox_container"
1051
1054
 
1052
1055
  def execute(self, message: Dict[str, Any]) -> Dict[str, Any]:
1053
- logger.info("create_proxmox_container command received")
1054
1056
  request_id = message.get("request_id")
1057
+ source_client_session = message.get("source_client_session")
1058
+ logger.info(
1059
+ "create_proxmox_container command received request_id=%s client_session=%s",
1060
+ request_id,
1061
+ source_client_session,
1062
+ )
1063
+ client_sessions = [source_client_session] if source_client_session else None
1055
1064
  bootstrap_user, bootstrap_password, bootstrap_ssh_key = _get_provisioning_user_info(message)
1056
1065
  bootstrap_steps = _build_bootstrap_steps(bootstrap_user, bootstrap_password, bootstrap_ssh_key)
1057
1066
  total_steps = 3 + len(bootstrap_steps) + 2
@@ -1075,6 +1084,7 @@ class CreateProxmoxContainerHandler(SyncHandler):
1075
1084
  message=start_message,
1076
1085
  phase="lifecycle",
1077
1086
  request_id=request_id,
1087
+ client_sessions=client_sessions,
1078
1088
  )
1079
1089
  try:
1080
1090
  result = action()
@@ -1089,6 +1099,7 @@ class CreateProxmoxContainerHandler(SyncHandler):
1089
1099
  message=f"{step_label} failed: {exc}",
1090
1100
  phase="lifecycle",
1091
1101
  request_id=request_id,
1102
+ client_sessions=client_sessions,
1092
1103
  details={"error": str(exc)},
1093
1104
  )
1094
1105
  raise
@@ -1102,6 +1113,7 @@ class CreateProxmoxContainerHandler(SyncHandler):
1102
1113
  message=success_message,
1103
1114
  phase="lifecycle",
1104
1115
  request_id=request_id,
1116
+ client_sessions=client_sessions,
1105
1117
  )
1106
1118
  current_step_index += 1
1107
1119
  return result
@@ -1131,7 +1143,7 @@ class CreateProxmoxContainerHandler(SyncHandler):
1131
1143
  payload["cpuunits"] = max(int(payload["cpus"] * 1024), 10)
1132
1144
  payload["memory"] = int(payload["ram_mib"])
1133
1145
  payload["node"] = node
1134
- logger.debug(
1146
+ logger.info(
1135
1147
  "Provisioning container node=%s template=%s ram=%s cpu=%s storage=%s",
1136
1148
  node,
1137
1149
  payload["template"],
@@ -1144,6 +1156,12 @@ class CreateProxmoxContainerHandler(SyncHandler):
1144
1156
  payload["created_at"] = datetime.utcnow().isoformat() + "Z"
1145
1157
  payload["status"] = "creating"
1146
1158
  _write_container_record(vmid, payload)
1159
+ logger.info(
1160
+ "Container record written vmid=%s hostname=%s client_session=%s",
1161
+ vmid,
1162
+ payload["hostname"],
1163
+ source_client_session,
1164
+ )
1147
1165
  return proxmox, node, vmid, payload
1148
1166
 
1149
1167
  proxmox, node, vmid, payload = _run_lifecycle_step(
@@ -1202,9 +1220,16 @@ class CreateProxmoxContainerHandler(SyncHandler):
1202
1220
  message=message_text,
1203
1221
  phase="bootstrap",
1204
1222
  request_id=request_id,
1223
+ client_sessions=client_sessions,
1205
1224
  details=details or None,
1206
1225
  )
1207
1226
 
1227
+ logger.info(
1228
+ "Bootstrapping Portacode in container vmid=%s user=%s client_session=%s",
1229
+ vmid,
1230
+ payload["username"],
1231
+ source_client_session,
1232
+ )
1208
1233
  public_key, steps = _bootstrap_portacode(
1209
1234
  vmid,
1210
1235
  payload["username"],
@@ -1217,7 +1242,7 @@ class CreateProxmoxContainerHandler(SyncHandler):
1217
1242
  )
1218
1243
  current_step_index += len(bootstrap_steps)
1219
1244
 
1220
- return {
1245
+ response = {
1221
1246
  "event": "proxmox_container_created",
1222
1247
  "success": True,
1223
1248
  "message": f"Container {vmid} is ready and Portacode key captured.",
@@ -1234,6 +1259,9 @@ class CreateProxmoxContainerHandler(SyncHandler):
1234
1259
  },
1235
1260
  "setup_steps": steps,
1236
1261
  }
1262
+ if client_sessions:
1263
+ response["client_sessions"] = client_sessions
1264
+ return response
1237
1265
 
1238
1266
 
1239
1267
  class StartPortacodeServiceHandler(SyncHandler):
@@ -1261,6 +1289,15 @@ class StartPortacodeServiceHandler(SyncHandler):
1261
1289
  start_index = int(message.get("step_index", 1))
1262
1290
  total_steps = int(message.get("total_steps", start_index + 2))
1263
1291
  request_id = message.get("request_id")
1292
+ source_client_session = message.get("source_client_session")
1293
+ client_sessions = [source_client_session] if source_client_session else None
1294
+
1295
+ logger.info(
1296
+ "start_portacode_service invoked vmid=%s user=%s client_session=%s",
1297
+ vmid,
1298
+ user,
1299
+ source_client_session,
1300
+ )
1264
1301
 
1265
1302
  auth_step_name = "setup_device_authentication"
1266
1303
  auth_label = "Setting up device authentication"
@@ -1274,6 +1311,7 @@ class StartPortacodeServiceHandler(SyncHandler):
1274
1311
  message="Notifying the server of the new device…",
1275
1312
  phase="service",
1276
1313
  request_id=request_id,
1314
+ client_sessions=client_sessions,
1277
1315
  )
1278
1316
  _emit_progress_event(
1279
1317
  self,
@@ -1285,6 +1323,7 @@ class StartPortacodeServiceHandler(SyncHandler):
1285
1323
  message="Authentication metadata recorded.",
1286
1324
  phase="service",
1287
1325
  request_id=request_id,
1326
+ client_sessions=client_sessions,
1288
1327
  )
1289
1328
 
1290
1329
  install_step = start_index + 1
@@ -1299,6 +1338,7 @@ class StartPortacodeServiceHandler(SyncHandler):
1299
1338
  message="Running sudo portacode service install…",
1300
1339
  phase="service",
1301
1340
  request_id=request_id,
1341
+ client_sessions=client_sessions,
1302
1342
  )
1303
1343
 
1304
1344
  cmd = f"su - {user} -c 'sudo -S portacode service install'"
@@ -1315,6 +1355,7 @@ class StartPortacodeServiceHandler(SyncHandler):
1315
1355
  message=f"{install_label} failed: {res.get('stderr') or res.get('stdout')}",
1316
1356
  phase="service",
1317
1357
  request_id=request_id,
1358
+ client_sessions=client_sessions,
1318
1359
  details={
1319
1360
  "stderr": res.get("stderr"),
1320
1361
  "stdout": res.get("stdout"),
@@ -1322,6 +1363,12 @@ class StartPortacodeServiceHandler(SyncHandler):
1322
1363
  )
1323
1364
  raise RuntimeError(res.get("stderr") or res.get("stdout") or "Service install failed")
1324
1365
 
1366
+ logger.info(
1367
+ "portacode service install command completed vmid=%s returncode=%s",
1368
+ vmid,
1369
+ res["returncode"],
1370
+ )
1371
+
1325
1372
  _emit_progress_event(
1326
1373
  self,
1327
1374
  step_index=install_step,
@@ -1332,14 +1379,18 @@ class StartPortacodeServiceHandler(SyncHandler):
1332
1379
  message="Portacode service install finished.",
1333
1380
  phase="service",
1334
1381
  request_id=request_id,
1382
+ client_sessions=client_sessions,
1335
1383
  )
1336
1384
 
1337
- return {
1385
+ response = {
1338
1386
  "event": "proxmox_service_started",
1339
1387
  "success": True,
1340
1388
  "message": "Portacode service install completed",
1341
1389
  "ctid": str(vmid),
1342
1390
  }
1391
+ if client_sessions:
1392
+ response["client_sessions"] = client_sessions
1393
+ return response
1343
1394
 
1344
1395
 
1345
1396
  class StartProxmoxContainerHandler(SyncHandler):
@@ -1355,12 +1406,20 @@ class StartProxmoxContainerHandler(SyncHandler):
1355
1406
  proxmox = _connect_proxmox(config)
1356
1407
  node = _get_node_from_config(config)
1357
1408
  _ensure_container_managed(proxmox, node, vmid)
1409
+ source_client_session = message.get("source_client_session")
1410
+ client_sessions = [source_client_session] if source_client_session else None
1411
+
1412
+ logger.info(
1413
+ "start_proxmox_container invoked vmid=%s client_session=%s",
1414
+ vmid,
1415
+ source_client_session,
1416
+ )
1358
1417
 
1359
1418
  status, elapsed = _start_container(proxmox, node, vmid)
1360
1419
  _update_container_record(vmid, {"status": "running"})
1361
1420
 
1362
1421
  infra = get_infra_snapshot()
1363
- return {
1422
+ response = {
1364
1423
  "event": "proxmox_container_action",
1365
1424
  "action": "start",
1366
1425
  "success": True,
@@ -1370,6 +1429,9 @@ class StartProxmoxContainerHandler(SyncHandler):
1370
1429
  "status": status.get("status"),
1371
1430
  "infra": infra,
1372
1431
  }
1432
+ if client_sessions:
1433
+ response["client_sessions"] = client_sessions
1434
+ return response
1373
1435
 
1374
1436
 
1375
1437
  class StopProxmoxContainerHandler(SyncHandler):
@@ -1385,6 +1447,14 @@ class StopProxmoxContainerHandler(SyncHandler):
1385
1447
  proxmox = _connect_proxmox(config)
1386
1448
  node = _get_node_from_config(config)
1387
1449
  _ensure_container_managed(proxmox, node, vmid)
1450
+ source_client_session = message.get("source_client_session")
1451
+ client_sessions = [source_client_session] if source_client_session else None
1452
+
1453
+ logger.info(
1454
+ "stop_proxmox_container invoked vmid=%s client_session=%s",
1455
+ vmid,
1456
+ source_client_session,
1457
+ )
1388
1458
 
1389
1459
  status, elapsed = _stop_container(proxmox, node, vmid)
1390
1460
  final_status = status.get("status") or "stopped"
@@ -1396,7 +1466,7 @@ class StopProxmoxContainerHandler(SyncHandler):
1396
1466
  if final_status != "running" and elapsed == 0.0
1397
1467
  else f"Stopped container {vmid} in {elapsed:.1f}s."
1398
1468
  )
1399
- return {
1469
+ response = {
1400
1470
  "event": "proxmox_container_action",
1401
1471
  "action": "stop",
1402
1472
  "success": True,
@@ -1406,6 +1476,9 @@ class StopProxmoxContainerHandler(SyncHandler):
1406
1476
  "status": final_status,
1407
1477
  "infra": infra,
1408
1478
  }
1479
+ if client_sessions:
1480
+ response["client_sessions"] = client_sessions
1481
+ return response
1409
1482
 
1410
1483
 
1411
1484
  class RemoveProxmoxContainerHandler(SyncHandler):
@@ -1421,13 +1494,21 @@ class RemoveProxmoxContainerHandler(SyncHandler):
1421
1494
  proxmox = _connect_proxmox(config)
1422
1495
  node = _get_node_from_config(config)
1423
1496
  _ensure_container_managed(proxmox, node, vmid)
1497
+ source_client_session = message.get("source_client_session")
1498
+ client_sessions = [source_client_session] if source_client_session else None
1499
+
1500
+ logger.info(
1501
+ "remove_proxmox_container invoked vmid=%s client_session=%s",
1502
+ vmid,
1503
+ source_client_session,
1504
+ )
1424
1505
 
1425
1506
  stop_status, stop_elapsed = _stop_container(proxmox, node, vmid)
1426
1507
  delete_status, delete_elapsed = _delete_container(proxmox, node, vmid)
1427
1508
  _remove_container_record(vmid)
1428
1509
 
1429
1510
  infra = get_infra_snapshot()
1430
- return {
1511
+ response = {
1431
1512
  "event": "proxmox_container_action",
1432
1513
  "action": "remove",
1433
1514
  "success": True,
@@ -1440,6 +1521,9 @@ class RemoveProxmoxContainerHandler(SyncHandler):
1440
1521
  "status": "deleted",
1441
1522
  "infra": infra,
1442
1523
  }
1524
+ if client_sessions:
1525
+ response["client_sessions"] = client_sessions
1526
+ return response
1443
1527
 
1444
1528
 
1445
1529
  class ConfigureProxmoxInfraHandler(SyncHandler):
@@ -1453,13 +1537,18 @@ class ConfigureProxmoxInfraHandler(SyncHandler):
1453
1537
  verify_ssl = bool(message.get("verify_ssl"))
1454
1538
  if not token_identifier or not token_value:
1455
1539
  raise ValueError("token_identifier and token_value are required")
1540
+ source_client_session = message.get("source_client_session")
1541
+ client_sessions = [source_client_session] if source_client_session else None
1456
1542
  snapshot = configure_infrastructure(token_identifier, token_value, verify_ssl=verify_ssl)
1457
- return {
1543
+ response = {
1458
1544
  "event": "proxmox_infra_configured",
1459
1545
  "success": True,
1460
1546
  "message": "Proxmox infrastructure configured",
1461
1547
  "infra": snapshot,
1462
1548
  }
1549
+ if client_sessions:
1550
+ response["client_sessions"] = client_sessions
1551
+ return response
1463
1552
 
1464
1553
 
1465
1554
  class RevertProxmoxInfraHandler(SyncHandler):
@@ -1468,10 +1557,15 @@ class RevertProxmoxInfraHandler(SyncHandler):
1468
1557
  return "revert_proxmox_infra"
1469
1558
 
1470
1559
  def execute(self, message: Dict[str, Any]) -> Dict[str, Any]:
1560
+ source_client_session = message.get("source_client_session")
1561
+ client_sessions = [source_client_session] if source_client_session else None
1471
1562
  snapshot = revert_infrastructure()
1472
- return {
1563
+ response = {
1473
1564
  "event": "proxmox_infra_reverted",
1474
1565
  "success": True,
1475
1566
  "message": "Proxmox infrastructure configuration reverted",
1476
1567
  "infra": snapshot,
1477
1568
  }
1569
+ if client_sessions:
1570
+ response["client_sessions"] = client_sessions
1571
+ return response
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: portacode
3
- Version: 1.4.12.dev9
3
+ Version: 1.4.13.dev0
4
4
  Summary: Portacode CLI client and SDK
5
5
  Home-page: https://github.com/portacode/portacode
6
6
  Author: Meena Erian
File without changes