Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bdb3116bbd |
@@ -1,155 +0,0 @@
|
||||
# V1R4C4 SR-01 Deployment Acceptance: Gitea Branch Consistency Sentinel
|
||||
|
||||
Date: 2026-07-10
|
||||
|
||||
Status: healthy
|
||||
|
||||
Baseline at validation: V1R4C3
|
||||
|
||||
Runtime status at record time: active
|
||||
|
||||
## Acceptance Summary
|
||||
|
||||
The Gitea branch consistency sentinel is deployed and operating successfully.
|
||||
|
||||
Observed service result:
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "healthy",
|
||||
"unhealthy_checks": []
|
||||
}
|
||||
```
|
||||
|
||||
No unhealthy checks were reported.
|
||||
|
||||
## Implemented Components
|
||||
|
||||
### 1. Sentinel script
|
||||
|
||||
Path:
|
||||
|
||||
```text
|
||||
/data/aios-gitops/workspace/scripts/reliability/gitea_branch_consistency_sentinel.py
|
||||
```
|
||||
|
||||
Purpose:
|
||||
|
||||
- compare Gitea branch metadata against actual Git branch state;
|
||||
- detect branch metadata drift;
|
||||
- emit structured JSON result;
|
||||
- optionally emit autonomous safe-mode state when unhealthy.
|
||||
|
||||
The deployed check compares Gitea branch metadata available through the local Gitea endpoint against the actual git branches in the repository directory.
|
||||
|
||||
Endpoint used:
|
||||
|
||||
```text
|
||||
127.0.0.1:3000
|
||||
```
|
||||
|
||||
### 2. Safe-mode helper
|
||||
|
||||
Path:
|
||||
|
||||
```text
|
||||
/data/aios-gitops/workspace/scripts/reliability/autonomous_safe_mode.py
|
||||
```
|
||||
|
||||
Purpose:
|
||||
|
||||
- provide safe-mode output/formatting helper;
|
||||
- support autonomous controller behavior when drift is detected.
|
||||
|
||||
### 3. systemd timer
|
||||
|
||||
Unit:
|
||||
|
||||
```text
|
||||
gitea-branch-consistency-sentinel.timer
|
||||
```
|
||||
|
||||
Schedule:
|
||||
|
||||
```text
|
||||
every 5 minutes
|
||||
```
|
||||
|
||||
Purpose:
|
||||
|
||||
- continuously monitor Gitea branch consistency;
|
||||
- reduce mean time to detection for branch metadata drift;
|
||||
- provide recurring health evidence.
|
||||
|
||||
### 4. systemd service
|
||||
|
||||
Unit:
|
||||
|
||||
```text
|
||||
gitea-branch-consistency-sentinel.service
|
||||
```
|
||||
|
||||
Execution:
|
||||
|
||||
```text
|
||||
gitea_branch_consistency_sentinel.py --emit-safe-mode --json
|
||||
```
|
||||
|
||||
Purpose:
|
||||
|
||||
- execute consistency sentinel;
|
||||
- log structured JSON output;
|
||||
- emit safe-mode state when the sentinel becomes unhealthy.
|
||||
|
||||
### 5. Workspace symlink fix
|
||||
|
||||
A broken `reliability` directory symlink pointing outside the workspace was replaced with actual files.
|
||||
|
||||
Reason:
|
||||
|
||||
- systemd sandboxing prevents following the prior external symlink safely;
|
||||
- deploying actual files inside the workspace makes service execution deterministic.
|
||||
|
||||
## Reliability Impact
|
||||
|
||||
This closes the core SR-01 monitoring gap:
|
||||
|
||||
```text
|
||||
Gitea branch metadata drift
|
||||
↓
|
||||
detected within timer interval
|
||||
↓
|
||||
structured JSON health record
|
||||
↓
|
||||
autonomous safe-mode emission if unhealthy
|
||||
```
|
||||
|
||||
The timer now provides continuous verification every 5 minutes.
|
||||
|
||||
## Current Result
|
||||
|
||||
```text
|
||||
status: healthy
|
||||
unhealthy_checks: none
|
||||
timer: active every 5 minutes
|
||||
service: emits JSON with --emit-safe-mode
|
||||
```
|
||||
|
||||
## Acceptance Decision
|
||||
|
||||
SR-01 deployment guardrail is accepted as healthy for V1R4C4 reliability freeze readiness.
|
||||
|
||||
This does not yet promote V1R4C4. It provides one required acceptance input for V1R4C4.
|
||||
|
||||
## Remaining Before V1R4C4 Promotion
|
||||
|
||||
1. Confirm SR-02 watcher cleanup remains test-green after integration.
|
||||
2. Run GitOps runtime acceptance:
|
||||
|
||||
```text
|
||||
getRuntimeStatus -> getBaseline -> createBranch -> createPatch
|
||||
```
|
||||
|
||||
3. Confirm no new Gitea branch metadata drift after acceptance writes.
|
||||
4. Prepare V1R4C4 reliability baseline proposal.
|
||||
5. Keep SR-04 Portal AIOS Integration gated until SR-01 and SR-02 are both accepted.
|
||||
@@ -1,17 +0,0 @@
|
||||
# Copy to /etc/aios/gitea-branch-consistency-sentinel.env
|
||||
# and adjust paths for the deployment host.
|
||||
|
||||
AIOS_REPO_ROOT=/data/aios-gitops/workspace
|
||||
GITEA_REPO_DIR=/data/aios-gitops/runtime/gitea-bin/data/repositories/aios/aios.git
|
||||
GITEA_DB_PATH=/data/aios-gitops/runtime/gitea-bin/data/gitea.db
|
||||
GITEA_REPO_ID=1
|
||||
GITEA_API_URL=http://127.0.0.1:3000/api/v1/repos/aios/aios/branches
|
||||
|
||||
GITEA_SENTINEL_REPORT_FILE=/data/aios-gitops/runtime/state/gitea-branch-consistency-report.json
|
||||
AUTONOMOUS_SAFE_MODE_FILE=/data/aios-gitops/runtime/state/autonomous-safe-mode.json
|
||||
|
||||
GITEA_SENTINEL_TIMEOUT_SECONDS=10
|
||||
GITEA_DOCTOR_REQUIRED=false
|
||||
|
||||
# Optional:
|
||||
# GITEA_API_TOKEN_FILE=/path/to/token
|
||||
@@ -1,24 +0,0 @@
|
||||
[Unit]
|
||||
Description=Gitea branch metadata consistency sentinel
|
||||
Documentation=file:docs/reliability/gitea-controller-guardrails.md
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
|
||||
# Read-only consistency check. Emits safe mode on detected drift.
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
Environment="AIOS_REPO_ROOT=/data/aios-gitops/workspace"
|
||||
EnvironmentFile=-/etc/aios/gitea-branch-consistency-sentinel.env
|
||||
WorkingDirectory=/data/aios-gitops/workspace
|
||||
ExecStart=/bin/sh -lc 'cd "$AIOS_REPO_ROOT" && exec /usr/bin/python3 "$AIOS_REPO_ROOT/scripts/reliability/gitea_branch_consistency_sentinel.py" --emit-safe-mode --json'
|
||||
TimeoutStartSec=90
|
||||
Nice=10
|
||||
IOSchedulingClass=best-effort
|
||||
IOSchedulingPriority=7
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectHome=true
|
||||
ProtectSystem=full
|
||||
ReadWritePaths=/data/aios-gitops/runtime/state
|
||||
ReadOnlyPaths=/data/aios-gitops/runtime/gitea-bin/data
|
||||
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"version": "V1R4C5",
|
||||
"codename": "C5 reliability-security-admin-readonly",
|
||||
"status": "release-candidate",
|
||||
"base_baseline": "V1R4C3",
|
||||
"created_at": "2026-07-11",
|
||||
"created_by": "chatgpt-gitops-bot",
|
||||
"release_type": "controlled-integration",
|
||||
"promotion_policy": "owner-gated",
|
||||
"scope": {
|
||||
"merge_candidates": [
|
||||
{
|
||||
"branch": "feature/v1r4c4-sr01-gitea-branch-sync-fix-20260710",
|
||||
"component": "SR-01",
|
||||
"name": "Gitea Branch Sync Fix",
|
||||
"risk": "medium",
|
||||
"required_for": "reliability"
|
||||
},
|
||||
{
|
||||
"branch": "feature/v1r4c4-sr01-deployment-guardrails-20260710",
|
||||
"component": "SR-01",
|
||||
"name": "Gitea Branch Consistency Sentinel Deployment Guardrails",
|
||||
"risk": "medium",
|
||||
"required_for": "reliability"
|
||||
},
|
||||
{
|
||||
"branch": "feature/gitea-reliability-guardrails-20260710",
|
||||
"component": "SR-01",
|
||||
"name": "Gitea Reliability Guardrails",
|
||||
"risk": "medium",
|
||||
"required_for": "reliability"
|
||||
},
|
||||
{
|
||||
"branch": "incident/gitea-autonomous-ops-stop-20260710",
|
||||
"component": "incident",
|
||||
"name": "Gitea Autonomous Operations Stop Incident Record",
|
||||
"risk": "low",
|
||||
"required_for": "operational-memory"
|
||||
},
|
||||
{
|
||||
"branch": "feature/v1r4c4-sr02-watcher-state-cleanup-20260710",
|
||||
"component": "SR-02",
|
||||
"name": "Watcher State Cleanup",
|
||||
"risk": "low",
|
||||
"required_for": "controller-stability"
|
||||
},
|
||||
{
|
||||
"branch": "security/user-data-isolation-redline-20260710",
|
||||
"component": "security",
|
||||
"name": "User Data Isolation Redline",
|
||||
"risk": "high",
|
||||
"required_for": "data-isolation"
|
||||
},
|
||||
{
|
||||
"branch": "security/user-data-isolation-guard-20260710",
|
||||
"component": "security",
|
||||
"name": "User Data Isolation Scope Guard",
|
||||
"risk": "high",
|
||||
"required_for": "data-isolation"
|
||||
},
|
||||
{
|
||||
"branch": "security/user-data-isolation-guard-ci-20260710",
|
||||
"component": "security",
|
||||
"name": "User Data Isolation CI Gate",
|
||||
"risk": "high",
|
||||
"required_for": "data-isolation"
|
||||
},
|
||||
{
|
||||
"branch": "feature/v1r4c4-sr04-admin-workbench-visibility-20260711",
|
||||
"component": "SR-04",
|
||||
"name": "Admin Workbench Visibility Gap / Read-only Slice Preparation",
|
||||
"risk": "medium",
|
||||
"required_for": "admin-visibility"
|
||||
},
|
||||
{
|
||||
"branch": "feature/v1r4c4-sr04-portal-aios-visibility-20260710",
|
||||
"component": "SR-04",
|
||||
"name": "Portal AIOS Visibility Gap / Activation-ready Record",
|
||||
"risk": "medium",
|
||||
"required_for": "portal-visibility"
|
||||
},
|
||||
{
|
||||
"branch": "ops/patch-lifecycle-reconciliation-20260710",
|
||||
"component": "ops",
|
||||
"name": "Patch Lifecycle Reconciliation",
|
||||
"risk": "low",
|
||||
"required_for": "branch-governance"
|
||||
},
|
||||
{
|
||||
"branch": "ops/v1r4c4-reliability-freeze-before-sr04-20260710",
|
||||
"component": "ops",
|
||||
"name": "Reliability Freeze Before SR-04 Decision",
|
||||
"risk": "low",
|
||||
"required_for": "release-governance"
|
||||
}
|
||||
],
|
||||
"not_merged_in_c5": [
|
||||
"bulk test/smoke/auth branches",
|
||||
"old V1R2/V1R3 promotion request branches",
|
||||
"unreviewed P1 capability branches",
|
||||
"SR-04 full production portal deployment beyond read-only/activation-ready scope",
|
||||
"memory search activation"
|
||||
]
|
||||
},
|
||||
"deployment": {
|
||||
"memory_search": "disabled",
|
||||
"gitea_sentinel": "enabled-or-required-before-promotion",
|
||||
"user_data_isolation_gate": "required-before-memory-or-admin-cross-context-data",
|
||||
"admin_workbench": "read-only visibility slice only after isolation gate",
|
||||
"sr04_full_portal_integration": "deferred-until-post-c5-or-explicit-owner-approval"
|
||||
},
|
||||
"acceptance_required": [
|
||||
"getRuntimeStatus",
|
||||
"getBaseline",
|
||||
"createBranch",
|
||||
"createPatch",
|
||||
"Gitea branch consistency sentinel healthy",
|
||||
"SR-02 watcher tests pass",
|
||||
"user data isolation acceptance pass",
|
||||
"admin workbench read-only RBAC check"
|
||||
],
|
||||
"rollback_policy": {
|
||||
"memory_search": "keep disabled",
|
||||
"sr04": "disable admin/portal visibility slice if RBAC or isolation check fails",
|
||||
"gitea": "enter autonomous safe mode if consistency drift detected"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user