codee-agent 0.7.4__tar.gz → 0.7.5__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 (97) hide show
  1. {codee_agent-0.7.4 → codee_agent-0.7.5}/PKG-INFO +1 -1
  2. {codee_agent-0.7.4 → codee_agent-0.7.5}/pyproject.toml +1 -1
  3. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/admin.py +6 -1
  4. codee_agent-0.7.5/src/codee/test_admin.py +41 -0
  5. {codee_agent-0.7.4 → codee_agent-0.7.5}/LICENSE +0 -0
  6. {codee_agent-0.7.4 → codee_agent-0.7.5}/README.md +0 -0
  7. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/.gitignore +0 -0
  8. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/__init__.py +0 -0
  9. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/admin_api.py +0 -0
  10. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/admin_cli.py +0 -0
  11. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/admin_service.py +0 -0
  12. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/agent_cli.py +0 -0
  13. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/coding_agents.py +0 -0
  14. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/executor.py +0 -0
  15. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/init_cli.py +0 -0
  16. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/__init__.py +0 -0
  17. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/claude_key_rotation.py +0 -0
  18. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/cron_describe.py +0 -0
  19. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/mcp_config.py +0 -0
  20. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/runs_db.py +0 -0
  21. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/runtime_control.py +0 -0
  22. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/test_claude_key_rotation.py +0 -0
  23. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/test_mcp_config.py +0 -0
  24. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/test_runs_db.py +0 -0
  25. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/test_trigger_cron_skills.py +0 -0
  26. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/test_trigger_issue_skills.py +0 -0
  27. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/trigger_aws_sqs_skills.py +0 -0
  28. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/trigger_cron_skills.py +0 -0
  29. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/trigger_email_skills.py +0 -0
  30. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/lib/trigger_issue_skills.py +0 -0
  31. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/mail_server.py +0 -0
  32. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/setup_wizard.py +0 -0
  33. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/start_cli.py +0 -0
  34. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/tasks_providers.py +0 -0
  35. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/AGENTS.md +0 -0
  36. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/CLAUDE.md +0 -0
  37. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/skills/aws-sqs-alarm-response/SKILL.md +0 -0
  38. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/skills/cron-research-5xx-errors/SKILL.md +0 -0
  39. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/skills/story-code-reviewer/SKILL.md +0 -0
  40. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/skills/story-developer/SKILL.md +0 -0
  41. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/skills/story-planner/SKILL.md +0 -0
  42. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/skills/story-planner/assets/readme-template.md +0 -0
  43. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/skills/story-qa/SKILL.md +0 -0
  44. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/skills/story-security-reviewer/SKILL.md +0 -0
  45. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/skills/task-code-reviewer/SKILL.md +0 -0
  46. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/skills/task-developer/SKILL.md +0 -0
  47. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/skills/task-qa/SKILL.md +0 -0
  48. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/templates/skills/task-security-reviewer/SKILL.md +0 -0
  49. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/test_admin_api.py +0 -0
  50. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/test_admin_cli.py +0 -0
  51. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/test_admin_service.py +0 -0
  52. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/test_agent_cli.py +0 -0
  53. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/test_coding_agents.py +0 -0
  54. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/test_executor.py +0 -0
  55. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/test_init_cli.py +0 -0
  56. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/test_memory_index.py +0 -0
  57. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/test_setup_wizard.py +0 -0
  58. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/test_start_cli.py +0 -0
  59. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee/workflow_graph.py +0 -0
  60. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_admin/__init__.py +0 -0
  61. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_admin/codee_admin.py +0 -0
  62. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_abstract/__init__.py +0 -0
  63. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_abstract/provider.py +0 -0
  64. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_claude_code/__init__.py +0 -0
  65. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_claude_code/account.py +0 -0
  66. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_claude_code/credentials.py +0 -0
  67. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_claude_code/oauth.py +0 -0
  68. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_claude_code/provider.py +0 -0
  69. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_claude_code/test.py +0 -0
  70. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_claude_code/usage.py +0 -0
  71. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_codex/__init__.py +0 -0
  72. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_codex/provider.py +0 -0
  73. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_codex/test.py +0 -0
  74. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_github_copilot/__init__.py +0 -0
  75. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_github_copilot/provider.py +0 -0
  76. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_github_copilot/test.py +0 -0
  77. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_opencode/__init__.py +0 -0
  78. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_opencode/provider.py +0 -0
  79. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_agent_opencode/test.py +0 -0
  80. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_database/__init__.py +0 -0
  81. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_database/claude_code_accounts.py +0 -0
  82. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_database/database.py +0 -0
  83. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_database/oauth_tokens.py +0 -0
  84. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_main_context/__init__.py +0 -0
  85. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_main_context/context.py +0 -0
  86. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_main_context/logging.py +0 -0
  87. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_main_context/test_context.py +0 -0
  88. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_main_context/test_logging.py +0 -0
  89. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_tasks_abstract/__init__.py +0 -0
  90. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_tasks_abstract/provider.py +0 -0
  91. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_tasks_azure_devops/__init__.py +0 -0
  92. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_tasks_azure_devops/oauth.py +0 -0
  93. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_tasks_azure_devops/provider.py +0 -0
  94. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_tasks_azure_devops/test.py +0 -0
  95. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_tasks_jira/__init__.py +0 -0
  96. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_tasks_jira/provider.py +0 -0
  97. {codee_agent-0.7.4 → codee_agent-0.7.5}/src/codee_tasks_jira/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codee-agent
3
- Version: 0.7.4
3
+ Version: 0.7.5
4
4
  Summary: A virtual co-worker that picks up Jira and Azure DevOps tasks and solves them with coding agents.
5
5
  Keywords: ai,agent,jira,azure-devops,claude-code,github-copilot,codex,opencode,automation
6
6
  Author: Denis Kibalko
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "codee-agent"
3
- version = "0.7.4"
3
+ version = "0.7.5"
4
4
  description = "A virtual co-worker that picks up Jira and Azure DevOps tasks and solves them with coding agents."
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -785,8 +785,13 @@ class AdminState(rx.State):
785
785
  self.last_24h_runs = dashboard["counts"]["last_24h"]
786
786
  self.hourly_runs = dashboard["hourly"]
787
787
 
788
- def toggle_pause(self) -> None:
788
+ def toggle_pause(self) -> Any:
789
789
  self.paused = SERVICE.set_paused(not self.paused)
790
+ if self.paused:
791
+ message = "New agents won't be spawned."
792
+ if self.active_jobs:
793
+ message += " Currently running agents will continue until completion."
794
+ return rx.toast.info(message)
790
795
 
791
796
  @rx.event(background=True)
792
797
  async def poll_dashboard(self) -> None:
@@ -0,0 +1,41 @@
1
+ """Dashboard UI event tests."""
2
+
3
+ from types import SimpleNamespace
4
+ from unittest.mock import patch
5
+
6
+ from codee.admin import AdminState
7
+
8
+
9
+ def test_pause_with_running_agents_explains_they_will_finish() -> None:
10
+ state = SimpleNamespace(paused=False, active_jobs=[object()])
11
+ with patch("codee.admin.SERVICE.set_paused", return_value=True) as set_paused, \
12
+ patch("codee.admin.rx.toast.info") as toast:
13
+ result = AdminState.toggle_pause.fn(state)
14
+
15
+ set_paused.assert_called_once_with(True)
16
+ toast.assert_called_once_with(
17
+ "New agents won't be spawned. Currently running agents will continue until completion."
18
+ )
19
+ assert result is toast.return_value
20
+ assert state.paused is True
21
+
22
+
23
+ def test_pause_without_running_agents_only_mentions_new_work() -> None:
24
+ state = SimpleNamespace(paused=False, active_jobs=[])
25
+ with patch("codee.admin.SERVICE.set_paused", return_value=True), \
26
+ patch("codee.admin.rx.toast.info") as toast:
27
+ AdminState.toggle_pause.fn(state)
28
+
29
+ toast.assert_called_once_with("New agents won't be spawned.")
30
+
31
+
32
+ def test_unpause_does_not_show_pause_toast() -> None:
33
+ state = SimpleNamespace(paused=True, active_jobs=[object()])
34
+ with patch("codee.admin.SERVICE.set_paused", return_value=False) as set_paused, \
35
+ patch("codee.admin.rx.toast.info") as toast:
36
+ result = AdminState.toggle_pause.fn(state)
37
+
38
+ set_paused.assert_called_once_with(False)
39
+ toast.assert_not_called()
40
+ assert result is None
41
+ assert state.paused is False
File without changes
File without changes