Skip to content

Commit 7904826

Browse files
authored
Merge pull request #1 from ShieldCraft-AI/fix/v1-head-stabilization
Merging stabilization fixes into main (non-squash merge). CI green on branch.
2 parents 96dfacc + 6e7e1c3 commit 7904826

62 files changed

Lines changed: 1202 additions & 41 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Persona Events Validation
2+
3+
on:
4+
push:
5+
paths:
6+
- 'src/shieldcraft/persona/**'
7+
- 'src/shieldcraft/observability/**'
8+
- 'tests/persona/**'
9+
10+
jobs:
11+
persona-events:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
- name: Setup Python
16+
uses: actions/setup-python@v4
17+
with:
18+
python-version: '3.11'
19+
- name: Install
20+
run: |
21+
python -m pip install --upgrade pip
22+
python -m pip install -e .
23+
python -m pip install pytest
24+
- name: Run persona tests
25+
run: |
26+
python -m pytest -q tests/persona -q
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Release Smoke Suite
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
smoke:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- name: Setup Python
14+
uses: actions/setup-python@v4
15+
with:
16+
python-version: '3.11'
17+
- name: Install
18+
run: |
19+
python -m pip install --upgrade pip
20+
pip install -r requirements.txt || true
21+
- name: Generate release manifest
22+
run: |
23+
python -c "from shieldcraft.release import generate_release_manifest; generate_release_manifest()"
24+
- name: Run smoke tests
25+
run: |
26+
pytest -q tests/release/test_release_manifest.py tests/release/test_compatibility_matrix.py

.github/workflows/reproducibility.yml

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ name: Reproducibility Check
33
on:
44
workflow_dispatch:
55
push:
6-
branches: [ main ]
6+
branches:
7+
- main
8+
- 'fix/*'
79

810
jobs:
911
repro:
@@ -18,21 +20,22 @@ jobs:
1820

1921
- name: Install package
2022
run: |
21-
pip install -e .
22-
pip install pytest
23+
python -m pip install --upgrade pip
24+
python -m pip install -e .
25+
python -m pip install pytest
2326
2427
- name: Run self-host twice
2528
run: |
2629
rm -rf artifacts || true
2730
mkdir -p artifacts/run1 artifacts/run2
2831
python - <<PY
29-
from src.shieldcraft.main import run_self_host
30-
run_self_host('examples/selfhost/bootstrap_spec.json', 'src/shieldcraft/dsl/schema/se_dsl.schema.json')
31-
import shutil, os
32-
shutil.copytree('.selfhost_outputs', 'artifacts/run1/selfhost', dirs_exist_ok=True)
33-
run_self_host('examples/selfhost/bootstrap_spec.json', 'src/shieldcraft/dsl/schema/se_dsl.schema.json')
34-
shutil.copytree('.selfhost_outputs', 'artifacts/run2/selfhost', dirs_exist_ok=True)
35-
PY
32+
from src.shieldcraft.main import run_self_host
33+
run_self_host('examples/selfhost/bootstrap_spec.json', 'src/shieldcraft/dsl/schema/se_dsl.schema.json')
34+
import shutil, os
35+
shutil.copytree('.selfhost_outputs', 'artifacts/run1/selfhost', dirs_exist_ok=True)
36+
run_self_host('examples/selfhost/bootstrap_spec.json', 'src/shieldcraft/dsl/schema/se_dsl.schema.json')
37+
shutil.copytree('.selfhost_outputs', 'artifacts/run2/selfhost', dirs_exist_ok=True)
38+
PY
3639
3740
- name: Diff outputs
3841
run: |

.github/workflows/selfbuild.yml

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ name: Self-Build Verification
33
on:
44
workflow_dispatch:
55
push:
6-
branches: [ main ]
6+
branches:
7+
- main
8+
- 'fix/*'
79

810
jobs:
911
selfbuild:
@@ -18,13 +20,14 @@ jobs:
1820

1921
- name: Install
2022
run: |
21-
pip install -e .
23+
python -m pip install --upgrade pip
24+
python -m pip install -e .
2225
2326
- name: Run self-build
2427
run: |
2528
python - <<PY
26-
from src.shieldcraft.engine import Engine
27-
e = Engine('src/shieldcraft/dsl/schema/se_dsl.schema.json')
28-
e.run_self_build('spec/se_dsl_v1.spec.json', dry_run=False)
29-
print('Self-build completed')
30-
PY
29+
from src.shieldcraft.engine import Engine
30+
e = Engine('src/shieldcraft/dsl/schema/se_dsl.schema.json')
31+
e.run_self_build('spec/se_dsl_v1.spec.json', dry_run=False)
32+
print('Self-build completed')
33+
PY

RELEASE_MANIFEST.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"artifacts": [
3+
{
4+
"path": "src/shieldcraft/observability/__init__.py",
5+
"sha256": "0dd1049f6ca9bb20cbbae92b02571426f81429fc4bbce84c714f7592cce686b6"
6+
},
7+
{
8+
"path": "src/shieldcraft/persona/__init__.py",
9+
"sha256": "83d9f0efbda45198c8e4c0db773222af09363ae7ce65335579edcd2897353153"
10+
},
11+
{
12+
"path": "src/shieldcraft/persona/persona_event_v1.schema.json",
13+
"sha256": "5ae47a563d0679f08a20f8d371e36bd0f4069a8396e38a9c7f8ca07f1763484f"
14+
},
15+
{
16+
"path": "src/shieldcraft/persona/persona_v1.schema.json",
17+
"sha256": "2e97d96a704713847b90a255832516cb7c415cab94b714c0c2c898678495d4ea"
18+
},
19+
{
20+
"path": "src/shieldcraft/services/selfhost/artifact_manifest.json",
21+
"sha256": "6dce8deb5d9850188cc7ac60648dfa0f160bf9143f816bfbdbf236a3b597a743"
22+
}
23+
],
24+
"manifest_version": 1
25+
}

RELEASE_READY

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
RELEASE_READY_V1

STABLE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
SE_STABLE_V1

artifacts/repo_sync_state.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"manifest_version": 1,
3+
"description": "ShieldCraft repo sync artifact (deterministic placeholder)",
4+
"files": []
5+
}

compatibility_matrix.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"engine_version": "0.1.0",
3+
"compatibility": [
4+
{"engine": "0.1.0", "spec_versions": ["se_dsl_v1"], "generator_versions": ["v1"]}
5+
]
6+
}

docs/INVARIANTS.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)