anygarden 0.7.1__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.
- anygarden-0.7.1/.gitignore +21 -0
- anygarden-0.7.1/CHANGELOG.md +631 -0
- anygarden-0.7.1/LICENSE +201 -0
- anygarden-0.7.1/Makefile +38 -0
- anygarden-0.7.1/PKG-INFO +73 -0
- anygarden-0.7.1/README.md +39 -0
- anygarden-0.7.1/alembic.ini +36 -0
- anygarden-0.7.1/docs/api.md +54 -0
- anygarden-0.7.1/docs/architecture.md +103 -0
- anygarden-0.7.1/docs/deployment.md +73 -0
- anygarden-0.7.1/doorae/__init__.py +3 -0
- anygarden-0.7.1/doorae/__main__.py +6 -0
- anygarden-0.7.1/doorae/agent_files.py +113 -0
- anygarden-0.7.1/doorae/api/__init__.py +1 -0
- anygarden-0.7.1/doorae/api/v1/__init__.py +1 -0
- anygarden-0.7.1/doorae/api/v1/agents.py +1277 -0
- anygarden-0.7.1/doorae/api/v1/goals.py +378 -0
- anygarden-0.7.1/doorae/api/v1/graph.py +712 -0
- anygarden-0.7.1/doorae/api/v1/invites.py +341 -0
- anygarden-0.7.1/doorae/api/v1/llm_gateway.py +695 -0
- anygarden-0.7.1/doorae/api/v1/machines.py +477 -0
- anygarden-0.7.1/doorae/api/v1/mcp_templates.py +441 -0
- anygarden-0.7.1/doorae/api/v1/projects.py +150 -0
- anygarden-0.7.1/doorae/api/v1/saved.py +140 -0
- anygarden-0.7.1/doorae/api/v1/search.py +101 -0
- anygarden-0.7.1/doorae/api/v1/skills.py +723 -0
- anygarden-0.7.1/doorae/api/v1/tasks.py +426 -0
- anygarden-0.7.1/doorae/app.py +777 -0
- anygarden-0.7.1/doorae/auth/__init__.py +1 -0
- anygarden-0.7.1/doorae/auth/dependencies.py +196 -0
- anygarden-0.7.1/doorae/auth/invite_token.py +51 -0
- anygarden-0.7.1/doorae/auth/jwt.py +154 -0
- anygarden-0.7.1/doorae/auth/machine_token.py +36 -0
- anygarden-0.7.1/doorae/auth/password.py +21 -0
- anygarden-0.7.1/doorae/auth/routes.py +351 -0
- anygarden-0.7.1/doorae/auth/token.py +40 -0
- anygarden-0.7.1/doorae/cli.py +145 -0
- anygarden-0.7.1/doorae/config.py +130 -0
- anygarden-0.7.1/doorae/db/__init__.py +1 -0
- anygarden-0.7.1/doorae/db/engine.py +38 -0
- anygarden-0.7.1/doorae/db/migrations/env.py +82 -0
- anygarden-0.7.1/doorae/db/migrations/versions/001_initial.py +156 -0
- anygarden-0.7.1/doorae/db/migrations/versions/002_machine_scheduling.py +102 -0
- anygarden-0.7.1/doorae/db/migrations/versions/003_agent_token.py +38 -0
- anygarden-0.7.1/doorae/db/migrations/versions/004_nullable_message_participant.py +150 -0
- anygarden-0.7.1/doorae/db/migrations/versions/005_agent_files_and_agents_md.py +66 -0
- anygarden-0.7.1/doorae/db/migrations/versions/006_room_description.py +29 -0
- anygarden-0.7.1/doorae/db/migrations/versions/007_reasoning_effort.py +28 -0
- anygarden-0.7.1/doorae/db/migrations/versions/008_saved_activity_tasks_fts.py +94 -0
- anygarden-0.7.1/doorae/db/migrations/versions/009_agent_generation_restart.py +30 -0
- anygarden-0.7.1/doorae/db/migrations/versions/010_room_representative.py +29 -0
- anygarden-0.7.1/doorae/db/migrations/versions/011_machine_activity_logs.py +37 -0
- anygarden-0.7.1/doorae/db/migrations/versions/012_agent_model.py +27 -0
- anygarden-0.7.1/doorae/db/migrations/versions/013_guest_users.py +223 -0
- anygarden-0.7.1/doorae/db/migrations/versions/014_room_invite_links.py +75 -0
- anygarden-0.7.1/doorae/db/migrations/versions/015_participant_pin_order.py +65 -0
- anygarden-0.7.1/doorae/db/migrations/versions/016_agent_runtime.py +52 -0
- anygarden-0.7.1/doorae/db/migrations/versions/017_agent_avatar.py +52 -0
- anygarden-0.7.1/doorae/db/migrations/versions/018_skill_library.py +115 -0
- anygarden-0.7.1/doorae/db/migrations/versions/019_mcp_templates.py +135 -0
- anygarden-0.7.1/doorae/db/migrations/versions/020_skill_approve_and_audit.py +179 -0
- anygarden-0.7.1/doorae/db/migrations/versions/021_agent_authored_skills.py +84 -0
- anygarden-0.7.1/doorae/db/migrations/versions/022_room_context_window.py +57 -0
- anygarden-0.7.1/doorae/db/migrations/versions/023_agent_context_opt_out.py +50 -0
- anygarden-0.7.1/doorae/db/migrations/versions/024_room_speaker_strategy.py +92 -0
- anygarden-0.7.1/doorae/db/migrations/versions/025_dm_room_project_nullable.py +68 -0
- anygarden-0.7.1/doorae/db/migrations/versions/026_llm_gateway.py +125 -0
- anygarden-0.7.1/doorae/db/migrations/versions/027_activity_logs_request_id.py +49 -0
- anygarden-0.7.1/doorae/db/migrations/versions/028_room_context_window_default_true.py +57 -0
- anygarden-0.7.1/doorae/db/migrations/versions/029_room_ephemeral.py +48 -0
- anygarden-0.7.1/doorae/db/migrations/versions/030_agent_memory_md.py +44 -0
- anygarden-0.7.1/doorae/db/migrations/versions/031_room_shared_files.py +72 -0
- anygarden-0.7.1/doorae/db/migrations/versions/032_tasks_assignee_index_and_human_assignment.py +54 -0
- anygarden-0.7.1/doorae/db/migrations/versions/033_agent_description.py +41 -0
- anygarden-0.7.1/doorae/db/migrations/versions/034_agent_collaboration_mode.py +46 -0
- anygarden-0.7.1/doorae/db/migrations/versions/035_drop_dead_engine_values.py +59 -0
- anygarden-0.7.1/doorae/db/migrations/versions/036_room_artifacts.py +75 -0
- anygarden-0.7.1/doorae/db/migrations/versions/037_agent_goals_and_task_extension.py +213 -0
- anygarden-0.7.1/doorae/db/migrations/versions/038_agent_permission_level.py +41 -0
- anygarden-0.7.1/doorae/db/migrations/versions/039_task_assigned_at.py +66 -0
- anygarden-0.7.1/doorae/db/migrations/versions/040_participant_last_read.py +33 -0
- anygarden-0.7.1/doorae/db/models.py +1326 -0
- anygarden-0.7.1/doorae/db/repository.py +74 -0
- anygarden-0.7.1/doorae/db/types.py +60 -0
- anygarden-0.7.1/doorae/dependencies.py +70 -0
- anygarden-0.7.1/doorae/engines/__init__.py +19 -0
- anygarden-0.7.1/doorae/engines/catalog.py +369 -0
- anygarden-0.7.1/doorae/goals/__init__.py +38 -0
- anygarden-0.7.1/doorae/goals/executor.py +230 -0
- anygarden-0.7.1/doorae/goals/policy.py +209 -0
- anygarden-0.7.1/doorae/goals/scheduler.py +185 -0
- anygarden-0.7.1/doorae/goals/sweeper.py +127 -0
- anygarden-0.7.1/doorae/guest/__init__.py +5 -0
- anygarden-0.7.1/doorae/guest/anonymize.py +170 -0
- anygarden-0.7.1/doorae/llm_gateway/__init__.py +39 -0
- anygarden-0.7.1/doorae/llm_gateway/bootstrap.py +262 -0
- anygarden-0.7.1/doorae/llm_gateway/config_writer.py +138 -0
- anygarden-0.7.1/doorae/llm_gateway/reverse_proxy.py +302 -0
- anygarden-0.7.1/doorae/llm_gateway/supervisor.py +440 -0
- anygarden-0.7.1/doorae/llm_gateway/usage_logger.py +94 -0
- anygarden-0.7.1/doorae/mcp/__init__.py +24 -0
- anygarden-0.7.1/doorae/mcp/auth.py +43 -0
- anygarden-0.7.1/doorae/mcp/router.py +281 -0
- anygarden-0.7.1/doorae/mcp/tools.py +543 -0
- anygarden-0.7.1/doorae/mcp_templates/__init__.py +45 -0
- anygarden-0.7.1/doorae/mcp_templates/builtin.py +178 -0
- anygarden-0.7.1/doorae/mcp_templates/encryption.py +131 -0
- anygarden-0.7.1/doorae/mcp_templates/merge.py +312 -0
- anygarden-0.7.1/doorae/mcp_templates/service.py +545 -0
- anygarden-0.7.1/doorae/messages/__init__.py +1 -0
- anygarden-0.7.1/doorae/messages/references.py +104 -0
- anygarden-0.7.1/doorae/messages/router.py +62 -0
- anygarden-0.7.1/doorae/messages/service.py +230 -0
- anygarden-0.7.1/doorae/observability/__init__.py +1 -0
- anygarden-0.7.1/doorae/observability/logging.py +24 -0
- anygarden-0.7.1/doorae/observability/metrics.py +99 -0
- anygarden-0.7.1/doorae/orchestration/__init__.py +1 -0
- anygarden-0.7.1/doorae/orchestration/rules.py +313 -0
- anygarden-0.7.1/doorae/presence/__init__.py +10 -0
- anygarden-0.7.1/doorae/presence/service.py +273 -0
- anygarden-0.7.1/doorae/rooms/__init__.py +1 -0
- anygarden-0.7.1/doorae/rooms/artifact_storage.py +125 -0
- anygarden-0.7.1/doorae/rooms/artifacts.py +271 -0
- anygarden-0.7.1/doorae/rooms/file_storage.py +165 -0
- anygarden-0.7.1/doorae/rooms/membership.py +231 -0
- anygarden-0.7.1/doorae/rooms/router.py +1630 -0
- anygarden-0.7.1/doorae/rooms/service.py +272 -0
- anygarden-0.7.1/doorae/rooms/shared_files.py +324 -0
- anygarden-0.7.1/doorae/rooms/token_stats.py +205 -0
- anygarden-0.7.1/doorae/rooms/unread.py +100 -0
- anygarden-0.7.1/doorae/routing/__init__.py +56 -0
- anygarden-0.7.1/doorae/routing/protocol.py +201 -0
- anygarden-0.7.1/doorae/routing/router.py +365 -0
- anygarden-0.7.1/doorae/scheduler/__init__.py +1 -0
- anygarden-0.7.1/doorae/scheduler/gateway_secrets.py +111 -0
- anygarden-0.7.1/doorae/scheduler/lifecycle.py +936 -0
- anygarden-0.7.1/doorae/scheduler/machine_bus.py +71 -0
- anygarden-0.7.1/doorae/scheduler/placement.py +88 -0
- anygarden-0.7.1/doorae/skills_library/__init__.py +1 -0
- anygarden-0.7.1/doorae/skills_library/github_fetcher.py +345 -0
- anygarden-0.7.1/doorae/skills_library/search.py +126 -0
- anygarden-0.7.1/doorae/skills_library/service.py +1065 -0
- anygarden-0.7.1/doorae/ws/__init__.py +1 -0
- anygarden-0.7.1/doorae/ws/handler.py +1327 -0
- anygarden-0.7.1/doorae/ws/machine_handler.py +267 -0
- anygarden-0.7.1/doorae/ws/manager.py +287 -0
- anygarden-0.7.1/doorae/ws/protocol.py +350 -0
- anygarden-0.7.1/frontend/index.html +18 -0
- anygarden-0.7.1/frontend/package-lock.json +7559 -0
- anygarden-0.7.1/frontend/package.json +53 -0
- anygarden-0.7.1/frontend/src/App.tsx +110 -0
- anygarden-0.7.1/frontend/src/components/AdminMCPTemplates.tsx +1007 -0
- anygarden-0.7.1/frontend/src/components/AdminMachines.tsx +995 -0
- anygarden-0.7.1/frontend/src/components/AdminSkills.tsx +923 -0
- anygarden-0.7.1/frontend/src/components/AgentRoomsDialog.tsx +54 -0
- anygarden-0.7.1/frontend/src/components/AgentSettingsDialog.test.tsx +219 -0
- anygarden-0.7.1/frontend/src/components/AgentSettingsDialog.tsx +261 -0
- anygarden-0.7.1/frontend/src/components/AgentSettingsMenu.test.tsx +168 -0
- anygarden-0.7.1/frontend/src/components/AgentSettingsMenu.tsx +192 -0
- anygarden-0.7.1/frontend/src/components/BrailleSpinner.tsx +22 -0
- anygarden-0.7.1/frontend/src/components/ChatArea.tsx +304 -0
- anygarden-0.7.1/frontend/src/components/CreateRoomDialog.tsx +82 -0
- anygarden-0.7.1/frontend/src/components/CreateSubRoomDialog.tsx +279 -0
- anygarden-0.7.1/frontend/src/components/EngineGlyph.test.tsx +108 -0
- anygarden-0.7.1/frontend/src/components/EngineGlyph.tsx +51 -0
- anygarden-0.7.1/frontend/src/components/EntityAvatar.test.tsx +210 -0
- anygarden-0.7.1/frontend/src/components/EntityAvatar.tsx +192 -0
- anygarden-0.7.1/frontend/src/components/HandoffMessageCard.test.tsx +143 -0
- anygarden-0.7.1/frontend/src/components/HandoffMessageCard.tsx +149 -0
- anygarden-0.7.1/frontend/src/components/LoginForm.tsx +123 -0
- anygarden-0.7.1/frontend/src/components/ManageRoomAgentsDialog.tsx +211 -0
- anygarden-0.7.1/frontend/src/components/MarkdownContent.test.tsx +166 -0
- anygarden-0.7.1/frontend/src/components/MarkdownContent.tsx +234 -0
- anygarden-0.7.1/frontend/src/components/MentionPopover.tsx +90 -0
- anygarden-0.7.1/frontend/src/components/MessageBubble.test.tsx +575 -0
- anygarden-0.7.1/frontend/src/components/MessageBubble.tsx +450 -0
- anygarden-0.7.1/frontend/src/components/MessageInput.test.tsx +76 -0
- anygarden-0.7.1/frontend/src/components/MessageInput.tsx +462 -0
- anygarden-0.7.1/frontend/src/components/ParticipantListPopover.tsx +228 -0
- anygarden-0.7.1/frontend/src/components/PresenceDot.tsx +107 -0
- anygarden-0.7.1/frontend/src/components/RightContextRail.tsx +119 -0
- anygarden-0.7.1/frontend/src/components/RoomArtifactsDialog.tsx +227 -0
- anygarden-0.7.1/frontend/src/components/RoomEditDialog.test.tsx +190 -0
- anygarden-0.7.1/frontend/src/components/RoomEditDialog.tsx +443 -0
- anygarden-0.7.1/frontend/src/components/RoomHeader.test.tsx +134 -0
- anygarden-0.7.1/frontend/src/components/RoomHeader.tsx +307 -0
- anygarden-0.7.1/frontend/src/components/RoomInviteDialog.tsx +326 -0
- anygarden-0.7.1/frontend/src/components/RoomQueryBanner.test.tsx +150 -0
- anygarden-0.7.1/frontend/src/components/RoomQueryBanner.tsx +196 -0
- anygarden-0.7.1/frontend/src/components/RoomQueryResultCard.test.tsx +172 -0
- anygarden-0.7.1/frontend/src/components/RoomQueryResultCard.tsx +179 -0
- anygarden-0.7.1/frontend/src/components/RoomSettingsMenu.tsx +225 -0
- anygarden-0.7.1/frontend/src/components/RoomSharedFilesDialog.tsx +115 -0
- anygarden-0.7.1/frontend/src/components/SearchDialog.tsx +102 -0
- anygarden-0.7.1/frontend/src/components/Sidebar.test.tsx +317 -0
- anygarden-0.7.1/frontend/src/components/Sidebar.tsx +1428 -0
- anygarden-0.7.1/frontend/src/components/SidebarExpandButton.test.tsx +56 -0
- anygarden-0.7.1/frontend/src/components/SidebarExpandButton.tsx +28 -0
- anygarden-0.7.1/frontend/src/components/SidebarProjectMenu.tsx +105 -0
- anygarden-0.7.1/frontend/src/components/SidebarRoomMenu.tsx +128 -0
- anygarden-0.7.1/frontend/src/components/TaskAssignmentCard.tsx +53 -0
- anygarden-0.7.1/frontend/src/components/TaskPanel.tsx +286 -0
- anygarden-0.7.1/frontend/src/components/TypingIndicator.tsx +41 -0
- anygarden-0.7.1/frontend/src/components/UpdateDot.tsx +14 -0
- anygarden-0.7.1/frontend/src/components/admin-llm-gateway/ModelDialog.tsx +275 -0
- anygarden-0.7.1/frontend/src/components/admin-llm-gateway/ModelsSection.tsx +237 -0
- anygarden-0.7.1/frontend/src/components/admin-llm-gateway/SecondarySidebar.tsx +191 -0
- anygarden-0.7.1/frontend/src/components/admin-llm-gateway/SecretDialog.tsx +117 -0
- anygarden-0.7.1/frontend/src/components/admin-llm-gateway/SecretsSection.tsx +199 -0
- anygarden-0.7.1/frontend/src/components/admin-llm-gateway/StatusSection.tsx +201 -0
- anygarden-0.7.1/frontend/src/components/admin-llm-gateway/UsageSection.tsx +200 -0
- anygarden-0.7.1/frontend/src/components/agent-settings/ActivityPanel.test.ts +130 -0
- anygarden-0.7.1/frontend/src/components/agent-settings/ActivityPanel.tsx +283 -0
- anygarden-0.7.1/frontend/src/components/agent-settings/AvatarPickerPanel.test.tsx +117 -0
- anygarden-0.7.1/frontend/src/components/agent-settings/AvatarPickerPanel.tsx +225 -0
- anygarden-0.7.1/frontend/src/components/agent-settings/GoalsPanel.tsx +168 -0
- anygarden-0.7.1/frontend/src/components/agent-settings/ManifestPanel.test.tsx +570 -0
- anygarden-0.7.1/frontend/src/components/agent-settings/ManifestPanel.tsx +1420 -0
- anygarden-0.7.1/frontend/src/components/agent-settings/OverviewPanel.test.tsx +349 -0
- anygarden-0.7.1/frontend/src/components/agent-settings/OverviewPanel.tsx +623 -0
- anygarden-0.7.1/frontend/src/components/agent-settings/RoomsPanel.tsx +157 -0
- anygarden-0.7.1/frontend/src/components/agent-settings/TasksPanel.test.ts +97 -0
- anygarden-0.7.1/frontend/src/components/agent-settings/TasksPanel.tsx +384 -0
- anygarden-0.7.1/frontend/src/components/goal-form/GoalForm.tsx +286 -0
- anygarden-0.7.1/frontend/src/components/right-rail/FilesSection.tsx +123 -0
- anygarden-0.7.1/frontend/src/components/right-rail/GoalsSection.tsx +236 -0
- anygarden-0.7.1/frontend/src/components/right-rail/RightRailToggle.tsx +55 -0
- anygarden-0.7.1/frontend/src/components/right-rail/TasksSection.test.tsx +141 -0
- anygarden-0.7.1/frontend/src/components/right-rail/TasksSection.tsx +397 -0
- anygarden-0.7.1/frontend/src/components/topology/DetailPanel.tsx +219 -0
- anygarden-0.7.1/frontend/src/components/topology/FilterPanel.tsx +258 -0
- anygarden-0.7.1/frontend/src/components/topology/TopologyCanvas.tsx +341 -0
- anygarden-0.7.1/frontend/src/components/topology/constants.ts +109 -0
- anygarden-0.7.1/frontend/src/components/topology/edges/RelationEdge.tsx +78 -0
- anygarden-0.7.1/frontend/src/components/topology/nodes/AgentNode.css +104 -0
- anygarden-0.7.1/frontend/src/components/topology/nodes/AgentNode.test.tsx +146 -0
- anygarden-0.7.1/frontend/src/components/topology/nodes/AgentNode.tsx +98 -0
- anygarden-0.7.1/frontend/src/components/topology/nodes/MachineNode.tsx +102 -0
- anygarden-0.7.1/frontend/src/components/topology/nodes/ProjectGroup.tsx +48 -0
- anygarden-0.7.1/frontend/src/components/topology/nodes/RoomNode.css +42 -0
- anygarden-0.7.1/frontend/src/components/topology/nodes/RoomNode.test.tsx +98 -0
- anygarden-0.7.1/frontend/src/components/topology/nodes/RoomNode.tsx +118 -0
- anygarden-0.7.1/frontend/src/components/topology/nodes/UserNode.tsx +82 -0
- anygarden-0.7.1/frontend/src/components/topology/topology.css +26 -0
- anygarden-0.7.1/frontend/src/components/topology/types.ts +98 -0
- anygarden-0.7.1/frontend/src/components/topology/useGraphData.test.ts +264 -0
- anygarden-0.7.1/frontend/src/components/topology/useGraphData.ts +178 -0
- anygarden-0.7.1/frontend/src/components/topology/useGraphLayout.ts +160 -0
- anygarden-0.7.1/frontend/src/components/topology/useTopologyLayoutOverrides.test.ts +99 -0
- anygarden-0.7.1/frontend/src/components/topology/useTopologyLayoutOverrides.ts +106 -0
- anygarden-0.7.1/frontend/src/components/ui/avatar.tsx +44 -0
- anygarden-0.7.1/frontend/src/components/ui/badge.tsx +34 -0
- anygarden-0.7.1/frontend/src/components/ui/button.tsx +58 -0
- anygarden-0.7.1/frontend/src/components/ui/card.tsx +61 -0
- anygarden-0.7.1/frontend/src/components/ui/chat/chat-bubble.tsx +109 -0
- anygarden-0.7.1/frontend/src/components/ui/chat/chat-input.tsx +22 -0
- anygarden-0.7.1/frontend/src/components/ui/chat/chat-message-list.tsx +46 -0
- anygarden-0.7.1/frontend/src/components/ui/chat/hooks/useAutoScroll.tsx +106 -0
- anygarden-0.7.1/frontend/src/components/ui/chat/index.ts +4 -0
- anygarden-0.7.1/frontend/src/components/ui/chat/message-loading.tsx +44 -0
- anygarden-0.7.1/frontend/src/components/ui/dialog.tsx +87 -0
- anygarden-0.7.1/frontend/src/components/ui/input.tsx +21 -0
- anygarden-0.7.1/frontend/src/components/ui/label.tsx +20 -0
- anygarden-0.7.1/frontend/src/components/ui/scroll-area.test.tsx +35 -0
- anygarden-0.7.1/frontend/src/components/ui/scroll-area.tsx +57 -0
- anygarden-0.7.1/frontend/src/components/ui/separator.tsx +23 -0
- anygarden-0.7.1/frontend/src/components/ui/table.tsx +99 -0
- anygarden-0.7.1/frontend/src/components/ui/tabs.tsx +52 -0
- anygarden-0.7.1/frontend/src/hooks/useAgentGoals.ts +86 -0
- anygarden-0.7.1/frontend/src/hooks/useAgents.ts +405 -0
- anygarden-0.7.1/frontend/src/hooks/useAuth.test.tsx +96 -0
- anygarden-0.7.1/frontend/src/hooks/useAuth.ts +73 -0
- anygarden-0.7.1/frontend/src/hooks/useLLMGateway.ts +382 -0
- anygarden-0.7.1/frontend/src/hooks/useMachines.ts +190 -0
- anygarden-0.7.1/frontend/src/hooks/useParticipantPresence.test.ts +66 -0
- anygarden-0.7.1/frontend/src/hooks/useParticipantPresence.ts +107 -0
- anygarden-0.7.1/frontend/src/hooks/useRightRailNotice.test.ts +77 -0
- anygarden-0.7.1/frontend/src/hooks/useRightRailNotice.ts +45 -0
- anygarden-0.7.1/frontend/src/hooks/useRightSidebarLayout.test.ts +125 -0
- anygarden-0.7.1/frontend/src/hooks/useRightSidebarLayout.ts +88 -0
- anygarden-0.7.1/frontend/src/hooks/useRoomFiles.test.ts +81 -0
- anygarden-0.7.1/frontend/src/hooks/useRoomFiles.ts +85 -0
- anygarden-0.7.1/frontend/src/hooks/useRoomGoals.ts +95 -0
- anygarden-0.7.1/frontend/src/hooks/useRoomTasks.test.ts +123 -0
- anygarden-0.7.1/frontend/src/hooks/useRoomTasks.ts +172 -0
- anygarden-0.7.1/frontend/src/hooks/useRooms.ts +673 -0
- anygarden-0.7.1/frontend/src/hooks/useSidebarLayout.test.ts +76 -0
- anygarden-0.7.1/frontend/src/hooks/useSidebarLayout.ts +81 -0
- anygarden-0.7.1/frontend/src/hooks/useWebSocket.test.tsx +131 -0
- anygarden-0.7.1/frontend/src/hooks/useWebSocket.ts +238 -0
- anygarden-0.7.1/frontend/src/index.css +459 -0
- anygarden-0.7.1/frontend/src/lib/agent-liveness.test.ts +66 -0
- anygarden-0.7.1/frontend/src/lib/agent-liveness.ts +55 -0
- anygarden-0.7.1/frontend/src/lib/api.ts +13 -0
- anygarden-0.7.1/frontend/src/lib/authStorage.test.ts +91 -0
- anygarden-0.7.1/frontend/src/lib/authStorage.ts +62 -0
- anygarden-0.7.1/frontend/src/lib/avatar-options.ts +117 -0
- anygarden-0.7.1/frontend/src/lib/avatar.test.ts +67 -0
- anygarden-0.7.1/frontend/src/lib/avatar.ts +128 -0
- anygarden-0.7.1/frontend/src/lib/datetime.test.ts +34 -0
- anygarden-0.7.1/frontend/src/lib/datetime.ts +24 -0
- anygarden-0.7.1/frontend/src/lib/fileReferences.test.ts +176 -0
- anygarden-0.7.1/frontend/src/lib/fileReferences.ts +185 -0
- anygarden-0.7.1/frontend/src/lib/goals.ts +137 -0
- anygarden-0.7.1/frontend/src/lib/handoff.test.ts +167 -0
- anygarden-0.7.1/frontend/src/lib/handoff.ts +166 -0
- anygarden-0.7.1/frontend/src/lib/mcpTemplateForm.test.ts +272 -0
- anygarden-0.7.1/frontend/src/lib/mcpTemplateForm.ts +183 -0
- anygarden-0.7.1/frontend/src/lib/mentions.test.ts +80 -0
- anygarden-0.7.1/frontend/src/lib/mentions.ts +71 -0
- anygarden-0.7.1/frontend/src/lib/pending-queries.test.ts +297 -0
- anygarden-0.7.1/frontend/src/lib/pending-queries.ts +154 -0
- anygarden-0.7.1/frontend/src/lib/room-query.test.ts +276 -0
- anygarden-0.7.1/frontend/src/lib/room-query.ts +180 -0
- anygarden-0.7.1/frontend/src/lib/roomArtifacts.ts +77 -0
- anygarden-0.7.1/frontend/src/lib/roomFiles.ts +69 -0
- anygarden-0.7.1/frontend/src/lib/routing.ts +46 -0
- anygarden-0.7.1/frontend/src/lib/slashCommands.test.ts +76 -0
- anygarden-0.7.1/frontend/src/lib/slashCommands.ts +84 -0
- anygarden-0.7.1/frontend/src/lib/taskAssignment.test.ts +87 -0
- anygarden-0.7.1/frontend/src/lib/taskAssignment.ts +52 -0
- anygarden-0.7.1/frontend/src/lib/utils.ts +6 -0
- anygarden-0.7.1/frontend/src/main.tsx +8 -0
- anygarden-0.7.1/frontend/src/pages/AdminLLMGatewayPage.tsx +130 -0
- anygarden-0.7.1/frontend/src/pages/AdminMCPTemplatesPage.tsx +34 -0
- anygarden-0.7.1/frontend/src/pages/AdminMachinesPage.tsx +34 -0
- anygarden-0.7.1/frontend/src/pages/AdminSkillsPage.tsx +34 -0
- anygarden-0.7.1/frontend/src/pages/ChatPage.tsx +669 -0
- anygarden-0.7.1/frontend/src/pages/GuestInvitePage.tsx +116 -0
- anygarden-0.7.1/frontend/src/pages/GuestRoomPage.test.tsx +77 -0
- anygarden-0.7.1/frontend/src/pages/GuestRoomPage.tsx +229 -0
- anygarden-0.7.1/frontend/src/pages/LoginPage.tsx +27 -0
- anygarden-0.7.1/frontend/src/pages/TopologyPage.tsx +327 -0
- anygarden-0.7.1/frontend/src/vite-env.d.ts +1 -0
- anygarden-0.7.1/frontend/tsconfig.app.json +7 -0
- anygarden-0.7.1/frontend/tsconfig.json +23 -0
- anygarden-0.7.1/frontend/vite.config.ts +32 -0
- anygarden-0.7.1/pyproject.toml +77 -0
- anygarden-0.7.1/scripts/e2e_full_pipeline.py +344 -0
- anygarden-0.7.1/scripts/e2e_multiprocess.py +214 -0
- anygarden-0.7.1/scripts/e2e_real_chat.py +249 -0
- anygarden-0.7.1/tests/__init__.py +0 -0
- anygarden-0.7.1/tests/conftest.py +66 -0
- anygarden-0.7.1/tests/test_agent_files_validation.py +116 -0
- anygarden-0.7.1/tests/test_agent_tasks_aggregation.py +307 -0
- anygarden-0.7.1/tests/test_agents_api.py +1934 -0
- anygarden-0.7.1/tests/test_auth.py +116 -0
- anygarden-0.7.1/tests/test_auth_routes.py +160 -0
- anygarden-0.7.1/tests/test_cli_env.py +109 -0
- anygarden-0.7.1/tests/test_collaboration_mode.py +335 -0
- anygarden-0.7.1/tests/test_config.py +122 -0
- anygarden-0.7.1/tests/test_create_task_tool.py +361 -0
- anygarden-0.7.1/tests/test_db_types.py +90 -0
- anygarden-0.7.1/tests/test_declarative_reconcile.py +265 -0
- anygarden-0.7.1/tests/test_e2e_materialize.py +302 -0
- anygarden-0.7.1/tests/test_e2e_real_conversation.py +230 -0
- anygarden-0.7.1/tests/test_e2e_scenario.py +391 -0
- anygarden-0.7.1/tests/test_engine_catalog.py +386 -0
- anygarden-0.7.1/tests/test_gateway_secrets_population.py +121 -0
- anygarden-0.7.1/tests/test_goals_policy.py +145 -0
- anygarden-0.7.1/tests/test_goals_scheduler.py +125 -0
- anygarden-0.7.1/tests/test_goals_sweeper.py +321 -0
- anygarden-0.7.1/tests/test_graph_api.py +607 -0
- anygarden-0.7.1/tests/test_guest_anonymize.py +197 -0
- anygarden-0.7.1/tests/test_guest_auth.py +534 -0
- anygarden-0.7.1/tests/test_guest_filtering.py +326 -0
- anygarden-0.7.1/tests/test_guest_ws.py +381 -0
- anygarden-0.7.1/tests/test_handoff_wiring.py +210 -0
- anygarden-0.7.1/tests/test_invites.py +514 -0
- anygarden-0.7.1/tests/test_lifecycle.py +874 -0
- anygarden-0.7.1/tests/test_lifecycle_engine_secrets.py +289 -0
- anygarden-0.7.1/tests/test_lifecycle_skills.py +251 -0
- anygarden-0.7.1/tests/test_llm_gateway_admin_api.py +592 -0
- anygarden-0.7.1/tests/test_llm_gateway_bootstrap.py +221 -0
- anygarden-0.7.1/tests/test_llm_gateway_config_writer.py +245 -0
- anygarden-0.7.1/tests/test_llm_gateway_reverse_proxy.py +427 -0
- anygarden-0.7.1/tests/test_llm_gateway_supervisor.py +298 -0
- anygarden-0.7.1/tests/test_llm_gateway_usage_logger.py +95 -0
- anygarden-0.7.1/tests/test_machine_handler.py +317 -0
- anygarden-0.7.1/tests/test_machine_token.py +40 -0
- anygarden-0.7.1/tests/test_machines_api.py +495 -0
- anygarden-0.7.1/tests/test_mark_task_status.py +262 -0
- anygarden-0.7.1/tests/test_mcp_secrets_persistence.py +166 -0
- anygarden-0.7.1/tests/test_mcp_server_create_skill.py +512 -0
- anygarden-0.7.1/tests/test_mcp_templates_builtin_seed.py +122 -0
- anygarden-0.7.1/tests/test_mcp_templates_crud.py +418 -0
- anygarden-0.7.1/tests/test_mcp_templates_encryption.py +66 -0
- anygarden-0.7.1/tests/test_mcp_templates_lifecycle.py +429 -0
- anygarden-0.7.1/tests/test_mcp_templates_merge.py +205 -0
- anygarden-0.7.1/tests/test_mcp_templates_self_default.py +164 -0
- anygarden-0.7.1/tests/test_membership.py +312 -0
- anygarden-0.7.1/tests/test_mention_parsing.py +44 -0
- anygarden-0.7.1/tests/test_messages.py +162 -0
- anygarden-0.7.1/tests/test_migrations.py +666 -0
- anygarden-0.7.1/tests/test_models.py +313 -0
- anygarden-0.7.1/tests/test_orchestration.py +183 -0
- anygarden-0.7.1/tests/test_orchestrator_fallback.py +296 -0
- anygarden-0.7.1/tests/test_placement.py +185 -0
- anygarden-0.7.1/tests/test_presence_service.py +190 -0
- anygarden-0.7.1/tests/test_projects.py +184 -0
- anygarden-0.7.1/tests/test_room_artifacts_model.py +281 -0
- anygarden-0.7.1/tests/test_room_artifacts_service.py +294 -0
- anygarden-0.7.1/tests/test_room_rep_invariant.py +369 -0
- anygarden-0.7.1/tests/test_room_token_stats.py +310 -0
- anygarden-0.7.1/tests/test_rooms.py +1791 -0
- anygarden-0.7.1/tests/test_rooms_artifacts_endpoints.py +233 -0
- anygarden-0.7.1/tests/test_rooms_file_storage.py +173 -0
- anygarden-0.7.1/tests/test_rooms_pin.py +374 -0
- anygarden-0.7.1/tests/test_rooms_shared_files.py +484 -0
- anygarden-0.7.1/tests/test_rooms_unread.py +274 -0
- anygarden-0.7.1/tests/test_routing_protocol.py +162 -0
- anygarden-0.7.1/tests/test_scheduler_sweeper.py +200 -0
- anygarden-0.7.1/tests/test_search_fts_iso.py +35 -0
- anygarden-0.7.1/tests/test_skill_library_agent_authored.py +312 -0
- anygarden-0.7.1/tests/test_skills_library_api.py +787 -0
- anygarden-0.7.1/tests/test_skills_library_github.py +218 -0
- anygarden-0.7.1/tests/test_skills_library_service.py +692 -0
- anygarden-0.7.1/tests/test_skills_library_stale_and_search.py +761 -0
- anygarden-0.7.1/tests/test_startup_openhands_reset.py +176 -0
- anygarden-0.7.1/tests/test_tasks_api.py +472 -0
- anygarden-0.7.1/tests/test_tasks_injection.py +279 -0
- anygarden-0.7.1/tests/test_ws_handler.py +1667 -0
- anygarden-0.7.1/tests/test_ws_handler_lifecycle.py +114 -0
- anygarden-0.7.1/tests/test_ws_manager_single_session.py +149 -0
- anygarden-0.7.1/tests/test_ws_task_fanout.py +143 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.py[cod]
|
|
3
|
+
*.egg-info/
|
|
4
|
+
dist/
|
|
5
|
+
build/
|
|
6
|
+
.venv/
|
|
7
|
+
.ruff_cache/
|
|
8
|
+
.pytest_cache/
|
|
9
|
+
.mypy_cache/
|
|
10
|
+
*.db
|
|
11
|
+
.env
|
|
12
|
+
|
|
13
|
+
# Vite build output (served by FastAPI)
|
|
14
|
+
doorae/static/
|
|
15
|
+
|
|
16
|
+
# Node
|
|
17
|
+
frontend/node_modules/
|
|
18
|
+
frontend/dist/
|
|
19
|
+
|
|
20
|
+
# Vite cache
|
|
21
|
+
.vite/
|
|
@@ -0,0 +1,631 @@
|
|
|
1
|
+
# CHANGELOG
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Unreleased
|
|
5
|
+
|
|
6
|
+
## v0.7.1 (2026-05-21)
|
|
7
|
+
|
|
8
|
+
### Release infrastructure
|
|
9
|
+
|
|
10
|
+
- **Renamed PyPI distribution** from `drhub` to `anygarden` — service
|
|
11
|
+
rebrand to anygarden. `drhub` 0.7.0 will be yanked after this
|
|
12
|
+
release publishes on PyPI. Python import path (`doorae`), CLI
|
|
13
|
+
command (`doorae-server`), source directory, and CHANGELOG history
|
|
14
|
+
unchanged.
|
|
15
|
+
|
|
16
|
+
## v0.7.0 (2026-05-20)
|
|
17
|
+
|
|
18
|
+
### Release infrastructure
|
|
19
|
+
|
|
20
|
+
- **Renamed PyPI distribution** from `doorae-cluster` to `drhub`
|
|
21
|
+
([#387](https://github.com/e7217/doorae/pull/387)). Python import
|
|
22
|
+
path, CLI command (`doorae-server`), source directory, and
|
|
23
|
+
CHANGELOG history unchanged.
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
- OpenHands V1 SDK migration Phases 0–6 — in-process Python agent
|
|
28
|
+
runtime alternative to CLI engines
|
|
29
|
+
([#355](https://github.com/e7217/doorae/pull/355),
|
|
30
|
+
[#356](https://github.com/e7217/doorae/pull/356)).
|
|
31
|
+
- Wire `engine_secrets` + gateway model merge for OpenHands Ollama
|
|
32
|
+
path ([#359](https://github.com/e7217/doorae/pull/359),
|
|
33
|
+
[#361](https://github.com/e7217/doorae/pull/361)).
|
|
34
|
+
- Mark `claude-code` engine deprecated; admin UI surfaces a
|
|
35
|
+
Deprecated badge with migration hint
|
|
36
|
+
([#382](https://github.com/e7217/doorae/pull/382),
|
|
37
|
+
[#388](https://github.com/e7217/doorae/pull/388)).
|
|
38
|
+
- Shared file references in chat — inline highlighting + sidebar
|
|
39
|
+
([#376](https://github.com/e7217/doorae/pull/376),
|
|
40
|
+
[#378](https://github.com/e7217/doorae/pull/378)).
|
|
41
|
+
- Sidebar unread update indicators
|
|
42
|
+
([#385](https://github.com/e7217/doorae/pull/385),
|
|
43
|
+
[#386](https://github.com/e7217/doorae/pull/386)).
|
|
44
|
+
- Expose machine online status on agent rows
|
|
45
|
+
([#383](https://github.com/e7217/doorae/pull/383),
|
|
46
|
+
[#384](https://github.com/e7217/doorae/pull/384)).
|
|
47
|
+
|
|
48
|
+
### Fixes
|
|
49
|
+
|
|
50
|
+
- **Orchestrator strategy: server-side fallback nominate** when
|
|
51
|
+
the moderator LLM omits handoff/mention tokens — round-robin
|
|
52
|
+
rotation prevents silent room stalls
|
|
53
|
+
([#389](https://github.com/e7217/doorae/pull/389)).
|
|
54
|
+
- Auto-reset OpenHands agents on cluster startup
|
|
55
|
+
([#379](https://github.com/e7217/doorae/pull/379),
|
|
56
|
+
[#380](https://github.com/e7217/doorae/pull/380)).
|
|
57
|
+
- OpenHands runtime tools registration, gateway provider rewrite,
|
|
58
|
+
detector visibility
|
|
59
|
+
([#377](https://github.com/e7217/doorae/pull/377)).
|
|
60
|
+
- Increase litellm health-probe timeout (10s → 30s)
|
|
61
|
+
([#362](https://github.com/e7217/doorae/pull/362),
|
|
62
|
+
[#363](https://github.com/e7217/doorae/pull/363)).
|
|
63
|
+
- Add `llm_gateway_binary` config knob to escape PATH-shadowed
|
|
64
|
+
bare `litellm` ([#364](https://github.com/e7217/doorae/pull/364),
|
|
65
|
+
[#365](https://github.com/e7217/doorae/pull/365)).
|
|
66
|
+
- Prevent stale auth token websocket reconnect loops
|
|
67
|
+
([#371](https://github.com/e7217/doorae/pull/371)).
|
|
68
|
+
- Cache `doorae_token` per-agent so `sync_batch` frame rebuilds
|
|
69
|
+
don't orphan it ([#369](https://github.com/e7217/doorae/pull/369),
|
|
70
|
+
[#370](https://github.com/e7217/doorae/pull/370)).
|
|
71
|
+
|
|
72
|
+
### Docs
|
|
73
|
+
|
|
74
|
+
- README overview + Mermaid "How It Works" diagram
|
|
75
|
+
([#381](https://github.com/e7217/doorae/pull/381)).
|
|
76
|
+
- Deep-research note documenting multi-agent turn-taking mediator
|
|
77
|
+
failure modes and mitigation roadmap
|
|
78
|
+
(`docs/research/2026-05-12-multi-agent-turn-taking-mediator-failure.md`).
|
|
79
|
+
|
|
80
|
+
## v0.6.0 (2026-05-06)
|
|
81
|
+
|
|
82
|
+
### Features — autonomous responsibility & Goals UI (#302)
|
|
83
|
+
|
|
84
|
+
- Right context rail — Tasks/Files sidebar 통합 (Phase 1)
|
|
85
|
+
([#306](https://github.com/e7217/doorae/pull/306)).
|
|
86
|
+
- Autonomous responsibility MVP — Goal scheduler + executor
|
|
87
|
+
(Phase 2) ([#307](https://github.com/e7217/doorae/pull/307)).
|
|
88
|
+
- Goals UI — right rail Responsibilities +
|
|
89
|
+
AgentSettingsDialog (Phase 3)
|
|
90
|
+
([#308](https://github.com/e7217/doorae/pull/308)).
|
|
91
|
+
|
|
92
|
+
### Features — per-agent permission level (#309)
|
|
93
|
+
|
|
94
|
+
- 3-tier permission model + codex sandbox dial (PR-A,
|
|
95
|
+
[#310](https://github.com/e7217/doorae/pull/310)).
|
|
96
|
+
- gemini + claude-code permission mappings + topology ⚠ + activity
|
|
97
|
+
surface (PR-B, [#311](https://github.com/e7217/doorae/pull/311)).
|
|
98
|
+
|
|
99
|
+
### Features — task auto-routing
|
|
100
|
+
|
|
101
|
+
- Auto-rep invariant + assignee picker in right rail
|
|
102
|
+
([#315](https://github.com/e7217/doorae/pull/315)).
|
|
103
|
+
- Batch auto-route unassigned tasks via room representative
|
|
104
|
+
([#316](https://github.com/e7217/doorae/pull/316)).
|
|
105
|
+
|
|
106
|
+
### Features — right rail polish (#329)
|
|
107
|
+
|
|
108
|
+
- Density polish — wider rail + unified assignee slot + split goals
|
|
109
|
+
meta ([#324](https://github.com/e7217/doorae/pull/324)).
|
|
110
|
+
- Viewport-driven default + width staging (Phase 1 of #329,
|
|
111
|
+
[#330](https://github.com/e7217/doorae/pull/330)).
|
|
112
|
+
- Stage agent message + file-chip widths (Phase 2 of #329,
|
|
113
|
+
[#331](https://github.com/e7217/doorae/pull/331)).
|
|
114
|
+
- Absorb search + artifacts entries into RoomHeader (Phase 3 of
|
|
115
|
+
#329, [#332](https://github.com/e7217/doorae/pull/332)).
|
|
116
|
+
- Hide header search below `sm` + add menu fallback (Phase 4 of
|
|
117
|
+
#329, [#333](https://github.com/e7217/doorae/pull/333)).
|
|
118
|
+
|
|
119
|
+
### Features — tasks UI
|
|
120
|
+
|
|
121
|
+
- `TasksPanel` 섹션 접기 + terminal 정리 + status 표시 누락 수정
|
|
122
|
+
([#322](https://github.com/e7217/doorae/pull/322)).
|
|
123
|
+
|
|
124
|
+
### Fixes
|
|
125
|
+
|
|
126
|
+
- Expose cluster MCP tools to all engines + status enum/UI parity
|
|
127
|
+
([#321](https://github.com/e7217/doorae/pull/321)).
|
|
128
|
+
- Renumber `038_task_assigned_at` → `039` to unbreak main
|
|
129
|
+
([#318](https://github.com/e7217/doorae/pull/318)).
|
|
130
|
+
- Broadcast scheduler-injected task assignments + add stuck task
|
|
131
|
+
sweeper ([#317](https://github.com/e7217/doorae/pull/317)).
|
|
132
|
+
- Align right rail row right-edge with section headers
|
|
133
|
+
([#326](https://github.com/e7217/doorae/pull/326)).
|
|
134
|
+
- Right rail hover text truncation — `appearance-none` + wider slot
|
|
135
|
+
+ opaque action backdrop
|
|
136
|
+
([#328](https://github.com/e7217/doorae/pull/328)).
|
|
137
|
+
- Contain right rail task row overflow
|
|
138
|
+
([#335](https://github.com/e7217/doorae/pull/335)).
|
|
139
|
+
- Contain right rail viewport overflow at the substrate
|
|
140
|
+
([#337](https://github.com/e7217/doorae/pull/337)).
|
|
141
|
+
- Bump task pickup timeout and harden status directive
|
|
142
|
+
([#339](https://github.com/e7217/doorae/pull/339)).
|
|
143
|
+
|
|
144
|
+
## v0.5.1 (2026-04-28)
|
|
145
|
+
|
|
146
|
+
### Workspace bump
|
|
147
|
+
|
|
148
|
+
- Workspace-consistent version bump alongside `doorae-machine` 0.5.1
|
|
149
|
+
(Windows `secure_chmod` `DELETE` rights fix). No functional changes
|
|
150
|
+
in cluster.
|
|
151
|
+
|
|
152
|
+
## v0.5.0 (2026-04-28)
|
|
153
|
+
|
|
154
|
+
### Features — Windows native support (#300)
|
|
155
|
+
|
|
156
|
+
- Consolidate POSIX-only `os.chmod` / `Path.chmod` call sites
|
|
157
|
+
(jwt_secret, mcp_secrets_key, litellm config) onto
|
|
158
|
+
`safefs.secure_chmod` so cluster runs natively on Windows 10/11
|
|
159
|
+
([#301](https://github.com/e7217/doorae/pull/301)). On Windows the
|
|
160
|
+
helper writes a DACL granting only the current process owner the
|
|
161
|
+
modeled rights, instead of `os.chmod`'s POSIX no-op.
|
|
162
|
+
|
|
163
|
+
## v0.4.1 (2026-04-28)
|
|
164
|
+
|
|
165
|
+
### Features — agent → room artifact pipeline (#290 Phase B)
|
|
166
|
+
|
|
167
|
+
- Agents emit artifacts that propagate into the originating room
|
|
168
|
+
([#296](https://github.com/e7217/doorae/pull/296)).
|
|
169
|
+
- Render ANSI escapes inside fenced code blocks
|
|
170
|
+
([#291](https://github.com/e7217/doorae/pull/291)).
|
|
171
|
+
|
|
172
|
+
### Features — tasks
|
|
173
|
+
|
|
174
|
+
- Agent auto-execution + dual room/agent views
|
|
175
|
+
([#268](https://github.com/e7217/doorae/pull/268)).
|
|
176
|
+
- Orchestrator `create_task` MCP tool
|
|
177
|
+
([#272](https://github.com/e7217/doorae/pull/272)).
|
|
178
|
+
- `/task` slash command in chat input
|
|
179
|
+
([#273](https://github.com/e7217/doorae/pull/273)).
|
|
180
|
+
- Embed `mark_task_status` self-instruction in synthetic mention
|
|
181
|
+
([#276](https://github.com/e7217/doorae/pull/276)).
|
|
182
|
+
|
|
183
|
+
### Features — per-agent collaboration mode (#279)
|
|
184
|
+
|
|
185
|
+
- Add `agents.collaboration_mode` enum (`solo` | `collaborative`,
|
|
186
|
+
default `solo`) so admins can flip an agent into "delegate via peer
|
|
187
|
+
mention" without piling another enum onto the `rooms` table. The
|
|
188
|
+
agent SDK reads this via the welcome frame's
|
|
189
|
+
`my_collaboration_mode` slot and appends a usage hint to the LLM
|
|
190
|
+
system prompt; pre-#279 behaviour is byte-identical for solo agents.
|
|
191
|
+
- Server-side peer-mention safety net: every agent message that
|
|
192
|
+
targets another agent participant gets stamped with
|
|
193
|
+
`metadata.peer_depth` and `metadata.kind`
|
|
194
|
+
(`peer_query`/`peer_response`); a per-room `PeerHandoffBudget`
|
|
195
|
+
resets on each human/guest send and trips on `MAX_PEER_DEPTH`
|
|
196
|
+
(1 layer) or `MAX_TOTAL_PEER_HANDOFFS_PER_USER_TURN` (8 events).
|
|
197
|
+
Mentions over the cap are stripped from the broadcast content
|
|
198
|
+
while the prose answer flows through
|
|
199
|
+
([#280](https://github.com/e7217/doorae/pull/280)).
|
|
200
|
+
|
|
201
|
+
### Features — MCP & engines
|
|
202
|
+
|
|
203
|
+
- Auto-register doorae self-MCP via Streamable HTTP
|
|
204
|
+
([#278](https://github.com/e7217/doorae/pull/278)).
|
|
205
|
+
- Expose agent description for cross-agent recognition
|
|
206
|
+
([#274](https://github.com/e7217/doorae/pull/274)).
|
|
207
|
+
- Add GPT-5.5 to codex/openai catalog and bump default
|
|
208
|
+
([#267](https://github.com/e7217/doorae/pull/267)).
|
|
209
|
+
|
|
210
|
+
### Fixes
|
|
211
|
+
|
|
212
|
+
- Rebase `room_artifacts` migration onto 035 to remove cross-branch
|
|
213
|
+
conflict ([#297](https://github.com/e7217/doorae/pull/297)).
|
|
214
|
+
- Derive `AgentSettingsDialog` agent prop from live agents list to
|
|
215
|
+
prevent stale snapshot after in-dialog edits
|
|
216
|
+
([#282](https://github.com/e7217/doorae/pull/282)).
|
|
217
|
+
|
|
218
|
+
### Chores
|
|
219
|
+
|
|
220
|
+
- Remove dead engine adapters (openai, anthropic, openhands,
|
|
221
|
+
deep-agents) ([#294](https://github.com/e7217/doorae/pull/294)).
|
|
222
|
+
|
|
223
|
+
## v0.4.0 (2026-04-25)
|
|
224
|
+
|
|
225
|
+
### Features — embedded LLM gateway (#197)
|
|
226
|
+
|
|
227
|
+
- Phase 1 — architecture docs
|
|
228
|
+
([#200](https://github.com/e7217/doorae/pull/200))
|
|
229
|
+
- Phase 2 — backend supervisor, proxy, bootstrap
|
|
230
|
+
([#202](https://github.com/e7217/doorae/pull/202))
|
|
231
|
+
- Phase 3 — admin REST API
|
|
232
|
+
([#207](https://github.com/e7217/doorae/pull/207))
|
|
233
|
+
- Phase 4 — admin frontend with secondary sidebar
|
|
234
|
+
([#208](https://github.com/e7217/doorae/pull/208))
|
|
235
|
+
- Phase 5 — agent wiring closes the loop
|
|
236
|
+
([#209](https://github.com/e7217/doorae/pull/209))
|
|
237
|
+
- Surface `api_base` + `vllm` provider for local LLMs
|
|
238
|
+
(#249) ([#251](https://github.com/e7217/doorae/pull/251))
|
|
239
|
+
- Add `codex-extra` virtual engine for LiteLLM-routed
|
|
240
|
+
agents ([#254](https://github.com/e7217/doorae/pull/254));
|
|
241
|
+
later removed in
|
|
242
|
+
[#258](https://github.com/e7217/doorae/pull/258).
|
|
243
|
+
- Restrict `/api/v1/llm/*` to agent + machine identities
|
|
244
|
+
([#212](https://github.com/e7217/doorae/pull/212))
|
|
245
|
+
- Use LiteLLM liveliness health probe
|
|
246
|
+
([#252](https://github.com/e7217/doorae/pull/252))
|
|
247
|
+
|
|
248
|
+
### Features — skill library (#119, #120, #123–#126, #133)
|
|
249
|
+
|
|
250
|
+
- Skill library with GitHub-based registration
|
|
251
|
+
([#121](https://github.com/e7217/doorae/pull/121))
|
|
252
|
+
- Pass through full skill directory into agent spawn
|
|
253
|
+
([#127](https://github.com/e7217/doorae/pull/127))
|
|
254
|
+
- Approve workflow + audit log
|
|
255
|
+
([#129](https://github.com/e7217/doorae/pull/129))
|
|
256
|
+
- Agent self-authoring skills via MCP `create_skill` tool
|
|
257
|
+
([#130](https://github.com/e7217/doorae/pull/130))
|
|
258
|
+
- `skills.sh` search proxy + stale check
|
|
259
|
+
([#131](https://github.com/e7217/doorae/pull/131))
|
|
260
|
+
- Surface attached library skills in manifest dialog
|
|
261
|
+
([#136](https://github.com/e7217/doorae/pull/136))
|
|
262
|
+
- Bump agent generation on skill
|
|
263
|
+
attach/detach/delete/update
|
|
264
|
+
([#122](https://github.com/e7217/doorae/pull/122))
|
|
265
|
+
|
|
266
|
+
### Features — MCP server templates (#124)
|
|
267
|
+
|
|
268
|
+
- Builtin + custom template catalog
|
|
269
|
+
([#128](https://github.com/e7217/doorae/pull/128))
|
|
270
|
+
- Simplify custom template editor UI
|
|
271
|
+
([#196](https://github.com/e7217/doorae/pull/196))
|
|
272
|
+
- Show/hide toggle for env value inputs in attach dialog
|
|
273
|
+
([#201](https://github.com/e7217/doorae/pull/201))
|
|
274
|
+
- Restore horizontal focus ring on input focus
|
|
275
|
+
([#198](https://github.com/e7217/doorae/pull/198))
|
|
276
|
+
|
|
277
|
+
### Features — orchestrator & speaker strategies (#159)
|
|
278
|
+
|
|
279
|
+
- Speaker-strategy schema + welcome propagation (Phase A)
|
|
280
|
+
([#164](https://github.com/e7217/doorae/pull/164))
|
|
281
|
+
- Strategy dispatcher + `round_robin` (Phase B)
|
|
282
|
+
([#168](https://github.com/e7217/doorae/pull/168))
|
|
283
|
+
- Orchestrator + handoff tool + per-agent token UI
|
|
284
|
+
(Phase C+D) ([#178](https://github.com/e7217/doorae/pull/178))
|
|
285
|
+
- Surface participant roster to `handoff_to` and
|
|
286
|
+
broadcast room settings
|
|
287
|
+
([#224](https://github.com/e7217/doorae/pull/224))
|
|
288
|
+
- Render orchestrator `[HANDOFF]` messages as
|
|
289
|
+
breathing-border cards
|
|
290
|
+
([#239](https://github.com/e7217/doorae/pull/239))
|
|
291
|
+
|
|
292
|
+
### Features — agent settings dialog
|
|
293
|
+
|
|
294
|
+
- Customizable avatars (emoji/lucide) + per-agent
|
|
295
|
+
settings menu
|
|
296
|
+
([#104](https://github.com/e7217/doorae/pull/104))
|
|
297
|
+
- Unify avatar/manifest/rooms/activity into single
|
|
298
|
+
settings dialog
|
|
299
|
+
([#163](https://github.com/e7217/doorae/pull/163))
|
|
300
|
+
- Stack sections on a single page; tighten spacing;
|
|
301
|
+
divider + card refinements
|
|
302
|
+
([#166](https://github.com/e7217/doorae/pull/166),
|
|
303
|
+
[#169](https://github.com/e7217/doorae/pull/169),
|
|
304
|
+
[#171](https://github.com/e7217/doorae/pull/171),
|
|
305
|
+
[#173](https://github.com/e7217/doorae/pull/173))
|
|
306
|
+
- Model + reasoning_effort editing in Settings Overview
|
|
307
|
+
([#218](https://github.com/e7217/doorae/pull/218))
|
|
308
|
+
|
|
309
|
+
### Features — sidebar UX
|
|
310
|
+
|
|
311
|
+
- Collapse/expand sidebar on desktop
|
|
312
|
+
([#108](https://github.com/e7217/doorae/pull/108))
|
|
313
|
+
- Hoist desktop collapse state into shared provider
|
|
314
|
+
([#117](https://github.com/e7217/doorae/pull/117))
|
|
315
|
+
- Apply `AgentSettingsMenu` to admin agent DM items
|
|
316
|
+
([#107](https://github.com/e7217/doorae/pull/107))
|
|
317
|
+
- Hide room-management UI in agent DMs
|
|
318
|
+
([#118](https://github.com/e7217/doorae/pull/118))
|
|
319
|
+
|
|
320
|
+
### Features — topology
|
|
321
|
+
|
|
322
|
+
- Agent node redesign with name + engine logo + running
|
|
323
|
+
pulse ([#86](https://github.com/e7217/doorae/pull/86))
|
|
324
|
+
- Highlight rooms with active typing
|
|
325
|
+
([#88](https://github.com/e7217/doorae/pull/88))
|
|
326
|
+
- Per-user draggable node positions with localStorage
|
|
327
|
+
persistence ([#236](https://github.com/e7217/doorae/pull/236))
|
|
328
|
+
- Merge `represents` edge into `participates` flag
|
|
329
|
+
([#228](https://github.com/e7217/doorae/pull/228))
|
|
330
|
+
|
|
331
|
+
### Features — multi-session DM & shared files
|
|
332
|
+
|
|
333
|
+
- Per-agent multi-session DM + cross-engine file memory +
|
|
334
|
+
ephemeral mode
|
|
335
|
+
([#240](https://github.com/e7217/doorae/pull/240))
|
|
336
|
+
- Room shared files copy-distributed to agent memory
|
|
337
|
+
([#250](https://github.com/e7217/doorae/pull/250))
|
|
338
|
+
|
|
339
|
+
### Features — context window (#148)
|
|
340
|
+
|
|
341
|
+
- Per-room `context_window_enabled`
|
|
342
|
+
([#149](https://github.com/e7217/doorae/pull/149))
|
|
343
|
+
- Per-agent `context_window_opt_out`
|
|
344
|
+
([#150](https://github.com/e7217/doorae/pull/150))
|
|
345
|
+
- Wire `ingest_only` broadcast + agent opt-out
|
|
346
|
+
([#151](https://github.com/e7217/doorae/pull/151))
|
|
347
|
+
- Flip `context_window_enabled` default to `true` and
|
|
348
|
+
gate as admin-only
|
|
349
|
+
([#230](https://github.com/e7217/doorae/pull/230))
|
|
350
|
+
|
|
351
|
+
### Features — observability
|
|
352
|
+
|
|
353
|
+
- Guard task-init reset-prefix abuse
|
|
354
|
+
([#160](https://github.com/e7217/doorae/pull/160))
|
|
355
|
+
- Detect semantic cycles in `decide_policy`
|
|
356
|
+
([#161](https://github.com/e7217/doorae/pull/161))
|
|
357
|
+
- Room token-stats API with per-agent breakdown
|
|
358
|
+
([#162](https://github.com/e7217/doorae/pull/162))
|
|
359
|
+
- Explicit request lifecycle + orphan sweeper
|
|
360
|
+
([#210](https://github.com/e7217/doorae/pull/210))
|
|
361
|
+
- Turn-level agent activity timeline
|
|
362
|
+
([#223](https://github.com/e7217/doorae/pull/223))
|
|
363
|
+
- Surface `starting` / `stopping` transitional states
|
|
364
|
+
([#220](https://github.com/e7217/doorae/pull/220))
|
|
365
|
+
|
|
366
|
+
### Features — engines
|
|
367
|
+
|
|
368
|
+
- Refresh catalog with CLI-verified 2026-04-21 lineup
|
|
369
|
+
([#216](https://github.com/e7217/doorae/pull/216))
|
|
370
|
+
|
|
371
|
+
### Features — UI / avatars
|
|
372
|
+
|
|
373
|
+
- Seed-based `EntityAvatar` for agents, DMs,
|
|
374
|
+
participants, messages
|
|
375
|
+
([#99](https://github.com/e7217/doorae/pull/99))
|
|
376
|
+
- Thread agent engine through `ParticipantOut`
|
|
377
|
+
([#103](https://github.com/e7217/doorae/pull/103))
|
|
378
|
+
- Upload/download agent manifest files from edit dialog
|
|
379
|
+
([#100](https://github.com/e7217/doorae/pull/100))
|
|
380
|
+
- Skill-aware manifest tree with engine filter +
|
|
381
|
+
script extensions
|
|
382
|
+
([#114](https://github.com/e7217/doorae/pull/114))
|
|
383
|
+
- Unify `AGENTS.md` into agent manifest file tree
|
|
384
|
+
([#110](https://github.com/e7217/doorae/pull/110))
|
|
385
|
+
|
|
386
|
+
### Fixes
|
|
387
|
+
|
|
388
|
+
- Sync room shared files on agent respawn & mid-session
|
|
389
|
+
([#256](https://github.com/e7217/doorae/pull/256))
|
|
390
|
+
- Sidebar AGENTS Agent settings: surface Model/Reasoning
|
|
391
|
+
dropdowns ([#248](https://github.com/e7217/doorae/pull/248))
|
|
392
|
+
- Sidebar agent row button alignment + DM rename/delete
|
|
393
|
+
menu + name tooltip + hover-hide count badge
|
|
394
|
+
([#242](https://github.com/e7217/doorae/pull/242),
|
|
395
|
+
[#244](https://github.com/e7217/doorae/pull/244))
|
|
396
|
+
- Bypass `ingest_only` stamp for human senders; move
|
|
397
|
+
orchestrator O1 ahead of stamp
|
|
398
|
+
([#235](https://github.com/e7217/doorae/pull/235))
|
|
399
|
+
- Sync runtime-room-add with agent lifecycle
|
|
400
|
+
([#229](https://github.com/e7217/doorae/pull/229))
|
|
401
|
+
- Topology: align representative edge shape with
|
|
402
|
+
`participates` ([#232](https://github.com/e7217/doorae/pull/232));
|
|
403
|
+
eliminate node re-render flicker on hover
|
|
404
|
+
([#85](https://github.com/e7217/doorae/pull/85)).
|
|
405
|
+
- Decouple agent DM rooms from project lifetime (#179)
|
|
406
|
+
([#180](https://github.com/e7217/doorae/pull/180))
|
|
407
|
+
- Silence welcome-race disconnect traceback in
|
|
408
|
+
`ws_room` ([#177](https://github.com/e7217/doorae/pull/177))
|
|
409
|
+
- Run alembic migrate before `make dev`
|
|
410
|
+
([#175](https://github.com/e7217/doorae/pull/175))
|
|
411
|
+
- Deliver codex responses that span long tool turns
|
|
412
|
+
([#194](https://github.com/e7217/doorae/pull/194))
|
|
413
|
+
- Persist MCP Fernet key + refuse prod boot without one
|
|
414
|
+
([#140](https://github.com/e7217/doorae/pull/140))
|
|
415
|
+
- Write `claude-code` MCP config to `.mcp.json`
|
|
416
|
+
([#143](https://github.com/e7217/doorae/pull/143))
|
|
417
|
+
- Admin dialog CSS overflow + focus-ring clipping
|
|
418
|
+
([#135](https://github.com/e7217/doorae/pull/135))
|
|
419
|
+
- Emit UTC-aware ISO datetimes so KST clients don't
|
|
420
|
+
shift by 9h
|
|
421
|
+
([#95](https://github.com/e7217/doorae/pull/95))
|
|
422
|
+
- Dismiss historical chips and badge in-flight question
|
|
423
|
+
bubbles ([#96](https://github.com/e7217/doorae/pull/96))
|
|
424
|
+
- Include source/responder `display_name` in
|
|
425
|
+
`room_query` / `room_query_result` metadata
|
|
426
|
+
([#154](https://github.com/e7217/doorae/pull/154),
|
|
427
|
+
[#156](https://github.com/e7217/doorae/pull/156))
|
|
428
|
+
|
|
429
|
+
### Refactors
|
|
430
|
+
|
|
431
|
+
- Remove `codex-extra` virtual engine
|
|
432
|
+
([#258](https://github.com/e7217/doorae/pull/258))
|
|
433
|
+
- Wrap Settings dialog sections in cards on warm-white
|
|
434
|
+
body / restore whisper divider / tighten spacing
|
|
435
|
+
([#169](https://github.com/e7217/doorae/pull/169),
|
|
436
|
+
[#171](https://github.com/e7217/doorae/pull/171),
|
|
437
|
+
[#173](https://github.com/e7217/doorae/pull/173))
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
## v0.3.2 (2026-04-17)
|
|
441
|
+
|
|
442
|
+
### Fixes — single-session WS
|
|
443
|
+
|
|
444
|
+
- Enforce single connection per `participant_id`
|
|
445
|
+
([#79](https://github.com/e7217/doorae/issues/79),
|
|
446
|
+
[#80](https://github.com/e7217/doorae/pull/80))
|
|
447
|
+
— when two clients shared an agent token (e.g.
|
|
448
|
+
`doorae-machine` reconcile racing a manual launch) both
|
|
449
|
+
sockets stayed in `_rooms[room_id]` and every broadcast
|
|
450
|
+
doubled up: duplicate `[ROOM_QUERY]` forwards, duplicate
|
|
451
|
+
DM/mention replies, double LLM cost. The
|
|
452
|
+
`representative_agent_id` guard from #61 only handled
|
|
453
|
+
*different* agents, not multi-instance of the same one.
|
|
454
|
+
`ConnectionManager.subscribe()` now evicts the prior
|
|
455
|
+
subscription and closes the old socket with WS code `4040`
|
|
456
|
+
("superseded") before installing the new one.
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
## v0.3.1 (2026-04-16)
|
|
460
|
+
|
|
461
|
+
### Fixes — room-query banner
|
|
462
|
+
|
|
463
|
+
- Drop orphan pending `room_query` chips after a 7-minute TTL
|
|
464
|
+
([#66](https://github.com/e7217/doorae/issues/66),
|
|
465
|
+
[#68](https://github.com/e7217/doorae/pull/68))
|
|
466
|
+
— when a representative agent dies before `COLLECT_TIMEOUT`
|
|
467
|
+
elapses, no `room_query_result` is ever emitted and the
|
|
468
|
+
pending banner chip would otherwise become a permanent ghost
|
|
469
|
+
(React-local `dismissedIds` doesn't survive refresh). The
|
|
470
|
+
derivation is now factored into `src/lib/pending-queries.ts`
|
|
471
|
+
with unit tests; stale pendings older than the TTL are
|
|
472
|
+
filtered out in `buildPendingQueries`.
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
## v0.3.0 (2026-04-16)
|
|
476
|
+
|
|
477
|
+
### Features — room-query UX (#55)
|
|
478
|
+
|
|
479
|
+
- Structured room-query UX with banner chips and result cards
|
|
480
|
+
([#55](https://github.com/e7217/doorae/issues/55),
|
|
481
|
+
[#59](https://github.com/e7217/doorae/pull/59))
|
|
482
|
+
— source-room banner transitions pending → completed/timeout
|
|
483
|
+
by `query_id`; target-room forward bubble gets a source badge;
|
|
484
|
+
original room renders a collapsible result card per agent
|
|
485
|
+
response. Server stamps `room_query` / `room_query_forward` /
|
|
486
|
+
`room_query_result` metadata; no new WS frame types.
|
|
487
|
+
|
|
488
|
+
### Features — presence (#54)
|
|
489
|
+
|
|
490
|
+
- Unify agent liveness via `PresenceService` + UI indicator
|
|
491
|
+
([#54](https://github.com/e7217/doorae/issues/54),
|
|
492
|
+
[#60](https://github.com/e7217/doorae/pull/60))
|
|
493
|
+
— single read-through service for "is this participant
|
|
494
|
+
responsive right now?" backed by `ConnectionManager` (truth)
|
|
495
|
+
with `Agent.last_heartbeat_at` fallback. `GET /rooms/{id}`
|
|
496
|
+
exposes `online` + `last_seen_at`; WS broadcasts
|
|
497
|
+
`presence_update` frames. `[ROOM_QUERY]` `expected_count` now
|
|
498
|
+
excludes offline agents so stale participants don't force a
|
|
499
|
+
timeout.
|
|
500
|
+
|
|
501
|
+
### Features — sidebar
|
|
502
|
+
|
|
503
|
+
- Drag-and-drop reorder for pinned rooms in sidebar
|
|
504
|
+
([#47](https://github.com/e7217/doorae/issues/47),
|
|
505
|
+
[#51](https://github.com/e7217/doorae/pull/51))
|
|
506
|
+
- Hover `...` menu for rename + delete room
|
|
507
|
+
([#46](https://github.com/e7217/doorae/pull/46),
|
|
508
|
+
[#48](https://github.com/e7217/doorae/pull/48))
|
|
509
|
+
|
|
510
|
+
### Features — rooms
|
|
511
|
+
|
|
512
|
+
- Delete-room UI + tighten authz + WS broadcast
|
|
513
|
+
([#45](https://github.com/e7217/doorae/pull/45))
|
|
514
|
+
— owner/admin-only DELETE endpoint, cascade cleanup,
|
|
515
|
+
`room_deleted` WS frame so other sessions drop the room
|
|
516
|
+
without a refetch round-trip.
|
|
517
|
+
|
|
518
|
+
### Fixes — room routing
|
|
519
|
+
|
|
520
|
+
- Route direct-typed `#RoomName` mentions to the target room
|
|
521
|
+
([#53](https://github.com/e7217/doorae/issues/53),
|
|
522
|
+
[#57](https://github.com/e7217/doorae/pull/57))
|
|
523
|
+
— frontend now converts plain `#Name` text to the
|
|
524
|
+
`<#room:id>` token before sending when the name matches
|
|
525
|
+
exactly one known room, so typed mentions route the same as
|
|
526
|
+
autocomplete-selected ones. Duplicate-name / unknown-name
|
|
527
|
+
fallbacks preserved.
|
|
528
|
+
- Unify participant membership + `JoinRoomOut` broadcast
|
|
529
|
+
([#50](https://github.com/e7217/doorae/issues/50),
|
|
530
|
+
[#52](https://github.com/e7217/doorae/pull/52))
|
|
531
|
+
— the auto-join of a representative agent now emits a
|
|
532
|
+
`JoinRoomOut` frame on every relevant WS session so the SDK
|
|
533
|
+
subscribes to the new room in time for the upcoming broadcast
|
|
534
|
+
(race that previously caused `(1/N)` miscounts in
|
|
535
|
+
`[ROOM_QUERY]`).
|
|
536
|
+
- Break the `[ROOM_QUERY]` forwarding loop
|
|
537
|
+
([#42](https://github.com/e7217/doorae/pull/42))
|
|
538
|
+
— the server no longer re-attaches `room_query` metadata to
|
|
539
|
+
agent-originated forwards; combined with the SDK's
|
|
540
|
+
`<#room:…>` strip, the ad-infinitum recipient-forwards-again
|
|
541
|
+
loop is closed at the source.
|
|
542
|
+
- Unify REST `metadata` field + prevent duplicate
|
|
543
|
+
`room_query_forward` ([#61](https://github.com/e7217/doorae/pull/61),
|
|
544
|
+
[#62](https://github.com/e7217/doorae/pull/62))
|
|
545
|
+
— REST `MessageOut` now returns `metadata` (was
|
|
546
|
+
`extra_metadata`) so history-loaded messages render the
|
|
547
|
+
forward / result cards identically to WS-arrived ones.
|
|
548
|
+
Target-room forwards are now emitted by the target room's
|
|
549
|
+
representative only, not every agent that saw the question.
|
|
550
|
+
- Add `min-h-0` to ChatArea wrapper to restore inner scroll
|
|
551
|
+
([#63](https://github.com/e7217/doorae/pull/63),
|
|
552
|
+
[#64](https://github.com/e7217/doorae/pull/64))
|
|
553
|
+
|
|
554
|
+
### Features — admin
|
|
555
|
+
|
|
556
|
+
- Allow admins to remove room participants
|
|
557
|
+
([#40](https://github.com/e7217/doorae/pull/40))
|
|
558
|
+
|
|
559
|
+
|
|
560
|
+
## v0.2.0 (2026-04-15)
|
|
561
|
+
|
|
562
|
+
### Features — anonymous guest participation (RFC #22)
|
|
563
|
+
|
|
564
|
+
- Allow anonymous guest rows on users table
|
|
565
|
+
([#24](https://github.com/e7217/doorae/pull/24))
|
|
566
|
+
- Room invite links with admin-only lifecycle
|
|
567
|
+
([#25](https://github.com/e7217/doorae/pull/25))
|
|
568
|
+
- Guest identity + /auth/guest + forbid_guest gate
|
|
569
|
+
([#26](https://github.com/e7217/doorae/pull/26))
|
|
570
|
+
- Guest branch in the WebSocket send path
|
|
571
|
+
([#27](https://github.com/e7217/doorae/pull/27))
|
|
572
|
+
- Trim the guest read surface
|
|
573
|
+
([#28](https://github.com/e7217/doorae/pull/28))
|
|
574
|
+
- Guest lifecycle job + metrics + final docs
|
|
575
|
+
([#31](https://github.com/e7217/doorae/pull/31))
|
|
576
|
+
|
|
577
|
+
### Features — membership / UI
|
|
578
|
+
|
|
579
|
+
- Notify agent of dynamic room join via add_participant
|
|
580
|
+
([#17](https://github.com/e7217/doorae/pull/17))
|
|
581
|
+
- Notify user on add_participant via WS
|
|
582
|
+
([#19](https://github.com/e7217/doorae/pull/19))
|
|
583
|
+
- Show room participant list in a header popover
|
|
584
|
+
([#32](https://github.com/e7217/doorae/pull/32))
|
|
585
|
+
- Allow admins to remove room participants
|
|
586
|
+
([#40](https://github.com/e7217/doorae/pull/40))
|
|
587
|
+
|
|
588
|
+
### Fixes
|
|
589
|
+
|
|
590
|
+
- Machine deletion cascade and error surfacing
|
|
591
|
+
([#1](https://github.com/e7217/doorae/pull/1))
|
|
592
|
+
- Delete agent's DM room when the agent is deleted
|
|
593
|
+
([#12](https://github.com/e7217/doorae/pull/12))
|
|
594
|
+
|
|
595
|
+
### Docs
|
|
596
|
+
|
|
597
|
+
- WS frame tables in §1.5 synced with protocol.py
|
|
598
|
+
([#21](https://github.com/e7217/doorae/pull/21))
|
|
599
|
+
- Anonymous guest participation RFC (design §11)
|
|
600
|
+
([#23](https://github.com/e7217/doorae/pull/23))
|
|
601
|
+
|
|
602
|
+
## v0.1.0 (2026-04-14)
|
|
603
|
+
|
|
604
|
+
### Chores
|
|
605
|
+
|
|
606
|
+
- Switch license to Apache-2.0 and update author
|
|
607
|
+
([`a4f1d0a`](https://github.com/e7217/doorae-cluster/commit/a4f1d0a8ddd6b1641dd08ed63c42f60b66576635))
|
|
608
|
+
|
|
609
|
+
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
610
|
+
|
|
611
|
+
### Continuous Integration
|
|
612
|
+
|
|
613
|
+
- Add python-semantic-release for automatic versioning
|
|
614
|
+
([`eb5269a`](https://github.com/e7217/doorae-cluster/commit/eb5269a8799737008802d19f9838470dddfce195))
|
|
615
|
+
|
|
616
|
+
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
617
|
+
|
|
618
|
+
### Features
|
|
619
|
+
|
|
620
|
+
- Initial release — doorae-cluster v0.2.0
|
|
621
|
+
([`47bed32`](https://github.com/e7217/doorae-cluster/commit/47bed3254a656e208e1d765b6e8ece22707043f2))
|
|
622
|
+
|
|
623
|
+
Extracted from e7217/doorae monorepo (formerly doorae-server). Renamed package doorae-server →
|
|
624
|
+
doorae-cluster.
|
|
625
|
+
|
|
626
|
+
Includes: - FastAPI chat server with WebSocket + REST API - SQLAlchemy async DB with Alembic
|
|
627
|
+
migrations (11 versions) - Auth system (JWT, machine tokens, admin/owner roles) - Agent & machine
|
|
628
|
+
management APIs - React/Vite frontend (SPA) - Prometheus observability - doorae-machine dependency
|
|
629
|
+
via GitHub source
|
|
630
|
+
|
|
631
|
+
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|