[PR #2412] Real-Time Interactive Terminal #3887

Open
opened 2026-03-14 07:44:14 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/amidaware/tacticalrmm/pull/2412
Author: @fahadkhan-fk
Created: 2/16/2026
Status: 🔄 Open

Base: developHead: feature-terminal


📝 Commits (10+)

  • 7ca29b8 feat: add TerminalStreamConsumer class
  • 5b80c8e feat: reuse one nats connection per web socket session
  • ffc66aa feat: integrate terminal routes and utils after rebase
  • d73fcc9 feat: add default_shell setting for interactive terminal
  • f32eaae feat: add agent based default shell support
  • 837b8da feat: add support for custom default shell path
  • c91afdc style: fix flake8 lint issues
  • 39fef84 refactor: move terminal constants to constants.py
  • 611b853 refactor: remove model validator() and clean() methods
  • 745aa20 feat: add can_use_terminal permission in manager

📊 Changes

15 files changed (+743 additions, -5 deletions)

View changed files

📝 api/tacticalrmm/accounts/models.py (+1 -0)
📝 api/tacticalrmm/agents/consumers.py (+275 -2)
api/tacticalrmm/agents/migrations/0062_agent_default_shell_agent_default_shell_custom.py (+33 -0)
📝 api/tacticalrmm/agents/models.py (+93 -1)
📝 api/tacticalrmm/agents/permissions.py (+10 -0)
📝 api/tacticalrmm/agents/serializers.py (+61 -0)
📝 api/tacticalrmm/agents/urls.py (+1 -0)
📝 api/tacticalrmm/agents/utils.py (+12 -0)
📝 api/tacticalrmm/agents/views.py (+67 -0)
api/tacticalrmm/core/migrations/0052_coresettings_default_shell_darwin_and_more.py (+59 -0)
📝 api/tacticalrmm/core/models.py (+30 -0)
📝 api/tacticalrmm/core/serializers.py (+29 -1)
📝 api/tacticalrmm/tacticalrmm/constants.py (+65 -0)
📝 api/tacticalrmm/tacticalrmm/urls.py (+6 -1)
📝 api/tacticalrmm/tacticalrmm/utils.py (+1 -0)

📄 Description

No description provided


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/amidaware/tacticalrmm/pull/2412 **Author:** [@fahadkhan-fk](https://github.com/fahadkhan-fk) **Created:** 2/16/2026 **Status:** 🔄 Open **Base:** `develop` ← **Head:** `feature-terminal` --- ### 📝 Commits (10+) - [`7ca29b8`](https://github.com/amidaware/tacticalrmm/commit/7ca29b898b2ecee18331da00e896f953c1f8265d) feat: add TerminalStreamConsumer class - [`5b80c8e`](https://github.com/amidaware/tacticalrmm/commit/5b80c8e09cb17fb8db9ca68cebc715c809f76e05) feat: reuse one nats connection per web socket session - [`ffc66aa`](https://github.com/amidaware/tacticalrmm/commit/ffc66aa899f501decbe0c0423386d68f8490dc86) feat: integrate terminal routes and utils after rebase - [`d73fcc9`](https://github.com/amidaware/tacticalrmm/commit/d73fcc91cef5c4cbc8634801b5c9a797cc81aadc) feat: add default_shell setting for interactive terminal - [`f32eaae`](https://github.com/amidaware/tacticalrmm/commit/f32eaae5fe8a6e8ef8e0e604240f64e2c5ac66d1) feat: add agent based default shell support - [`837b8da`](https://github.com/amidaware/tacticalrmm/commit/837b8da38e518adfa69d5f5dffb0927996e48387) feat: add support for custom default shell path - [`c91afdc`](https://github.com/amidaware/tacticalrmm/commit/c91afdc403acb41e0cbee0c06b87132348c2dc4e) style: fix flake8 lint issues - [`39fef84`](https://github.com/amidaware/tacticalrmm/commit/39fef846f6ae8ebd52c53a58a8cbd9c0ed0f3572) refactor: move terminal constants to constants.py - [`611b853`](https://github.com/amidaware/tacticalrmm/commit/611b853d698fc81dbabe65013ca8d156d7c32a50) refactor: remove model validator() and clean() methods - [`745aa20`](https://github.com/amidaware/tacticalrmm/commit/745aa201919c54e4e5d90c12af16e12b255abcbe) feat: add can_use_terminal permission in manager ### 📊 Changes **15 files changed** (+743 additions, -5 deletions) <details> <summary>View changed files</summary> 📝 `api/tacticalrmm/accounts/models.py` (+1 -0) 📝 `api/tacticalrmm/agents/consumers.py` (+275 -2) ➕ `api/tacticalrmm/agents/migrations/0062_agent_default_shell_agent_default_shell_custom.py` (+33 -0) 📝 `api/tacticalrmm/agents/models.py` (+93 -1) 📝 `api/tacticalrmm/agents/permissions.py` (+10 -0) 📝 `api/tacticalrmm/agents/serializers.py` (+61 -0) 📝 `api/tacticalrmm/agents/urls.py` (+1 -0) 📝 `api/tacticalrmm/agents/utils.py` (+12 -0) 📝 `api/tacticalrmm/agents/views.py` (+67 -0) ➕ `api/tacticalrmm/core/migrations/0052_coresettings_default_shell_darwin_and_more.py` (+59 -0) 📝 `api/tacticalrmm/core/models.py` (+30 -0) 📝 `api/tacticalrmm/core/serializers.py` (+29 -1) 📝 `api/tacticalrmm/tacticalrmm/constants.py` (+65 -0) 📝 `api/tacticalrmm/tacticalrmm/urls.py` (+6 -1) 📝 `api/tacticalrmm/tacticalrmm/utils.py` (+1 -0) </details> ### 📄 Description _No description provided_ --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/tacticalrmm#3887
No description provided.