Operations
This page is the operational entrypoint for runtime checks, deployment-adjacent verification, and recovery-oriented fast paths.
Tool / Contract Summary
- Runtime/contract behavior is defined in
compose.yaml,config/**, and verifier scripts underscripts/**. - Feature-to-test mapping is canonical in MODULE_FEATURES.md (
docs/MODULE_FEATURES.md). - Backlog and issue evidence progression is tracked in AUTONOMOUS_BACKLOG.md (
docs/AUTONOMOUS_BACKLOG.md).
Current Verified State
- Repo validation surfaces are implemented and runnable from this repository.
- Live verification paths exist for guardrails, OIDC bridge behavior, and contract consumers.
- External-owner runtime dependencies remain external and must not be replaced with local shadow logic.
Quick Verify Paths
Repo-fast:
python scripts/validate-identity-claim-vocabulary.py --contract config/identity/claim-vocabulary.v2.yaml
python scripts/validate-stackwide-claim-session-core.py --contract config/identity/stackwide-claim-session-core.v1.yaml
python scripts/validate-admitted-surface-client-contracts.py --admitted-surfaces config/clients/admitted-surfaces.v1.yaml
python scripts/verify-runtime-materialization-drift.py
python -m unittest tests.test_validate_stackwide_claim_session_core tests.test_validate_admitted_surface_client_contracts
Runtime guardrails:
python scripts/verify-runtime-guardrails-v1.py
python scripts/verify-runtime-guardrails-v1.py --live-host <host> --ssh-user <user> --remote-repo-path <path>
python scripts/verify-runtime-materialization-drift.py --live-host <host> --ssh-user <user> --remote-repo-path <path>
python scripts/validate-plane-oidc-runtime.py --base-url http://<internal-runtime-redacted>:18091 --require-login-redirect
python scripts/host_materialize_issue281_heddle_owner_checkout_reconcile.py --host <live-host> --ssh-user <ssh-user> --remote-repo-path <remote-repo-path>
python scripts/verify_issue281_heddle_owner_checkout_reconcile.py --host <live-host> --ssh-user <ssh-user> --remote-repo-path <remote-repo-path>
Bridge/runtime checks:
python scripts/validate-plane-oidc-runtime.py --base-url <plane-url> --insecure
python scripts/validate-loom-oidc-runtime.py --base-url <loom-url> --insecure
Reed context gateway service client reconcile, Host172 production parameters:
python scripts/reconcile-reed-context-gateway-service-client.py \
--fabric-readiness-url `api/v`1/identity/agent-federation/readiness \
--fabric-read-token-env AGENT_RECONCILE_FABRIC_AUTH_TOKEN
--fabric-readiness-urlmust point at the agent-federation readiness endpoint above, which returnscurrent_fabric_revision. The genericjhf-fabric-api/readyendpoint does not return this field and is the wrong target.--fabric-read-token-envnames an environment variable; on Host172 its value comes from the repo-owned.envfile in this checkout.- The reconciler also talks to the internal Keycloak target
http://<internal-runtime-redacted>:18090, whose admin password on Host172 lives at/var/lib/jhf-heddle/keycloak-admin-password.
Readiness / Drift / Monitoring
- Contract/readiness checks are fail-closed where upstream truth is required.
- Drift and stale-revision posture is validated via dedicated scripts.
- Runtime materialization must be compared across repo truth, active compose config, container env, and app readback instead of trusting only one layer.
- Operational evidence should be bounded (timeouts, limited log windows, no unbounded followers).
Recovery and Fail-Closed Notes
- Use bounded diagnostics only; avoid indefinite streams and high-pressure loops.
- Re-runs must be idempotent; verify a second execution path explicitly.
- On missing or contradictory upstream truth, preserve fail-closed behavior instead of local fallback authoring.
Related Runbooks
- runbooks/BOOTSTRAP.md (
docs/runbooks/BOOTSTRAP.md) - runbooks/BACKUP_RESTORE.md (
docs/runbooks/BACKUP_RESTORE.md) - runbooks/SECRET_ROTATION.md (
docs/runbooks/SECRET_ROTATION.md) - HOST_DOCKER_LOG_GUARDRAILS.md (
docs/HOST_DOCKER_LOG_GUARDRAILS.md)
License: AGPLv3 Project: https://helpifyr.com
Workspace Git/Scan Guardrails (Mandatory)
- Gitea is Source of Truth; local Windows workspaces are disposable working copies.
- Never run Codex sessions on
<local-workspace-redacted>root; always use a concrete repo path. - Limit active repo sessions to 2-3 in parallel.
- Before each run in a repo:
git fetch --prune,git checkout <branch>,git pull --ff-only. - No background git discovery loops (
git status,git ls-files, worktree scans) without explicit scoped need. - Automation scripts must run repo-scoped only, never global over
<local-workspace-redacted>.
scan_and_fix Standard
scripts/scan_and_fix.shmust enforce runner timeout + single-run lock +.envfallback to<local-env-redacted>and<local-env-redacted>.scripts/scan_open_issues_repo_only.shmust exist and query only current repo open issues via Gitea API.- On Windows workers the nested live-run dispatch must resolve a usable Git Bash binary and avoid the broken WindowsApps WSL shim; set
SCAN_AND_FIX_BASH_EXEexplicitly when auto-detection is insufficient. - Normal operational run:
bash scripts/scan_and_fix.sh --executor-cmd "<bounded executor command>"
- Default queue scope is the live open Gitea issue set for
JaddaHelpifyr/jhf-heddle, bounded to 20 issues unless overridden. blocked_externalissues are intentionally deprioritized behind repo-owned work in the same queue.- Repo-scoped dry-run:
bash scripts/scan_and_fix.sh --dry-run --max-issues 20
- Repo-scoped bounded live dispatch:
bash scripts/scan_and_fix.sh --max-issues 20 --executor-cmd "<bounded executor command>"
- No root-wide queue scans are allowed; the helper must only address
JaddaHelpifyr/jhf-heddle.
Workspace Hygiene
- Daily cleanup: stale
_worktrees/*,_tmp/*,test-results/*, large temporary artifacts. - Weekly cleanup: stale local branches/worktrees.
- Never leave valuable artifacts as untracked files in workspace root.
Dirty-State Policy
- Dirty state is allowed while actively implementing.
- Before new scan/automation runs: commit/stash, or use a dedicated worktree.
- Never propagate
dirty_unknownstates.
Incident Playbook (git.exe storm)
- Identify parent of
git.exe(usually oneCodex.exe). - Stop only the offending process tree.
- Restart session on concrete repo path.
- Reduce parallel sessions.
- Verify
git.execount drops within 30-60s.