@jaguilar87/gaia 5.0.0-rc.2 → 5.0.0-rc.3

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.
@@ -8,7 +8,7 @@
8
8
  {
9
9
  "name": "gaia-ops",
10
10
  "description": "Full DevOps orchestration for Claude Code. Eight specialized agents handle the complete development lifecycle — analysis, planning, execution, and deployment. Gaia-Ops scans your codebase to understand it and injects the right context into each sub-agent. Every command is classified by risk: read-only runs freely, state changes pause for your approval, and irreversible operations are permanently blocked.",
11
- "version": "5.0.0-rc.2",
11
+ "version": "5.0.0-rc.3",
12
12
  "category": "devops",
13
13
  "author": {
14
14
  "name": "jaguilar87",
@@ -20,7 +20,7 @@
20
20
  {
21
21
  "name": "gaia-security",
22
22
  "description": "Keeps you in the loop only when it matters. Gaia Security analyzes every command and classifies it into risk tiers: read-only queries run freely, simulations and validations pass through, and state-changing operations (create, delete, apply, push) pause for your explicit approval before executing. Irreversible commands like dropping databases or deleting cloud infrastructure are permanently blocked.",
23
- "version": "5.0.0-rc.2",
23
+ "version": "5.0.0-rc.3",
24
24
  "category": "security",
25
25
  "author": {
26
26
  "name": "jaguilar87",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gaia-ops",
3
- "version": "5.0.0-rc.2",
3
+ "version": "5.0.0-rc.3",
4
4
  "description": "Security-first orchestrator with specialized agents, hooks, and governance for AI coding",
5
5
  "author": {
6
6
  "name": "jaguilar87",
package/CHANGELOG.md CHANGED
@@ -7,6 +7,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [5.0.0-rc.3] - 2026-04-26
11
+
12
+ ### Release Candidate 3: Python 3.9 Compatibility Fix
13
+
14
+ Hotfix for rc.2. The previous release shipped successfully to npm under
15
+ the `@rc` dist-tag but failed its post-publish sandbox harness gate
16
+ because `bin/cli/approvals.py` used PEP 604 union syntax (`X | None`)
17
+ which requires Python 3.10+ at module-import time. The publish.yml
18
+ runner pins Python 3.9, and the `ci.yml` test matrix also includes 3.9.
19
+ The plugin loader caught the resulting `ImportError` and emitted a
20
+ `Warning:` line that leaked into stdout, breaking JSON parsing for
21
+ several `gaia` subcommands on 3.9-only environments.
22
+
23
+ #### Fixed
24
+ - **Python 3.9 compatibility** — added `from __future__ import annotations`
25
+ to 7 files that used PEP 604 union syntax without it. With deferred
26
+ annotation evaluation, the type hints become string literals and no
27
+ longer execute the `|` operator at definition time. A repo-wide audit
28
+ of 21 PEP-604 files confirmed 14 were already safe (had `__future__`)
29
+ and 7 were the actual 3.9 breakers; all 7 are now fixed:
30
+ - `bin/cli/approvals.py` (the publish.yml-failing one)
31
+ - `bin/cli/plans.py`
32
+ - `bin/cli/context.py`
33
+ - `tests/cli/test_gaia_context.py`
34
+ - `tests/cli/test_gaia_plans.py`
35
+ - `tools/scan/tests/conftest.py`
36
+ - `tools/agentic-loop/record-iteration.py`
37
+
38
+ The audit also confirmed no PEP 634 `match` statements, no `TypeAlias`,
39
+ no runtime PEP 604 in `isinstance()`, and no runtime parameterized
40
+ stdlib generics, so the `__future__` route is sufficient — no actual
41
+ type-hint rewrites required.
42
+
43
+ 5.0.0-rc.2 is superseded by this release. Users on Python 3.10+ were
44
+ unaffected by the bug; users on Python 3.9 should upgrade to rc.3.
45
+ Failing run for reference:
46
+ https://github.com/metraton/gaia/actions/runs/24951053090
47
+
10
48
  ## [5.0.0-rc.2] - 2026-04-26
11
49
 
12
50
  ### Release Candidate 2: Converger Identity, Session Liveness, Install-Gate Hardening
@@ -15,6 +15,8 @@ Subcommands:
15
15
  All subcommands exit 0 on success, 1 on error.
16
16
  """
17
17
 
18
+ from __future__ import annotations
19
+
18
20
  import argparse
19
21
  import json
20
22
  import os
@@ -6,6 +6,8 @@ Subcommands:
6
6
  gaia context scan [--dry-run] [--json] Run project scanner
7
7
  """
8
8
 
9
+ from __future__ import annotations
10
+
9
11
  import json
10
12
  import subprocess
11
13
  import sys
package/bin/cli/plans.py CHANGED
@@ -9,6 +9,8 @@ Subcommands:
9
9
  (accepts name with or without prefix)
10
10
  """
11
11
 
12
+ from __future__ import annotations
13
+
12
14
  import json
13
15
  import sys
14
16
  from pathlib import Path
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gaia-ops",
3
- "version": "5.0.0-rc.2",
3
+ "version": "5.0.0-rc.3",
4
4
  "description": "Full DevOps orchestration for Claude Code. Eight specialized agents handle the complete development lifecycle \u2014 analysis, planning, execution, and deployment. Gaia-Ops scans your codebase to understand it and injects the right context into each sub-agent. Every command is classified by risk: read-only runs freely, state changes pause for your approval, and irreversible operations are permanently blocked.",
5
5
  "author": {
6
6
  "name": "jaguilar87",
@@ -25,6 +25,8 @@ then renamed over the original. Either the full write lands or the original
25
25
  is untouched.
26
26
  """
27
27
 
28
+ from __future__ import annotations
29
+
28
30
  import argparse
29
31
  import json
30
32
  import os
@@ -5,6 +5,8 @@ Provides mock project trees, temporary directories, and common
5
5
  test data for scanner unit tests.
6
6
  """
7
7
 
8
+ from __future__ import annotations
9
+
8
10
  import json
9
11
  import textwrap
10
12
  from pathlib import Path
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gaia-security",
3
- "version": "5.0.0-rc.2",
3
+ "version": "5.0.0-rc.3",
4
4
  "description": "Keeps you in the loop only when it matters. Gaia Security analyzes every command and classifies it into risk tiers: read-only queries run freely, simulations and validations pass through, and state-changing operations (create, delete, apply, push) pause for your explicit approval before executing. Irreversible commands like dropping databases or deleting cloud infrastructure are permanently blocked.",
5
5
  "author": {
6
6
  "name": "jaguilar87",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaguilar87/gaia",
3
- "version": "5.0.0-rc.2",
3
+ "version": "5.0.0-rc.3",
4
4
  "description": "Multi-agent orchestration system for Claude Code - DevOps automation toolkit",
5
5
  "main": "index.js",
6
6
  "type": "module",
package/pyproject.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "gaia"
3
- version = "5.0.0-rc.2"
3
+ version = "5.0.0-rc.3"
4
4
  description = "Multi-agent orchestration system for Claude Code - DevOps automation toolkit"
5
5
  requires-python = ">=3.9"
6
6
  license = {text = "MIT"}
@@ -25,6 +25,8 @@ then renamed over the original. Either the full write lands or the original
25
25
  is untouched.
26
26
  """
27
27
 
28
+ from __future__ import annotations
29
+
28
30
  import argparse
29
31
  import json
30
32
  import os
@@ -5,6 +5,8 @@ Provides mock project trees, temporary directories, and common
5
5
  test data for scanner unit tests.
6
6
  """
7
7
 
8
+ from __future__ import annotations
9
+
8
10
  import json
9
11
  import textwrap
10
12
  from pathlib import Path