From e8ac3b65670d696ed5b68f06adf14706bc2ff865 Mon Sep 17 00:00:00 2001 From: Joseph Magly <1159087+jmagly@users.noreply.github.com> Date: Sun, 16 Aug 2026 04:28:09 -0400 Subject: [PATCH] chore: record AIWG 2026.8.11 deployment --- .aiwg/aiwg.config | 6 +- tests/test_aiwg_workspace_contracts.py | 88 ++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 3 deletions(-) create mode 100644 tests/test_aiwg_workspace_contracts.py diff --git a/.aiwg/aiwg.config b/.aiwg/aiwg.config index cd2d748..93efcf1 100644 --- a/.aiwg/aiwg.config +++ b/.aiwg/aiwg.config @@ -33,9 +33,9 @@ ], "installed": { "all": { - "version": "2026.8.9", + "version": "2026.8.11", "source": "bundled", - "installedAt": "2026-08-15T04:22:13.831Z", + "installedAt": "2026-08-16T08:24:23.824Z", "deployedTo": { "codex": { "agents": 0, @@ -49,7 +49,7 @@ "bt6-maintainer": { "version": "0.3.0", "source": "project-local", - "installedAt": "2026-08-15T04:23:14.957Z", + "installedAt": "2026-08-16T08:24:24.182Z", "deployedTo": { "codex": { "agents": 5, diff --git a/tests/test_aiwg_workspace_contracts.py b/tests/test_aiwg_workspace_contracts.py new file mode 100644 index 0000000..e76af3b --- /dev/null +++ b/tests/test_aiwg_workspace_contracts.py @@ -0,0 +1,88 @@ +"""Contracts for the tracked AIWG workspace deployment manifest.""" + +from __future__ import annotations + +import json +from datetime import datetime +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] + + +def _load_json(path: str) -> dict: + return json.loads((ROOT / path).read_text(encoding="utf-8")) + + +def _calendar_version(value: str) -> tuple[int, int, int]: + parts = value.split(".") + assert len(parts) == 3 + return tuple(int(part) for part in parts) + + +def _assert_utc_timestamp(value: str) -> None: + assert value.endswith("Z") + parsed = datetime.fromisoformat(value.removesuffix("Z") + "+00:00") + assert parsed.utcoffset() is not None + + +def test_aiwg_manifest_requires_release_with_codex_size_fix(): + config = _load_json(".aiwg/aiwg.config") + installation = config["installed"]["all"] + + assert _calendar_version(installation["version"]) >= (2026, 8, 11) + assert installation["source"] == "bundled" + assert installation["deployedTo"]["codex"] == { + "agents": 0, + "commands": 50, + "skills": 31, + "rules": 2, + } + _assert_utc_timestamp(installation["installedAt"]) + + +def test_bt6_maintainer_installation_matches_project_plugin(): + config = _load_json(".aiwg/aiwg.config") + plugin = _load_json(".aiwg/plugins/bt6-maintainer/manifest.json") + installation = config["installed"]["bt6-maintainer"] + + assert installation["version"] == plugin["version"] + assert installation["source"] == "project-local" + assert installation["localPath"] == ".aiwg/plugins/bt6-maintainer/" + assert installation["localType"] == plugin["type"] + assert installation["manifestVersion"] == plugin["manifestVersion"] + assert installation["deployedTo"]["codex"] == { + "agents": 5, + "commands": 0, + "skills": 5, + "rules": 1, + } + _assert_utc_timestamp(installation["installedAt"]) + + +def test_workspace_authority_and_delivery_permissions_remain_explicit(): + config = _load_json(".aiwg/aiwg.config") + + assert config["providers"] == ["codex"] + assert config["workspace"]["name"] == "bt6-obliteratus-maintenance" + repositories = {repository["name"]: repository for repository in config["repos"]} + assert repositories["obliteratus"]["allowed"] == [ + "read", + "write", + "commit", + "push", + "issue-comment", + "service-action", + ] + assert repositories["bt6-aiwg-plugins"]["allowed"] == ["read"] + assert config["delivery"] == { + "mode": "pr-required", + "default_branch": "main", + "require_ci_green": True, + "auto_close_issues": True, + "issue_comment_on_cycle": True, + "force_push_policy": "never", + } + assert config["remotes"]["primary"] == "origin" + assert config["remotes"]["issue_tracker"] == "origin" + assert config["remotes"]["ci"] == "origin"