Release History
Version Control Pack
Git, GitHub remote, CI, branch/tag strategy, release evidence, and backup/archive tracking for paid-beta readiness.
Current Status
Open version-control CSVTraceable Source Control Form
Save repo decisions here. Do not paste GitHub tokens, deploy keys, SSH private keys, signing passwords, or recovery codes.
Checking command-center API...
Load file here: version-control
Version Control Checks
| Phase | Status | Check | Detail | Action | Field |
|---|---|---|---|---|---|
| 1. Local Tooling | pass | Git CLI available in this shell | git version 2.45.1.windows.1 | Git is available for release history checks. | versionControl.gitInstallStatus |
| 2. Repository Baseline | pass | .git repository exists | Local repository metadata exists. | Keep the working tree auditable and commit intentionally. | versionControl.sourceControlDecision |
| 2. Repository Baseline | blocked | GitHub remote or repo URL saved | No remote URL is detectable or saved. | Save the intended GitHub repository owner/name or remote URL in the dashboard. | versionControl.repoRemoteUrl |
| 2. Repository Baseline | blocked | GitHub repo creation or push path available | You are not logged into any GitHub hosts. To log in, run: gh auth login | Authenticate GitHub CLI or save an existing remote URL in the dashboard. | versionControl.repoRemoteUrl |
| 2. Repository Baseline | blocked | Push dry-run readiness captured | Skipped because no local origin remote is configured. | Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff. | versionControl.repoRemoteUrl |
| 3. CI Release Gates | pass | .github/workflows release gates exist | .github/workflows contains nyra-command-center-ci.yml, nyra-release-rehearsal.yml. | Keep CI wired to build/test release gates. | versionControl.ciProvider |
| 4. Release Policy | pass | Branch and tag strategy saved | branch=Use main for active development and release/x.y branches for paid beta release stabilization.; tag=Use semantic version tags such as v0.1.0-alpha.1, v0.1.0-beta.1, and v1.0.0 for customer-facing release builds. | Choose release branch and tag rules, for example release/x.y branches and v0.1.0-beta.1 tags. | versionControl.releaseBranchStrategy |
| 4. Release Policy | pass | Release history handoff is readable | Recent commits: f209dbd (HEAD -> main) fix: scope vite dev dependency scan / d74613d docs: refresh clean release blocker dashboard / 336e27a docs: surface release candidate blocker queue / fafe897 docs: refresh clean no-trial dashboard / 782dd31 fix: enforce no-trial billing entitlement | Keep release handoffs tied to specific commits, tags, manifests, and checksums. | versionControl.workingTreePolicy |
| 4. Release Policy | pass | Current release HEAD is captured | HEAD=f209dbd6f377c9a6d36e850429b1b5ca3230cced; branch=main; changedPaths=1235 | Use this exact commit in the release handoff before any tag, push, or signing step. | versionControl.workingTreePolicy |
| 4. Release Policy | info | Existing release tags are auditable | Recent tags: No v* release tags found yet. | Before beta, create signed or annotated release tags only after release evidence is regenerated. | versionControl.tagStrategy |
| 5. Release Evidence | pass | Release manifest and checksums exist | Release evidence exists for 0.1.0-alpha.83. | Run release evidence generation after each clean release candidate build. | releasePackage.lastExecutableSha256 |
| 5. Release Evidence | pass | Release notes and known issues exist | Release history docs exist for 0.1.0-alpha.83: docs/release/RELEASE_NOTES_0.1.0-alpha.83.md; docs/release/KNOWN_ISSUES_0.1.0-alpha.83.md. | Keep the current release notes and known issues tied to the exact package version, manifest, checksums, and no-go boundary. | appVersion.currentVersion |
| 5. Release Evidence | pass | Release trust and version docs exist | signingDoc=true; appRoadmap=true | Keep signing/distribution and app-version docs current with dashboard decisions. | appVersion.nextVersion |
| 6. Daily Audit | info | Working tree status readable | ## main; 1235 changed path(s). Sample: A ".env for nyra.txt"; M .env.example; MM .gitignore; A .wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite; A .wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-shm; A .wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-wal; A .wrangler/state/... | Daily agents can audit changed files. | versionControl.workingTreePolicy |
| 7. Backup | pass | Backup/archive path saved | G:\My Drive\AI Stuff\NyrA Release Evidence Archive | Save where release evidence and dashboard backups should live outside the local machine. | versionControl.backupPath |
Action Queue
| Phase | Owner | Status | Action | What To Do | Field | Upload Slot | Verify |
|---|---|---|---|---|---|---|---|
| 2. Repository Baseline | User | Waiting on handoff | GitHub remote or repo URL saved | Save the intended GitHub repository owner/name or remote URL in the dashboard. | versionControl.repoRemoteUrl |
version-control | npm run version:control-pack && npm run test:version-control-pack |
| 2. Repository Baseline | User + Codex | Waiting on handoff | GitHub repo creation or push path available | Authenticate GitHub CLI or save an existing remote URL in the dashboard. | versionControl.repoRemoteUrl |
version-control | npm run version:control-pack && npm run test:version-control-pack |
| 2. Repository Baseline | User + Codex | Waiting on handoff | Push dry-run readiness captured | Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff. | versionControl.repoRemoteUrl |
version-control | npm run version:control-pack && npm run test:version-control-pack |
Release Handoff Blockers
| Step | Status | Blocker | Detail | Next Action | No-Go Rule |
|---|---|---|---|---|---|
| 1 | blocked | Review dirty working tree | 1235 changed path(s) need review before tag, push, or signing. | Reviewed git status and intentional commit plan for every release-bound change. | Do not tag, push, or sign from an unreviewed dirty tree. |
| 2 | blocked | Save GitHub remote | No local origin remote or saved repo URL is available. | Dashboard versionControl.repoRemoteUrl or local origin remote points to the intended private GitHub repo. | Do not run push or tag handoffs against an unknown remote. |
| 3 | blocked | Authenticate GitHub push path | You are not logged into any GitHub hosts. To log in, run: gh auth login | GitHub CLI auth status or browser-created repo access is confirmed without storing tokens in repo files. | Do not mark GitHub push ready until auth or a saved browser-created remote path is proven. |
| 4 | blocked | Capture push dry-run | Skipped because no local origin remote is configured. | Output from git push --dry-run origin HEAD is copied into release handoff evidence. | Do not push, tag, or sign until a non-mutating push dry-run succeeds for the chosen remote. |
| 6 | blocked | Produce signing or store-trust evidence | Microsoft Artifact Signing Handoffs Missing; current release evidence is unsigned internal-alpha only or not saved. | Sanitized Authenticode/store listing evidence in the code-signing upload slot; no private keys or signing secrets. | Do not mark paid beta ready until the installer is signed or store-trusted. |
| 7 | blocked | Create release tag after blockers clear | No v* release tag is present on HEAD. | Annotated release tag for 0.1.0-alpha.83 created only after dirty-tree, remote, dry-run, evidence, and signing gates pass. | Do not create or move release tags from automation while any prior checklist item is blocked. |
Safe Command Sequence
| Phase | Owner | Command | Purpose | No-Go Rule |
|---|---|---|---|---|
| 0. Dashboard Sync | Codex | npm run version:control-pack && npm run test:version-control-pack |
Refresh local git/GitHub/CI evidence and command-center state. | Do not rely on old repo status before release work. |
| 1. Local Tooling | User | git --version |
Confirm Git is available in the shell that builds release evidence. | If git is missing, leave repo creation/commit/tag work blocked. |
| 2. Repository Baseline | Codex | git status --short --branch |
Verify branch, remote tracking, and changed files before release work. | Do not publish customer builds from unaudited local changes. |
| 2. Repository Baseline | Codex | git log --oneline --decorate -n 20 |
Capture the bounded commit history used for release notes, handoff packets, and tag decisions. | Do not summarize release history from memory; read the current local commits first. |
| 2. Repository Baseline | Codex | git tag --list "v*" --sort=-v:refname |
List existing release tags before choosing the next alpha, beta, or customer-facing tag. | Do not reuse or overwrite an existing release tag. |
| 2. Repository Baseline | User + Codex | git push --dry-run origin HEAD |
Check whether the chosen remote can accept the current branch without pushing code. | Only run after the intended remote URL is saved; dry-run output is evidence, not a substitute for review. |
| 2. Repository Baseline | User + Codex | & 'C:\Users\porte\AppData\Local\NyrA\tools\gh\gh.exe' auth status |
Confirm local GitHub CLI can create/push the selected private repository. | If gh is missing or unauthenticated, keep remote creation/push blocked until a browser-created repo URL is saved. |
| 2. Repository Baseline | Codex | npm run tools:install-gh |
Install or refresh the portable GitHub CLI under the NyrA local tools folder without requiring admin rights. | Do not call the GitHub remote path ready until gh is authenticated or a browser-created remote URL is saved. |
| 3. CI Release Gates | Codex | npm run command-center:build && npm run build:clean |
Keep generated dashboard evidence and clean release gates reproducible before CI is wired. | No paid beta until clean release gates pass locally and the CI path is approved. |
| 3. CI Release Gates | Codex | npm run test:github-actions-workflows |
Verify GitHub Actions CI/release rehearsal workflows match the command-center release gates. | Do not treat CI as configured unless workflow files are present and checked for required gates. |
No-Go Rules
- No paid beta release without traceable source-control history for the shipped build.
- No customer build is published from unaudited local changes.
- No GitHub personal access tokens, SSH private keys, or CI secrets belong in dashboard files.
Pack JSON
{
"schemaVersion": 1,
"generatedAt": "2026-07-18T13:46:27.760Z",
"status": "VERSION_CONTROL_WAITING_ON_HANDOFFS",
"label": "Version Control Waiting On Handoffs",
"local": {
"packageVersion": "0.1.0-alpha.83",
"gitAvailable": true,
"gitVersion": "git version 2.45.1.windows.1",
"gitError": "",
"gitExecutable": "git",
"hasGitDirectory": true,
"hasGitHubDirectory": true,
"hasGitHubWorkflows": true,
"gitHubWorkflowFiles": [
"nyra-command-center-ci.yml",
"nyra-release-rehearsal.yml"
],
"githubCliAvailable": true,
"githubCliExecutable": "C:\\Users\\porte\\AppData\\Local\\NyrA\\tools\\gh\\gh.exe",
"githubCliVersion": "gh version 2.93.0 (2026-05-27)",
"githubCliAuthenticated": false,
"githubCliAuthSummary": "You are not logged into any GitHub hosts. To log in, run: gh auth login",
"currentBranch": "main",
"currentHeadCommit": "f209dbd6f377c9a6d36e850429b1b5ca3230cced",
"currentHeadShort": "f209dbd",
"remoteUrl": "",
"pushDryRunReady": false,
"pushDryRunStatus": "blocked",
"pushDryRunDetail": "Skipped because no local origin remote is configured.",
"statusSummary": "## main; 1235 changed path(s). Sample: A \".env for nyra.txt\"; M .env.example; MM .gitignore; A .wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite; A .wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-shm; A .wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-wal; A .wrangler/state/...",
"statusBranch": "## main",
"statusChangedPathCount": 1235,
"statusSampleChangedPaths": [
"A \".env for nyra.txt\"",
"M .env.example",
"MM .gitignore",
"A .wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite",
"A .wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-shm",
"A .wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-wal",
"A .wrangler/state/v3/r2/miniflare-R2BucketObject/bfdcad5a3a1b4abcd3582fe7a31e40450384be48edd5a689f5a9776893de8bbf.sqlite",
"A .wrangler/state/v3/r2/miniflare-R2BucketObject/bfdcad5a3a1b4abcd3582fe7a31e40450384be48edd5a689f5a9776893de8bbf.sql..."
],
"recentReleaseHistory": [
"f209dbd (HEAD -> main) fix: scope vite dev dependency scan",
"d74613d docs: refresh clean release blocker dashboard",
"336e27a docs: surface release candidate blocker queue",
"fafe897 docs: refresh clean no-trial dashboard",
"782dd31 fix: enforce no-trial billing entitlement",
"12b01a6 docs: refresh clean cloud publish dashboard",
"a266c70 chore: publish refreshed dashboard state to cloud",
"9180b37 docs: refresh clean standup dashboard",
"6478f82 feat: add daily standup fill-in workbench",
"002412f docs: refresh clean version control dashboard",
"a93e126 chore: require cloud ingest in daily automations",
"98abb5e docs: refresh command center after cloud ingest",
"c2aefc3 feat: safely ingest cloud dashboard handoffs",
"afcd9c0 docs: refresh command center after cloud upload routing",
"d03f88d feat: route cloud uploads into agent review",
"07f8d8e docs: refresh clean command center after upload brief routing",
"1fae7a2 docs: refresh command center after upload daily brief routing",
"36e0a31 feat: preserve upload routing in daily brief",
"4ecd965 docs: refresh command center after upload review routing",
"432bc2b chore: queue agent review for dashboard uploads"
],
"recentReleaseTags": [],
"releaseHistoryReadable": true,
"releaseTagsReadable": true,
"releaseNotesPath": "docs/release/RELEASE_NOTES_0.1.0-alpha.83.md",
"knownIssuesPath": "docs/release/KNOWN_ISSUES_0.1.0-alpha.83.md",
"releaseNotesExists": true,
"knownIssuesExists": true
},
"releaseHistory": {
"handoffRule": "Before paid beta, record branch, commit, tag, manifest path, SHA256SUMS path, and signing/store trust evidence. Do not push, tag, or rewrite history from automation until the dirty tree has been reviewed.",
"releaseHandoffChecklist": [
{
"order": 1,
"label": "Review dirty working tree",
"status": "blocked",
"detail": "1235 changed path(s) need review before tag, push, or signing.",
"requiredEvidence": "Reviewed git status and intentional commit plan for every release-bound change.",
"noGoRule": "Do not tag, push, or sign from an unreviewed dirty tree."
},
{
"order": 2,
"label": "Save GitHub remote",
"status": "blocked",
"detail": "No local origin remote or saved repo URL is available.",
"requiredEvidence": "Dashboard versionControl.repoRemoteUrl or local origin remote points to the intended private GitHub repo.",
"noGoRule": "Do not run push or tag handoffs against an unknown remote."
},
{
"order": 3,
"label": "Authenticate GitHub push path",
"status": "blocked",
"detail": "You are not logged into any GitHub hosts. To log in, run: gh auth login",
"requiredEvidence": "GitHub CLI auth status or browser-created repo access is confirmed without storing tokens in repo files.",
"noGoRule": "Do not mark GitHub push ready until auth or a saved browser-created remote path is proven."
},
{
"order": 4,
"label": "Capture push dry-run",
"status": "blocked",
"detail": "Skipped because no local origin remote is configured.",
"requiredEvidence": "Output from git push --dry-run origin HEAD is copied into release handoff evidence.",
"noGoRule": "Do not push, tag, or sign until a non-mutating push dry-run succeeds for the chosen remote."
},
{
"order": 5,
"label": "Refresh release evidence",
"status": "pass",
"detail": "Release notes, known issues, manifest, and SHA256SUMS exist for 0.1.0-alpha.83.",
"requiredEvidence": "docs/release/RELEASE_NOTES_0.1.0-alpha.83.md, docs/release/KNOWN_ISSUES_0.1.0-alpha.83.md, docs/release/builds/0.1.0-alpha.83/release-manifest.json, and docs/release/builds/0.1.0-alpha.83/SHA256SUMS.txt.",
"noGoRule": "Do not create a release tag unless release notes, known issues, manifest, and checksums match the shipped version."
},
{
"order": 6,
"label": "Produce signing or store-trust evidence",
"status": "blocked",
"detail": "Microsoft Artifact Signing Handoffs Missing; current release evidence is unsigned internal-alpha only or not saved.",
"requiredEvidence": "Sanitized Authenticode/store listing evidence in the code-signing upload slot; no private keys or signing secrets.",
"noGoRule": "Do not mark paid beta ready until the installer is signed or store-trusted."
},
{
"order": 7,
"label": "Create release tag after blockers clear",
"status": "blocked",
"detail": "No v* release tag is present on HEAD.",
"requiredEvidence": "Annotated release tag for 0.1.0-alpha.83 created only after dirty-tree, remote, dry-run, evidence, and signing gates pass.",
"noGoRule": "Do not create or move release tags from automation while any prior checklist item is blocked."
}
],
"releaseBlockerSummary": [
{
"order": 1,
"label": "Review dirty working tree",
"status": "blocked",
"detail": "1235 changed path(s) need review before tag, push, or signing.",
"nextAction": "Reviewed git status and intentional commit plan for every release-bound change.",
"noGoRule": "Do not tag, push, or sign from an unreviewed dirty tree."
},
{
"order": 2,
"label": "Save GitHub remote",
"status": "blocked",
"detail": "No local origin remote or saved repo URL is available.",
"nextAction": "Dashboard versionControl.repoRemoteUrl or local origin remote points to the intended private GitHub repo.",
"noGoRule": "Do not run push or tag handoffs against an unknown remote."
},
{
"order": 3,
"label": "Authenticate GitHub push path",
"status": "blocked",
"detail": "You are not logged into any GitHub hosts. To log in, run: gh auth login",
"nextAction": "GitHub CLI auth status or browser-created repo access is confirmed without storing tokens in repo files.",
"noGoRule": "Do not mark GitHub push ready until auth or a saved browser-created remote path is proven."
},
{
"order": 4,
"label": "Capture push dry-run",
"status": "blocked",
"detail": "Skipped because no local origin remote is configured.",
"nextAction": "Output from git push --dry-run origin HEAD is copied into release handoff evidence.",
"noGoRule": "Do not push, tag, or sign until a non-mutating push dry-run succeeds for the chosen remote."
},
{
"order": 6,
"label": "Produce signing or store-trust evidence",
"status": "blocked",
"detail": "Microsoft Artifact Signing Handoffs Missing; current release evidence is unsigned internal-alpha only or not saved.",
"nextAction": "Sanitized Authenticode/store listing evidence in the code-signing upload slot; no private keys or signing secrets.",
"noGoRule": "Do not mark paid beta ready until the installer is signed or store-trusted."
},
{
"order": 7,
"label": "Create release tag after blockers clear",
"status": "blocked",
"detail": "No v* release tag is present on HEAD.",
"nextAction": "Annotated release tag for 0.1.0-alpha.83 created only after dirty-tree, remote, dry-run, evidence, and signing gates pass.",
"noGoRule": "Do not create or move release tags from automation while any prior checklist item is blocked."
}
],
"currentHandoffSnapshot": {
"packageVersion": "0.1.0-alpha.83",
"branch": "main",
"headCommit": "f209dbd6f377c9a6d36e850429b1b5ca3230cced",
"headShort": "f209dbd",
"tagOnHead": "",
"hasReleaseTagOnHead": false,
"workingTreeClean": false,
"changedPathCount": 1235,
"dirtyTreeReviewRequired": true,
"manifestPath": "docs/release/builds/0.1.0-alpha.83/release-manifest.json",
"sha256SumsPath": "docs/release/builds/0.1.0-alpha.83/SHA256SUMS.txt",
"signingEvidenceRule": "Paid beta requires signed or store-trusted installer evidence before tag/push/signing handoff can be marked ready."
},
"signingReadiness": {
"status": "ARTIFACT_SIGNING_HANDOFFS_MISSING",
"label": "Microsoft Artifact Signing Handoffs Missing",
"readyForSignedBuild": false,
"mode": "artifact-signing",
"missingHandoffCount": 5,
"evidencePath": "docs/launch_command_center/windows-signing-readiness.json",
"preflightCommand": "npm run release:windows-signing:preflight",
"signedBuildCommand": "npm run build:windows:signed",
"noGoRule": "Do not create a release tag or mark paid beta ready until the signing preflight is ready and sanitized signed/store-trusted installer evidence exists."
},
"recentCommits": [
"f209dbd (HEAD -> main) fix: scope vite dev dependency scan",
"d74613d docs: refresh clean release blocker dashboard",
"336e27a docs: surface release candidate blocker queue",
"fafe897 docs: refresh clean no-trial dashboard",
"782dd31 fix: enforce no-trial billing entitlement",
"12b01a6 docs: refresh clean cloud publish dashboard",
"a266c70 chore: publish refreshed dashboard state to cloud",
"9180b37 docs: refresh clean standup dashboard",
"6478f82 feat: add daily standup fill-in workbench",
"002412f docs: refresh clean version control dashboard",
"a93e126 chore: require cloud ingest in daily automations",
"98abb5e docs: refresh command center after cloud ingest",
"c2aefc3 feat: safely ingest cloud dashboard handoffs",
"afcd9c0 docs: refresh command center after cloud upload routing",
"d03f88d feat: route cloud uploads into agent review",
"07f8d8e docs: refresh clean command center after upload brief routing",
"1fae7a2 docs: refresh command center after upload daily brief routing",
"36e0a31 feat: preserve upload routing in daily brief",
"4ecd965 docs: refresh command center after upload review routing",
"432bc2b chore: queue agent review for dashboard uploads"
],
"recentTags": [],
"pushReadiness": {
"command": "git push --dry-run origin HEAD",
"status": "blocked",
"ready": false,
"detail": "Skipped because no local origin remote is configured.",
"noGoRule": "Capture a successful dry-run push against the chosen remote before tag, push, or signing handoff is marked ready."
},
"handoffDocuments": [
{
"label": "Release notes",
"path": "docs/release/RELEASE_NOTES_0.1.0-alpha.83.md",
"status": "present"
},
{
"label": "Known issues",
"path": "docs/release/KNOWN_ISSUES_0.1.0-alpha.83.md",
"status": "present"
},
{
"label": "Release manifest",
"path": "docs/release/builds/0.1.0-alpha.83/release-manifest.json",
"status": "present"
},
{
"label": "SHA256 sums",
"path": "docs/release/builds/0.1.0-alpha.83/SHA256SUMS.txt",
"status": "present"
}
],
"requiredCommands": [
"git status --short --branch",
"git log --oneline --decorate -n 20",
"git tag --list \"v*\" --sort=-v:refname",
"git push --dry-run origin HEAD"
]
},
"checks": [
{
"id": "git-cli",
"phase": "1. Local Tooling",
"owner": "User",
"status": "pass",
"label": "Git CLI available in this shell",
"detail": "git version 2.45.1.windows.1",
"action": "Git is available for release history checks.",
"dashboardField": "versionControl.gitInstallStatus",
"noGoRule": "Paid release work must have git available so tags, remotes, and branch state can be verified."
},
{
"id": "git-repository",
"phase": "2. Repository Baseline",
"owner": "User + Codex",
"status": "pass",
"label": ".git repository exists",
"detail": "Local repository metadata exists.",
"action": "Keep the working tree auditable and commit intentionally.",
"dashboardField": "versionControl.sourceControlDecision",
"noGoRule": "No paid beta release without traceable source-control history for the shipped build."
},
{
"id": "github-remote",
"phase": "2. Repository Baseline",
"owner": "User",
"status": "blocked",
"label": "GitHub remote or repo URL saved",
"detail": "No remote URL is detectable or saved.",
"action": "Save the intended GitHub repository owner/name or remote URL in the dashboard.",
"dashboardField": "versionControl.repoRemoteUrl",
"noGoRule": "No public paid release until the source repo and release evidence location are known."
},
{
"id": "github-cli-auth",
"phase": "2. Repository Baseline",
"owner": "User + Codex",
"status": "blocked",
"label": "GitHub repo creation or push path available",
"detail": "You are not logged into any GitHub hosts. To log in, run: gh auth login",
"action": "Authenticate GitHub CLI or save an existing remote URL in the dashboard.",
"dashboardField": "versionControl.repoRemoteUrl",
"noGoRule": "No paid beta release until source history can be pushed to the chosen GitHub repository."
},
{
"id": "push-dry-run-readiness",
"phase": "2. Repository Baseline",
"owner": "User + Codex",
"status": "blocked",
"label": "Push dry-run readiness captured",
"detail": "Skipped because no local origin remote is configured.",
"action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
"dashboardField": "versionControl.repoRemoteUrl",
"noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
},
{
"id": "github-workflows",
"phase": "3. CI Release Gates",
"owner": "Codex",
"status": "pass",
"label": ".github/workflows release gates exist",
"detail": ".github/workflows contains nyra-command-center-ci.yml, nyra-release-rehearsal.yml.",
"action": "Keep CI wired to build/test release gates.",
"dashboardField": "versionControl.ciProvider",
"noGoRule": "No paid beta release without a repeatable CI or documented release verification path."
},
{
"id": "release-tag-strategy",
"phase": "4. Release Policy",
"owner": "User + Codex",
"status": "pass",
"label": "Branch and tag strategy saved",
"detail": "branch=Use main for active development and release/x.y branches for paid beta release stabilization.; tag=Use semantic version tags such as v0.1.0-alpha.1, v0.1.0-beta.1, and v1.0.0 for customer-facing release builds.",
"action": "Choose release branch and tag rules, for example release/x.y branches and v0.1.0-beta.1 tags.",
"dashboardField": "versionControl.releaseBranchStrategy",
"noGoRule": "No customer build is published without a retraceable branch/tag policy."
},
{
"id": "release-history-readable",
"phase": "4. Release Policy",
"owner": "Codex",
"status": "pass",
"label": "Release history handoff is readable",
"detail": "Recent commits: f209dbd (HEAD -> main) fix: scope vite dev dependency scan / d74613d docs: refresh clean release blocker dashboard / 336e27a docs: surface release candidate blocker queue / fafe897 docs: refresh clean no-trial dashboard / 782dd31 fix: enforce no-trial billing entitlement",
"action": "Keep release handoffs tied to specific commits, tags, manifests, and checksums.",
"dashboardField": "versionControl.workingTreePolicy",
"noGoRule": "No release notes or handoff packet is treated as traceable unless it names the exact commit/tag and matching release evidence."
},
{
"id": "release-head-snapshot",
"phase": "4. Release Policy",
"owner": "Codex",
"status": "pass",
"label": "Current release HEAD is captured",
"detail": "HEAD=f209dbd6f377c9a6d36e850429b1b5ca3230cced; branch=main; changedPaths=1235",
"action": "Use this exact commit in the release handoff before any tag, push, or signing step.",
"dashboardField": "versionControl.workingTreePolicy",
"noGoRule": "No release tag or signed package handoff is complete without the exact source commit captured."
},
{
"id": "release-tag-audit",
"phase": "4. Release Policy",
"owner": "Codex",
"status": "info",
"label": "Existing release tags are auditable",
"detail": "Recent tags: No v* release tags found yet.",
"action": "Before beta, create signed or annotated release tags only after release evidence is regenerated.",
"dashboardField": "versionControl.tagStrategy",
"noGoRule": "No paid beta handoff should rely on an untagged or unverified release build."
},
{
"id": "release-evidence",
"phase": "5. Release Evidence",
"owner": "Codex",
"status": "pass",
"label": "Release manifest and checksums exist",
"detail": "Release evidence exists for 0.1.0-alpha.83.",
"action": "Run release evidence generation after each clean release candidate build.",
"dashboardField": "releasePackage.lastExecutableSha256",
"verificationCommand": "npm run release:evidence && npm run release:candidate:preflight",
"noGoRule": "No release candidate is handed to a customer without manifest and checksum evidence."
},
{
"id": "release-notes-known-issues",
"phase": "5. Release Evidence",
"owner": "Codex",
"status": "pass",
"label": "Release notes and known issues exist",
"detail": "Release history docs exist for 0.1.0-alpha.83: docs/release/RELEASE_NOTES_0.1.0-alpha.83.md; docs/release/KNOWN_ISSUES_0.1.0-alpha.83.md.",
"action": "Keep the current release notes and known issues tied to the exact package version, manifest, checksums, and no-go boundary.",
"dashboardField": "appVersion.currentVersion",
"verificationCommand": "npm run release:evidence && npm run version:control-pack",
"noGoRule": "No release handoff is complete unless the shipped version has matching release notes and known issues."
},
{
"id": "release-docs",
"phase": "5. Release Evidence",
"owner": "Codex",
"status": "pass",
"label": "Release trust and version docs exist",
"detail": "signingDoc=true; appRoadmap=true",
"action": "Keep signing/distribution and app-version docs current with dashboard decisions.",
"dashboardField": "appVersion.nextVersion",
"noGoRule": "Release decisions must be visible in the dashboard and generated docs before paid launch."
},
{
"id": "working-tree-state",
"phase": "6. Daily Audit",
"owner": "Codex",
"status": "info",
"label": "Working tree status readable",
"detail": "## main; 1235 changed path(s). Sample: A \".env for nyra.txt\"; M .env.example; MM .gitignore; A .wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite; A .wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-shm; A .wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-wal; A .wrangler/state/...",
"action": "Daily agents can audit changed files.",
"dashboardField": "versionControl.workingTreePolicy",
"noGoRule": "Do not publish a build when changed files are unaudited or outside the intended release scope."
},
{
"id": "backup-archive",
"phase": "7. Backup",
"owner": "User + Codex",
"status": "pass",
"label": "Backup/archive path saved",
"detail": "G:\\My Drive\\AI Stuff\\NyrA Release Evidence Archive",
"action": "Save where release evidence and dashboard backups should live outside the local machine.",
"dashboardField": "versionControl.backupPath",
"noGoRule": "Do not rely on a single local folder for business-critical launch evidence."
}
],
"actions": [
{
"id": "github-remote",
"source": "version-control-pack",
"phase": "2. Repository Baseline",
"priority": "P0",
"owner": "User",
"status": "Waiting on handoff",
"label": "GitHub remote or repo URL saved",
"detail": "No remote URL is detectable or saved.",
"action": "Save the intended GitHub repository owner/name or remote URL in the dashboard.",
"evidenceNeeded": "Save versionControl.repoRemoteUrl in the dashboard and upload sanitized repo/CI evidence to version-control.",
"dashboardPage": "pages/version-control.html",
"dashboardField": "versionControl.repoRemoteUrl",
"uploadSlot": "version-control",
"verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
"noGoRule": "No public paid release until the source repo and release evidence location are known."
},
{
"id": "github-cli-auth",
"source": "version-control-pack",
"phase": "2. Repository Baseline",
"priority": "P0",
"owner": "User + Codex",
"status": "Waiting on handoff",
"label": "GitHub repo creation or push path available",
"detail": "You are not logged into any GitHub hosts. To log in, run: gh auth login",
"action": "Authenticate GitHub CLI or save an existing remote URL in the dashboard.",
"evidenceNeeded": "Save versionControl.repoRemoteUrl in the dashboard and upload sanitized repo/CI evidence to version-control.",
"dashboardPage": "pages/version-control.html",
"dashboardField": "versionControl.repoRemoteUrl",
"uploadSlot": "version-control",
"verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
"noGoRule": "No paid beta release until source history can be pushed to the chosen GitHub repository."
},
{
"id": "push-dry-run-readiness",
"source": "version-control-pack",
"phase": "2. Repository Baseline",
"priority": "P0",
"owner": "User + Codex",
"status": "Waiting on handoff",
"label": "Push dry-run readiness captured",
"detail": "Skipped because no local origin remote is configured.",
"action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
"evidenceNeeded": "Save versionControl.repoRemoteUrl in the dashboard and upload sanitized repo/CI evidence to version-control.",
"dashboardPage": "pages/version-control.html",
"dashboardField": "versionControl.repoRemoteUrl",
"uploadSlot": "version-control",
"verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
"noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
}
],
"safeCommands": [
{
"id": "refresh-version-control-pack",
"phase": "0. Dashboard Sync",
"owner": "Codex",
"command": "npm run version:control-pack && npm run test:version-control-pack",
"purpose": "Refresh local git/GitHub/CI evidence and command-center state.",
"noGoRule": "Do not rely on old repo status before release work."
},
{
"id": "install-git-check",
"phase": "1. Local Tooling",
"owner": "User",
"command": "git --version",
"purpose": "Confirm Git is available in the shell that builds release evidence.",
"noGoRule": "If git is missing, leave repo creation/commit/tag work blocked."
},
{
"id": "repo-status-check",
"phase": "2. Repository Baseline",
"owner": "Codex",
"command": "git status --short --branch",
"purpose": "Verify branch, remote tracking, and changed files before release work.",
"noGoRule": "Do not publish customer builds from unaudited local changes."
},
{
"id": "recent-release-history",
"phase": "2. Repository Baseline",
"owner": "Codex",
"command": "git log --oneline --decorate -n 20",
"purpose": "Capture the bounded commit history used for release notes, handoff packets, and tag decisions.",
"noGoRule": "Do not summarize release history from memory; read the current local commits first."
},
{
"id": "release-tag-audit",
"phase": "2. Repository Baseline",
"owner": "Codex",
"command": "git tag --list \"v*\" --sort=-v:refname",
"purpose": "List existing release tags before choosing the next alpha, beta, or customer-facing tag.",
"noGoRule": "Do not reuse or overwrite an existing release tag."
},
{
"id": "push-dry-run",
"phase": "2. Repository Baseline",
"owner": "User + Codex",
"command": "git push --dry-run origin HEAD",
"purpose": "Check whether the chosen remote can accept the current branch without pushing code.",
"noGoRule": "Only run after the intended remote URL is saved; dry-run output is evidence, not a substitute for review."
},
{
"id": "github-cli-auth-check",
"phase": "2. Repository Baseline",
"owner": "User + Codex",
"command": "& 'C:\\Users\\porte\\AppData\\Local\\NyrA\\tools\\gh\\gh.exe' auth status",
"purpose": "Confirm local GitHub CLI can create/push the selected private repository.",
"noGoRule": "If gh is missing or unauthenticated, keep remote creation/push blocked until a browser-created repo URL is saved."
},
{
"id": "portable-github-cli-install",
"phase": "2. Repository Baseline",
"owner": "Codex",
"command": "npm run tools:install-gh",
"purpose": "Install or refresh the portable GitHub CLI under the NyrA local tools folder without requiring admin rights.",
"noGoRule": "Do not call the GitHub remote path ready until gh is authenticated or a browser-created remote URL is saved."
},
{
"id": "ci-release-gate",
"phase": "3. CI Release Gates",
"owner": "Codex",
"command": "npm run command-center:build && npm run build:clean",
"purpose": "Keep generated dashboard evidence and clean release gates reproducible before CI is wired.",
"noGoRule": "No paid beta until clean release gates pass locally and the CI path is approved."
},
{
"id": "github-actions-workflow-check",
"phase": "3. CI Release Gates",
"owner": "Codex",
"command": "npm run test:github-actions-workflows",
"purpose": "Verify GitHub Actions CI/release rehearsal workflows match the command-center release gates.",
"noGoRule": "Do not treat CI as configured unless workflow files are present and checked for required gates."
}
],
"dashboardFields": [
"versionControl.sourceControlDecision",
"versionControl.gitInstallStatus",
"versionControl.repoProvider",
"versionControl.repoOwner",
"versionControl.repoName",
"versionControl.repoRemoteUrl",
"versionControl.ciProvider",
"versionControl.releaseBranchStrategy",
"versionControl.tagStrategy",
"versionControl.workingTreePolicy",
"versionControl.backupPath",
"versionControl.repoConnectedDate"
],
"handoffs": {
"waitingOnUser": 3,
"waitingOnCodex": 0,
"requiredBlockedChecks": 3
},
"counts": {
"checks": 15,
"passedChecks": 10,
"blockedChecks": 3,
"totalActions": 3,
"userActions": 3,
"codexActions": 2,
"safeCommands": 10
},
"outputs": {
"json": "docs/launch_command_center/version-control-pack.json",
"csv": "docs/launch_command_center/version-control-pack.csv",
"report": "docs/launch_command_center/VERSION_CONTROL_PACK.md",
"dashboard": "docs/launch_command_center/pages/version-control.html"
}
}