Conversation
…ates Phase 2: serve.py takes Workspace + ServerBindings instead of ServerConfig. Deletes manual wiring — pipeline, queue, prompts, vLLM all configured through workspace. Adds serve_from_config() backward-compat adapter. Phase 3: mcp_tools._state dict replaced with _workspace: Workspace. All tools access project/config/queue/prompts through workspace. api.py updated to match. Phase 4+5: Viewer binds to Workspace via ViewerState.from_workspace(). Shows workspace name in header, workspace state in /api/status. app.js updates logo text from status response. Phase 6: synix.toml added to all 8 templates. deploy/synix-server.toml renamed to deploy/synix.toml. Containerfile updated for new filename. Phase 7: test_workspace_serve.py — 7 e2e tests for runtime activation, real queue/prompt store through workspace, build+release lifecycle. Phase 8: Deploy config points to synix.toml. All tests updated for _workspace migration. 2123 tests pass. uv run release passes (lint + tests + 6 demos).
|
Note Red Team Review — OpenAI GPT-5.4 | Adversarial review (docs + diff only) Threat assessment — Medium-high risk: this PR is refactoring server initialization around a new workspace abstraction and quietly changes config conventions, but the compatibility and concurrency story is not convincingly locked down. One-way doors
Findings
Missing
Verdict — Ship with fixes: the refactor direction may be right, but the config migration is under-documented, the viewer integration is incomplete, and the global runtime state remains an architectural liability. Review parameters
|
|
Note Architectural Review — Claude Opus | Blind review (docs + diff only) Summary This PR replaces the ad-hoc Alignment Strong fit. DESIGN.md establishes that a Pipeline is the core container and Observations
Verdict This is a well-motivated structural improvement that replaces stringly-typed shared state with a typed domain object, consistent with the project's build-system architecture — approve with a request to extract the repeated Review parameters
|
|
Note Red Team Review — OpenAI GPT-5.4 | Adversarial review (docs + diff only) Threat assessment — Medium-high risk: this is a cross-cutting config/runtime refactor that changes server boot semantics and introduces a new user-facing config file without enough migration proof. One-way doors
Findings
Missing
Verdict — Block: the runtime refactor may be directionally fine, but the config migration and global-state rewrite are under-specified, under-documented, and not convincingly backward-compatible. Review parameters
|
|
Note Architectural Review — Claude Opus | Blind review (docs + diff only) Summary Replaces the ad-hoc Alignment Strong fit. DESIGN.md describes the pipeline as a "named container for memory processing" and the build/release separation as absolute. The Observations
Verdict This is a well-structured refactor that replaces implicit global state with an explicit domain object, aligns with the project's build-system identity, and comes with solid test coverage — a good incremental step. Review parameters
|
Summary
Completes the Workspace abstraction by integrating it into the server, viewer, CLI, and templates. This is phases 2-8 from the workspace RFC (#124).
serve()takesWorkspace + ServerBindingsinstead ofServerConfig. Deletes 40+ lines of manual wiring.serve_from_config()adapter for backward compat._state: dictreplaced with_workspace: Workspace. All MCP tools and REST routes access project/config/queue/prompts through workspace._resolve_bucket_dir()becomesworkspace.bucket_dir().ViewerState.from_workspace()classmethod. Workspace name shown in header./api/statusreturnsworkspacename andstate.synix.tomladded to all 8 templates.deploy/synix-server.toml→deploy/synix.toml.Test results
uv run releasepasses (lint + tests + 6 demos)Test plan
uv run pytest tests/unit/ -q)uv run pytest tests/e2e/test_workspace_*.py -v)uv run pytest tests/e2e/server/ -v)uv run releasegate passes