portacode 1.3.25__tar.gz → 1.3.26__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.

Potentially problematic release.


This version of portacode might be problematic. Click here for more details.

Files changed (86) hide show
  1. {portacode-1.3.25 → portacode-1.3.26}/PKG-INFO +18 -41
  2. {portacode-1.3.25 → portacode-1.3.26}/README.md +17 -40
  3. {portacode-1.3.25 → portacode-1.3.26}/docker-compose.yaml +1 -3
  4. {portacode-1.3.25 → portacode-1.3.26}/portacode/_version.py +2 -2
  5. {portacode-1.3.25 → portacode-1.3.26}/portacode.egg-info/PKG-INFO +18 -41
  6. {portacode-1.3.25 → portacode-1.3.26}/portacode.egg-info/SOURCES.txt +3 -1
  7. portacode-1.3.26/todo/issues/indefinite_resource_loading.md +5 -0
  8. portacode-1.3.26/todo/issues/premature_terminal_exit.md +66 -0
  9. {portacode-1.3.25 → portacode-1.3.26}/.claude/agents/communication-manager.md +0 -0
  10. {portacode-1.3.25 → portacode-1.3.26}/.claude/settings.local.json +0 -0
  11. {portacode-1.3.25 → portacode-1.3.26}/.gitignore +0 -0
  12. {portacode-1.3.25 → portacode-1.3.26}/.gitmodules +0 -0
  13. {portacode-1.3.25 → portacode-1.3.26}/LICENSE +0 -0
  14. {portacode-1.3.25 → portacode-1.3.26}/MANIFEST.in +0 -0
  15. {portacode-1.3.25 → portacode-1.3.26}/Makefile +0 -0
  16. {portacode-1.3.25 → portacode-1.3.26}/backup.sh +0 -0
  17. {portacode-1.3.25 → portacode-1.3.26}/connect.py +0 -0
  18. {portacode-1.3.25 → portacode-1.3.26}/connect.sh +0 -0
  19. {portacode-1.3.25 → portacode-1.3.26}/portacode/README.md +0 -0
  20. {portacode-1.3.25 → portacode-1.3.26}/portacode/__init__.py +0 -0
  21. {portacode-1.3.25 → portacode-1.3.26}/portacode/__main__.py +0 -0
  22. {portacode-1.3.25 → portacode-1.3.26}/portacode/cli.py +0 -0
  23. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/README.md +0 -0
  24. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/__init__.py +0 -0
  25. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/client.py +0 -0
  26. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/README.md +0 -0
  27. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/WEBSOCKET_PROTOCOL.md +0 -0
  28. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/__init__.py +0 -0
  29. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/base.py +0 -0
  30. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/chunked_content.py +0 -0
  31. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/file_handlers.py +0 -0
  32. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/project_aware_file_handlers.py +0 -0
  33. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/project_state/README.md +0 -0
  34. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/project_state/__init__.py +0 -0
  35. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/project_state/file_system_watcher.py +0 -0
  36. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/project_state/git_manager.py +0 -0
  37. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/project_state/handlers.py +0 -0
  38. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/project_state/manager.py +0 -0
  39. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/project_state/models.py +0 -0
  40. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/project_state/utils.py +0 -0
  41. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/project_state_handlers.py +0 -0
  42. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/registry.py +0 -0
  43. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/session.py +0 -0
  44. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/system_handlers.py +0 -0
  45. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/tab_factory.py +0 -0
  46. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/handlers/terminal_handlers.py +0 -0
  47. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/multiplex.py +0 -0
  48. {portacode-1.3.25 → portacode-1.3.26}/portacode/connection/terminal.py +0 -0
  49. {portacode-1.3.25 → portacode-1.3.26}/portacode/data.py +0 -0
  50. {portacode-1.3.25 → portacode-1.3.26}/portacode/keypair.py +0 -0
  51. {portacode-1.3.25 → portacode-1.3.26}/portacode/logging_categories.py +0 -0
  52. {portacode-1.3.25 → portacode-1.3.26}/portacode/service.py +0 -0
  53. {portacode-1.3.25 → portacode-1.3.26}/portacode.egg-info/dependency_links.txt +0 -0
  54. {portacode-1.3.25 → portacode-1.3.26}/portacode.egg-info/entry_points.txt +0 -0
  55. {portacode-1.3.25 → portacode-1.3.26}/portacode.egg-info/requires.txt +0 -0
  56. {portacode-1.3.25 → portacode-1.3.26}/portacode.egg-info/top_level.txt +0 -0
  57. {portacode-1.3.25 → portacode-1.3.26}/pyproject.toml +0 -0
  58. {portacode-1.3.25 → portacode-1.3.26}/restore.sh +0 -0
  59. {portacode-1.3.25 → portacode-1.3.26}/run_tests.py +0 -0
  60. {portacode-1.3.25 → portacode-1.3.26}/setup.cfg +0 -0
  61. {portacode-1.3.25 → portacode-1.3.26}/setup.py +0 -0
  62. {portacode-1.3.25 → portacode-1.3.26}/test.sh +0 -0
  63. {portacode-1.3.25 → portacode-1.3.26}/test_modules/README.md +0 -0
  64. {portacode-1.3.25 → portacode-1.3.26}/test_modules/__init__.py +0 -0
  65. {portacode-1.3.25 → portacode-1.3.26}/test_modules/test_device_online.py +0 -0
  66. {portacode-1.3.25 → portacode-1.3.26}/test_modules/test_file_operations.py +0 -0
  67. {portacode-1.3.25 → portacode-1.3.26}/test_modules/test_git_status_ui.py +0 -0
  68. {portacode-1.3.25 → portacode-1.3.26}/test_modules/test_login_flow.py +0 -0
  69. {portacode-1.3.25 → portacode-1.3.26}/test_modules/test_navigate_testing_folder.py +0 -0
  70. {portacode-1.3.25 → portacode-1.3.26}/test_modules/test_terminal_buffer_performance.py +0 -0
  71. {portacode-1.3.25 → portacode-1.3.26}/test_modules/test_terminal_interaction.py +0 -0
  72. {portacode-1.3.25 → portacode-1.3.26}/test_modules/test_terminal_loading_race_condition.py +0 -0
  73. {portacode-1.3.25 → portacode-1.3.26}/test_modules/test_terminal_start.py +0 -0
  74. {portacode-1.3.25 → portacode-1.3.26}/testing_framework/.env.example +0 -0
  75. {portacode-1.3.25 → portacode-1.3.26}/testing_framework/README.md +0 -0
  76. {portacode-1.3.25 → portacode-1.3.26}/testing_framework/__init__.py +0 -0
  77. {portacode-1.3.25 → portacode-1.3.26}/testing_framework/cli.py +0 -0
  78. {portacode-1.3.25 → portacode-1.3.26}/testing_framework/core/__init__.py +0 -0
  79. {portacode-1.3.25 → portacode-1.3.26}/testing_framework/core/base_test.py +0 -0
  80. {portacode-1.3.25 → portacode-1.3.26}/testing_framework/core/cli_manager.py +0 -0
  81. {portacode-1.3.25 → portacode-1.3.26}/testing_framework/core/hierarchical_runner.py +0 -0
  82. {portacode-1.3.25 → portacode-1.3.26}/testing_framework/core/playwright_manager.py +0 -0
  83. {portacode-1.3.25 → portacode-1.3.26}/testing_framework/core/runner.py +0 -0
  84. {portacode-1.3.25 → portacode-1.3.26}/testing_framework/core/shared_cli_manager.py +0 -0
  85. {portacode-1.3.25 → portacode-1.3.26}/testing_framework/core/test_discovery.py +0 -0
  86. {portacode-1.3.25 → portacode-1.3.26}/testing_framework/requirements.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: portacode
3
- Version: 1.3.25
3
+ Version: 1.3.26
4
4
  Summary: Portacode CLI client and SDK
5
5
  Home-page: https://github.com/portacode/portacode
6
6
  Author: Meena Erian
@@ -43,7 +43,7 @@ Dynamic: summary
43
43
 
44
44
  **An AI-first, mobile-first IDE and admin tool, made with love and passion by software engineers, for software engineers.**
45
45
 
46
- Portacode transforms any computer into a remotely accessible development environment. Access your home lab from your phone, code on your desktop from anywhere, or help a colleague debug their server - all through a beautiful web interface designed for the modern developer.
46
+ Portacode transforms any device with python into a remotely accessible development environment. Access your home lab, server or even embedded system chip from your phone, code on your desktop or your smartphone from anywhere, or help a colleague debug their server - all through a beautiful web interface designed for the modern developer.
47
47
 
48
48
  ## ✨ Why Portacode?
49
49
 
@@ -86,40 +86,9 @@ Once connected, you can:
86
86
 
87
87
  ## 💡 Use Cases
88
88
 
89
- ### Remote Development
90
- ```bash
91
- # Connect your development machine
92
- portacode connect
93
-
94
- # Now code, build, and debug from anywhere - even your phone
95
- ```
96
-
97
- ### Server Administration
98
- ```bash
99
- # For a persistent connection, install system-wide first
100
- sudo pip install portacode --system
101
-
102
- # Then install as a service
103
- sudo portacode service install
104
-
105
- # Your server is now accessible 24/7 from the web dashboard
106
- ```
107
-
108
- ### Mobile Development
109
- ```bash
110
- # Connect your desktop/laptop
111
- portacode connect
112
-
113
- # Code on-the-go from your mobile device with a full IDE experience
114
- ```
115
-
116
- ### Team Collaboration
117
- ```bash
118
- # Connect shared development environments
119
- portacode connect
120
-
121
- # Enable team members to access shared resources securely
122
- ```
89
+ - **Remote Development**: Code, build, and debug from anywhere - even your phone
90
+ - **Server Administration**: 24/7 server access with persistent service installation
91
+ - **Mobile Development**: Full IDE experience on mobile devices
123
92
 
124
93
  ## 🔧 Essential Commands
125
94
 
@@ -140,19 +109,21 @@ portacode --help
140
109
 
141
110
  ### Service Management
142
111
  ```bash
143
- # For system services, install package system-wide first
112
+ # First, authenticate your device
113
+ portacode connect
114
+
115
+ # For system services, install package system-wide
144
116
  sudo pip install portacode --system
145
117
 
146
118
  # Install persistent service (auto-start on boot)
147
119
  sudo portacode service install
148
120
 
149
- # Check service status
121
+ # Check service status (use -v for verbose debugging)
150
122
  sudo portacode service status
123
+ sudo portacode service status -v
151
124
 
152
- # Stop the service
125
+ # Stop/remove the service
153
126
  sudo portacode service stop
154
-
155
- # Remove the service
156
127
  sudo portacode service uninstall
157
128
  ```
158
129
 
@@ -194,11 +165,17 @@ sudo portacode service status --verbose
194
165
 
195
166
  ### Service Installation Issues
196
167
  ```bash
168
+ # First authenticate your device
169
+ portacode connect
170
+
197
171
  # If service commands fail, ensure system-wide installation
198
172
  sudo pip install portacode --system
199
173
 
200
174
  # Then try service installation again
201
175
  sudo portacode service install
176
+
177
+ # Use verbose status to debug connection issues
178
+ sudo portacode service status -v
202
179
  ```
203
180
 
204
181
  ### Clipboard Issues (Linux)
@@ -2,7 +2,7 @@
2
2
 
3
3
  **An AI-first, mobile-first IDE and admin tool, made with love and passion by software engineers, for software engineers.**
4
4
 
5
- Portacode transforms any computer into a remotely accessible development environment. Access your home lab from your phone, code on your desktop from anywhere, or help a colleague debug their server - all through a beautiful web interface designed for the modern developer.
5
+ Portacode transforms any device with python into a remotely accessible development environment. Access your home lab, server or even embedded system chip from your phone, code on your desktop or your smartphone from anywhere, or help a colleague debug their server - all through a beautiful web interface designed for the modern developer.
6
6
 
7
7
  ## ✨ Why Portacode?
8
8
 
@@ -45,40 +45,9 @@ Once connected, you can:
45
45
 
46
46
  ## 💡 Use Cases
47
47
 
48
- ### Remote Development
49
- ```bash
50
- # Connect your development machine
51
- portacode connect
52
-
53
- # Now code, build, and debug from anywhere - even your phone
54
- ```
55
-
56
- ### Server Administration
57
- ```bash
58
- # For a persistent connection, install system-wide first
59
- sudo pip install portacode --system
60
-
61
- # Then install as a service
62
- sudo portacode service install
63
-
64
- # Your server is now accessible 24/7 from the web dashboard
65
- ```
66
-
67
- ### Mobile Development
68
- ```bash
69
- # Connect your desktop/laptop
70
- portacode connect
71
-
72
- # Code on-the-go from your mobile device with a full IDE experience
73
- ```
74
-
75
- ### Team Collaboration
76
- ```bash
77
- # Connect shared development environments
78
- portacode connect
79
-
80
- # Enable team members to access shared resources securely
81
- ```
48
+ - **Remote Development**: Code, build, and debug from anywhere - even your phone
49
+ - **Server Administration**: 24/7 server access with persistent service installation
50
+ - **Mobile Development**: Full IDE experience on mobile devices
82
51
 
83
52
  ## 🔧 Essential Commands
84
53
 
@@ -99,19 +68,21 @@ portacode --help
99
68
 
100
69
  ### Service Management
101
70
  ```bash
102
- # For system services, install package system-wide first
71
+ # First, authenticate your device
72
+ portacode connect
73
+
74
+ # For system services, install package system-wide
103
75
  sudo pip install portacode --system
104
76
 
105
77
  # Install persistent service (auto-start on boot)
106
78
  sudo portacode service install
107
79
 
108
- # Check service status
80
+ # Check service status (use -v for verbose debugging)
109
81
  sudo portacode service status
82
+ sudo portacode service status -v
110
83
 
111
- # Stop the service
84
+ # Stop/remove the service
112
85
  sudo portacode service stop
113
-
114
- # Remove the service
115
86
  sudo portacode service uninstall
116
87
  ```
117
88
 
@@ -153,11 +124,17 @@ sudo portacode service status --verbose
153
124
 
154
125
  ### Service Installation Issues
155
126
  ```bash
127
+ # First authenticate your device
128
+ portacode connect
129
+
156
130
  # If service commands fail, ensure system-wide installation
157
131
  sudo pip install portacode --system
158
132
 
159
133
  # Then try service installation again
160
134
  sudo portacode service install
135
+
136
+ # Use verbose status to debug connection issues
137
+ sudo portacode service status -v
161
138
  ```
162
139
 
163
140
  ### Clipboard Issues (Linux)
@@ -21,11 +21,9 @@ services:
21
21
  dockerfile: Dockerfile
22
22
  container_name: portacode-django
23
23
  restart: unless-stopped
24
- command: ["bash", "-c", "python manage.py migrate && python manage.py collectstatic --noinput && python manage.py runserver 0.0.0.0:8001"]
24
+ command: ["bash", "-c", "python manage.py migrate && python manage.py collectstatic --noinput && daphne portacode_django.asgi:application -b 0.0.0.0 -p 8001"]
25
25
  env_file:
26
26
  - main.env
27
- environment:
28
- - DJANGO_DEBUG=${DJANGO_DEBUG:-false}
29
27
  depends_on:
30
28
  db:
31
29
  condition: service_healthy
@@ -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.3.25'
32
- __version_tuple__ = version_tuple = (1, 3, 25)
31
+ __version__ = version = '1.3.26'
32
+ __version_tuple__ = version_tuple = (1, 3, 26)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: portacode
3
- Version: 1.3.25
3
+ Version: 1.3.26
4
4
  Summary: Portacode CLI client and SDK
5
5
  Home-page: https://github.com/portacode/portacode
6
6
  Author: Meena Erian
@@ -43,7 +43,7 @@ Dynamic: summary
43
43
 
44
44
  **An AI-first, mobile-first IDE and admin tool, made with love and passion by software engineers, for software engineers.**
45
45
 
46
- Portacode transforms any computer into a remotely accessible development environment. Access your home lab from your phone, code on your desktop from anywhere, or help a colleague debug their server - all through a beautiful web interface designed for the modern developer.
46
+ Portacode transforms any device with python into a remotely accessible development environment. Access your home lab, server or even embedded system chip from your phone, code on your desktop or your smartphone from anywhere, or help a colleague debug their server - all through a beautiful web interface designed for the modern developer.
47
47
 
48
48
  ## ✨ Why Portacode?
49
49
 
@@ -86,40 +86,9 @@ Once connected, you can:
86
86
 
87
87
  ## 💡 Use Cases
88
88
 
89
- ### Remote Development
90
- ```bash
91
- # Connect your development machine
92
- portacode connect
93
-
94
- # Now code, build, and debug from anywhere - even your phone
95
- ```
96
-
97
- ### Server Administration
98
- ```bash
99
- # For a persistent connection, install system-wide first
100
- sudo pip install portacode --system
101
-
102
- # Then install as a service
103
- sudo portacode service install
104
-
105
- # Your server is now accessible 24/7 from the web dashboard
106
- ```
107
-
108
- ### Mobile Development
109
- ```bash
110
- # Connect your desktop/laptop
111
- portacode connect
112
-
113
- # Code on-the-go from your mobile device with a full IDE experience
114
- ```
115
-
116
- ### Team Collaboration
117
- ```bash
118
- # Connect shared development environments
119
- portacode connect
120
-
121
- # Enable team members to access shared resources securely
122
- ```
89
+ - **Remote Development**: Code, build, and debug from anywhere - even your phone
90
+ - **Server Administration**: 24/7 server access with persistent service installation
91
+ - **Mobile Development**: Full IDE experience on mobile devices
123
92
 
124
93
  ## 🔧 Essential Commands
125
94
 
@@ -140,19 +109,21 @@ portacode --help
140
109
 
141
110
  ### Service Management
142
111
  ```bash
143
- # For system services, install package system-wide first
112
+ # First, authenticate your device
113
+ portacode connect
114
+
115
+ # For system services, install package system-wide
144
116
  sudo pip install portacode --system
145
117
 
146
118
  # Install persistent service (auto-start on boot)
147
119
  sudo portacode service install
148
120
 
149
- # Check service status
121
+ # Check service status (use -v for verbose debugging)
150
122
  sudo portacode service status
123
+ sudo portacode service status -v
151
124
 
152
- # Stop the service
125
+ # Stop/remove the service
153
126
  sudo portacode service stop
154
-
155
- # Remove the service
156
127
  sudo portacode service uninstall
157
128
  ```
158
129
 
@@ -194,11 +165,17 @@ sudo portacode service status --verbose
194
165
 
195
166
  ### Service Installation Issues
196
167
  ```bash
168
+ # First authenticate your device
169
+ portacode connect
170
+
197
171
  # If service commands fail, ensure system-wide installation
198
172
  sudo pip install portacode --system
199
173
 
200
174
  # Then try service installation again
201
175
  sudo portacode service install
176
+
177
+ # Use verbose status to debug connection issues
178
+ sudo portacode service status -v
202
179
  ```
203
180
 
204
181
  ### Clipboard Issues (Linux)
@@ -79,4 +79,6 @@ testing_framework/core/hierarchical_runner.py
79
79
  testing_framework/core/playwright_manager.py
80
80
  testing_framework/core/runner.py
81
81
  testing_framework/core/shared_cli_manager.py
82
- testing_framework/core/test_discovery.py
82
+ testing_framework/core/test_discovery.py
83
+ todo/issues/indefinite_resource_loading.md
84
+ todo/issues/premature_terminal_exit.md
@@ -0,0 +1,5 @@
1
+ # Issue
2
+ Sometimes on initial page load, while the device sends the websocket message "event": "system_info" apparently the loading sequence goes incorrectly and the even is not handled correctly in the page and the device-card hides the device-resources under the loading overlay indefinitely until next system_info websocket message which wouldn't happen spontanously.
3
+
4
+ # Suggested solution
5
+ Edit the client side code to ensure such the handlers for such system_info messages are ready before establishing the websocket connection plus, since typically the resources are already available from cache, the loading overlay should not be active unless there is abolutely no info for resource usage, which is not the case in this scenario and we can even see the blurred numbers under the loading overlay, and in that scenario the loading overlay should not be visible to begine with
@@ -0,0 +1,66 @@
1
+ # Issue: Terminal session exits immediately after start (intermittent; device-sticky until service restart)
2
+
3
+ ## What’s happening (facts)
4
+
5
+ * **Symptom:** Adevice would be working fine until suddenly it gets locked in a state where starting any new terminal session results in the terminal exiting immediately after.
6
+ * **Intermittency:** The issue **doesn’t always happen**; usually things work.
7
+ * **Device stickiness:** When a **device** experiences the issue, **every attempt on that device** behaves the same (immediate exit) **even if starting in a different project folder or even in the dashboard**.
8
+ * **Persistence & workaround:** The problem **persists until the Portacode service on the device is restarted**; restarting clears it (until it recurs).
9
+
10
+ ## Command used
11
+
12
+ * To view logs: `portacode service status -v`
13
+
14
+ ## Log evidence (exact lines, in order)
15
+
16
+ ```
17
+ Aug 28 08:52:17 portacode-streamer python3[109754]: [INFO] registry: Dispatching command 'terminal_start' with reply_channel=None
18
+ Aug 28 08:52:17 portacode-streamer python3[109754]: [INFO] handler: Processing command terminal_start with reply_channel=None
19
+ Aug 28 08:52:17 portacode-streamer python3[109754]: [INFO] Launching terminal 34ac592951c84a7b823ccd0432527d75 using shell=bash on channel=34ac592951c84a7b823ccd0432527d75
20
+ Aug 28 08:52:17 portacode-streamer python3[109754]: [INFO] handler: Command terminal_start executed successfully
21
+ Aug 28 08:52:17 portacode-streamer python3[109754]: [INFO] handler: terminal_start response project_id=1556b16d-a4a7-440e-b872-5ba82d756848, response={'event': 'terminal_started', 'terminal_id': '34ac592951c84a7b823ccd0432527d75', 'channel': '34ac592951c84a7b823ccd0432527d75', 'pid': 4001561, 'shell': 'bash', 'cwd': '/home/menas/portacode', 'project_id': '1556b16d-a4a7-440e-b872-5ba82d756848'}
22
+ Aug 28 08:52:17 portacode-streamer python3[109754]: [INFO] registry: Successfully dispatched command 'terminal_start'
23
+ Aug 28 08:52:20 portacode-streamer python3[109754]: [INFO] session_manager: Removed session 34ac592951c84a7b823ccd0432527d75 (PID: 4001561) from session manager
24
+ Aug 28 08:52:21 portacode-streamer python3[109754]: [ERROR] Task was destroyed but it is pending!
25
+ Aug 28 08:52:21 portacode-streamer python3[109754]: task: <Task pending name='Task-23986288' coro=<TerminalSession.start_io_forwarding.<locals>._pump() running at /home/menas/.local/lib/python3.11/site-packages/portacode/connection/handlers/session.py:70> wait_for=<Future pending cb=[Task.task_wakeup()]>>
26
+ Aug 28 08:52:22 portacode-streamer python3[109754]: [ERROR] [DEBUG] Error loading directory /home/menas/portacode: [Errno 9] Bad file descriptor: '/home/menas/portacode'
27
+ Aug 28 08:52:55 portacode-streamer python3[109754]: [INFO] terminal_manager: Processing command 'client_sessions_update' with reply_channel=None
28
+ Aug 28 08:52:55 portacode-streamer python3[109754]: [INFO] terminal_manager: 🔔 RECEIVED client_sessions_update with 1 sessions
29
+ Aug 28 08:52:55 portacode-streamer python3[109754]: [INFO] Updated client sessions: 1 sessions, 0 newly added, 1 disconnected
30
+ Aug 28 08:52:55 portacode-streamer python3[109754]: [INFO] Disconnected sessions: ['specific..inmemory!VfoFkZPqGxjL']
31
+ Aug 28 08:52:55 portacode-streamer python3[109754]: [INFO] Project states preserved for potential reconnection of these sessions
32
+ Aug 28 08:52:55 portacode-streamer python3[109754]: [INFO] terminal_manager: ✅ Updated client sessions (1 sessions)
33
+ Aug 28 08:52:55 portacode-streamer python3[109754]: [INFO] terminal_manager: ℹ️ No new sessions to send data to
34
+ Aug 28 08:52:55 portacode-streamer python3[109754]: [INFO] [DEBUG] get_or_create_project_state_manager called
35
+ Aug 28 08:52:55 portacode-streamer python3[109754]: [INFO] [DEBUG] Context debug flag: False
36
+ Aug 28 08:52:55 portacode-streamer python3[109754]: [INFO] [DEBUG] Returning existing GLOBAL project state manager (PID: 109754)
37
+ ```
38
+
39
+ ## Concrete facts derivable from the logs
40
+
41
+ * **Terminal launch reported as successful** at `08:52:17` with:
42
+
43
+ * `terminal_id`: `34ac592951c84a7b823ccd0432527d75`
44
+ * `channel`: `34ac592951c84a7b823ccd0432527d75`
45
+ * `pid`: `4001561`
46
+ * `shell`: `bash`
47
+ * `cwd`: `/home/menas/portacode`
48
+ * `project_id`: `1556b16d-a4a7-440e-b872-5ba82d756848`
49
+ * **Session removal** occurred **3 seconds later** at `08:52:20` for the same terminal ID and PID.
50
+ * After removal, logs show:
51
+
52
+ * An **async task** message: “Task was destroyed but it is pending!” referencing `TerminalSession.start_io_forwarding.<locals>._pump()` at `session.py:70`.
53
+ * A **directory error**: “Error loading directory /home/menas/portacode: \[Errno 9] Bad file descriptor”.
54
+ * A subsequent **client sessions update** indicates **1 disconnected session** and that **project states were preserved**.
55
+ * The system indicates it is **using an existing GLOBAL project state manager** (process PID shown as `109754`).
56
+
57
+ ## What is **not** present in the provided data
58
+
59
+ * No **exit code** or **signal** for PID `4001561` is printed.
60
+ * No explicit **permission denied** messages.
61
+ * No explicit **resource limit** or **out-of-file-descriptor** message.
62
+ * No timezone information in the timestamps (only date and time as logged).
63
+
64
+ ---
65
+
66
+ If you want me to go further, I can keep it factual and transform this into a minimal repro checklist or collect-only diagnostics (no hypotheses)—but I’ll stop here unless you say otherwise.
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