Commit Graph

22 Commits

Author SHA1 Message Date
1aa70a00d3 meta(tasks): claim [secrets-path-off-by-one] in OpeItcLoc03/meeting-room by DESKTOP-NSEF0UK:claude-sonnet:26920 2026-06-11 09:58:18 +00:00
8215d8af6e meta(tasks): update [bootstrap-upgrade-canonical-triggers] in meeting-room 2026-05-07 07:45:17 +00:00
cc91de04a0 meta(tasks): update [bootstrap-upgrade-canonical-triggers] in meeting-room 2026-05-07 07:32:39 +00:00
ccc170735c meta(tasks): create [bootstrap-upgrade-canonical-triggers] in meeting-room 2026-05-07 06:57:22 +00:00
b57a1529e8 meta(tasks): create [secrets-path-off-by-one] in meeting-room 2026-05-06 22:11:54 +00:00
afc43668fe chore: update task board — Phase 2 + code review complete
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 09:16:10 +03:00
f0500502a7 fix: code review — critical and important fixes [v0.2.1]
- inject_message now uses session's event_bus (BOSS_TURN reaches WebSocket/SSE)
- asyncio.get_running_loop() replaces deprecated get_event_loop()
- API keys masked in /api/providers response
- ServerSession (renamed from Session) with cleanup() for handler teardown
- Path traversal protection in _resolve_scenario_path
- XSS fix: escapeHtml(d.name) in web UI
- Duplicate imports removed, os/json moved to module level
- WebSocket handler restructured for reliable cleanup
- New tests: cleanup, provider masking, path traversal

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 09:15:24 +03:00
ff5ee2879a docs: update overview — Phase 2 complete
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 08:51:16 +03:00
1dffaae822 feat: Phase 2 — web server, REST API, WebSocket/SSE, UI [v0.2.0]
AsyncEventBridge bridges sync EventEmitter to asyncio consumers.
FastAPI app with session management, discussion control, roles/providers.
WebSocket for real-time events + inject, SSE for read-only streaming.
Minimal dark-theme HTML/JS UI. `meeting-room serve` CLI subcommand.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 08:50:04 +03:00
069462953b chore: add tests/__init__.py for pytest discovery
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 08:13:22 +03:00
ae7fb35d4b fix: Windows unicode output and config model names
- Force UTF-8 stdout/stderr on Windows to handle LLM unicode output
- Replace ─ (U+2500) with - for Windows cp1251 compatibility
- Sanitize em-dash in session filenames
- Update default model to glm-5.1 in all roles

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 07:14:34 +03:00
962b0beddd docs: update README, wiki overview, index, log; add roles/code-review/pydantic wiki pages
- README: remove autogen/crewai references, add v2 architecture diagram,
  code-review scenario, cross-LLM config examples, roadmap
- wiki/overview: event-driven architecture, Pydantic v2, roadmap
- wiki/index: add entities/roles, concepts/code-review, packages/pydantic
- wiki/log: Phase 1 completion, code-review decision
- New: entities/roles.md, concepts/code-review.md, packages/pydantic.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 06:30:33 +03:00
2887b2309a feat: add code-review scenario and cross-LLM review roles
- scenarios/code-review.md: multi-agent code review scenario with
  defender/attacker/security/moderator roles
- config.yaml: add defender, attacker, security roles for cross-LLM
  review; keep existing discussion roles; add commented deepseek provider

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 00:42:04 +03:00
96b6f061f3 chore: update task board — Phase 1 complete
All 7 Phase 1 tasks done:
- deps: pydantic, pytest, [web] optional deps
- models: Pydantic v2 data models
- events: EventEmitter + event types
- api-client: APIClient class refactor
- tools: ToolRegistry class + Windows compat
- engine: DiscussionEngine with event-driven architecture
- config-cli: config.py extraction + CLI refactor

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 00:34:20 +03:00
d0507b3b0c feat: extract config.py, refactor CLI to use event-driven engine, add deprecation shim
- config.py: extracted load_config(), find_workspace_config(),
  load_discussion_config() from cli.py; fixed Windows root detection
- cli.py: run_discussion() now creates DiscussionEngine + EventEmitter,
  subscribes to events with ANSI-color output (identical to before),
  delegates to engine.run()
- backends/custom/run.py: deprecation shim with DeprecationWarning,
  delegates to DiscussionEngine
- 16 new config tests, all 184 tests passing

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 00:33:07 +03:00
858618b326 feat: add DiscussionEngine with event-driven architecture
- engine.py: DiscussionEngine class with run() and inject_message()
- All print() calls replaced with EventEmitter.emit()
- Event mapping: DISCUSSION_START, ROUND_START, AGENT_TURN_START,
  AGENT_MESSAGE, TOOL_CALL, TOOL_RESULT, AGENT_ERROR, ROUND_END,
  DISCUSSION_END, BOSS_TURN
- Accepts typed dependencies (APIClient, ToolRegistry, EventEmitter)
- 27 engine tests, all 168 total tests passing

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 00:19:32 +03:00
6bbbefaa6f feat: refactor APIClient and ToolRegistry to classes
- api_client.py: APIClient class with ProviderConfig types,
  chat_stream() returns str instead of printing,
  module-level wrappers for backward compat
- tools.py: ToolRegistry class with instance methods,
  pure Python list_files (os.walk) and search_in_files (re.search)
  replacing find/grep for Windows compat,
  English tool descriptions and error messages,
  module-level wrappers for backward compat
- 74 new tests (21 api_client + 53 tools)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 00:09:41 +03:00
d292d32afa feat: add Pydantic models and EventEmitter for v2 core
- models.py: ProviderConfig, RoleConfig, DiscussionConfig, ScenarioConfig,
  Message, ToolCallRecord, Session — compatible with config.yaml format
- events.py: Event constants, Event dataclass, EventEmitter with on/off/emit
- 67 tests passing (37 models + 30 events)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 00:00:21 +03:00
1064276e81 feat: add pydantic, pytest, and optional web dependencies
Add pydantic>=2.0 to main dependencies for typed models.
Add [dev] optional deps (pytest, pytest-mock) for testing.
Add [web] optional deps (fastapi, uvicorn, websockets) for Phase 2.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 23:52:55 +03:00
52e77bb50c feat: v2 plan — remove autogen/crewai, add tasks and wiki
- Remove autogen and crewai backends (focus on custom only)
- Simplify CLI: remove --backend flag
- Remove optional deps from pyproject.toml
- Add .tasks/ with 7 tasks for Phase 1 refactor
- Add .wiki/concepts/meeting-room-v2.md with architecture plan
- Update .wiki/index.md and .tasks/STATUS.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 23:42:39 +03:00
5ed79a2e95 chore: bootstrap project structure
- .wiki/ with canonical Karpathy layout (CLAUDE.md, index, log, overview, raw)
- .tasks/ with canonical STATUS.md board
- CLAUDE.md with skill triggers
- Bootstrap manifest in .wiki/concepts/

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 23:12:18 +03:00
Hermes
99cb5a499b Initial commit: Meeting Room v0.1.0
Multi-agent discussion framework:
- Custom/AutoGen/CrewAI backends
- Multi-provider API (role→model binding)
- Tools system (files, web, commands)
- Markdown scenarios with YAML frontmatter
- Workspace init (meeting-room init)
- Session save (--save)
2026-05-03 08:07:35 +00:00