Merge branch 'main' into fix/workspace-scoped-cron-store

Keep cron state workspace-scoped while only migrating legacy jobs into the default workspace. This preserves seamless upgrades for existing installs without polluting intentionally new workspaces.
This commit is contained in:
Xubin Ren
2026-03-24 02:41:58 +00:00
70 changed files with 6550 additions and 606 deletions

View File

@@ -10,6 +10,7 @@ from nanobot.config.paths import (
get_media_dir,
get_runtime_subdir,
get_workspace_path,
is_default_workspace,
)
@@ -40,3 +41,9 @@ def test_shared_and_legacy_paths_remain_global() -> None:
def test_workspace_path_is_explicitly_resolved() -> None:
assert get_workspace_path() == Path.home() / ".nanobot" / "workspace"
assert get_workspace_path("~/custom-workspace") == Path.home() / "custom-workspace"
def test_is_default_workspace_distinguishes_default_and_custom_paths() -> None:
assert is_default_workspace(None) is True
assert is_default_workspace(Path.home() / ".nanobot" / "workspace") is True
assert is_default_workspace("~/custom-workspace") is False