Skip to content

Latest commit

 

History

History
183 lines (154 loc) · 12.2 KB

RELEASE.md

File metadata and controls

183 lines (154 loc) · 12.2 KB

Local release and acceptance

Product scope

The executable target is a loopback workspace with real local model proposals, retained collaboration and bounded interpreted games. The separate public-looking repository scenario remains a deterministic example. It is not evidence of a public agent network or autonomous adoption.

Publication preparation uses command-scoped core.autocrlf=false and compares raw working bytes with staged blobs for explicitly immutable (-text) paths, including attributes introduced in the same patch. An uncertain mutation needs inspection of both staged and working content. Preserve unexpected bytes and reconcile only changes owned by that operation; never reset to hide a failure.

Section Implemented behavior Acceptance boundary
Projects Create game/library, search/filter, independent fork, archive/restore, JSON and Git-history export Up to 40 projects per workspace; no remote Git push/pull server
Source Retained files, model changes and new JavaScript modules One reviewed file per task, at most 20 files / 120,000 source characters for new proposals
Issues Open, discuss, close/reopen, attach to task, close transactionally on merge 100 issues per project; no destructive history deletion
Chat General/project messages, source-linked tasks, model discussion Saved agent discussion capability is enforced; local operator remains distinct
Tasks Built-in or authenticated saved Builder, separate Reviewer, cancellation, restart interruption Two local calls, maximum eight minutes or smaller configured duration; no automatic retry
Pull requests Exact before/after, checks, review, comments, close/reopen, revision task, guarded merge Syntax and model review do not establish runtime correctness
Feedback Issue/PR discussion and recent failed proposals enter prompts; exact retained proposals rejected No claim of model-weight training or guaranteed improvement
Versions Exact reconstructed snapshots and merge links Refuse incomplete evidence; unmerged work never appears as a version
Timeline Live persisted actions, author/project filters, inference receipts Explicit polling and pause; no fabricated events
Owned agents Owner lookup, immutable configuration snapshot, repository/version checks and allowed actions Local proposal mode only; external provider configurations cannot launch
Identity Local accounts, profiles, sessions, saved configurations, OAuth code flows Real GitHub/Google sign-in requires the owner's OAuth app settings
Language lab Model-authored bounded DSL, rules, strategies, loss feedback and spectator replay Finite host interpreter; arbitrary generated code is not executed
Database Transactional revisions, normalized projects/jobs/events/issues, indexes, conditional reads Embedded PGlite is the verified local mode; external PostgreSQL load/HA remains unqualified
Operations Health, diagnostics, focused/full checks, checksum-protected migrations, cold snapshots Snapshot verification is integrity checking; rehearse restores before relying on disaster recovery

Start and complete a contribution

  1. npm ci, npm run build, npm start. Open http://127.0.0.1:4173.
  2. Start the installed local model with npm run model:start.
  3. Open Agent workspace > Projects. Create a library or game; new projects have a README and an explicitly empty module, not fabricated implementation.
  4. Open Issues, describe a concrete behavior and attach it to a task. Select the built-in Builder, or sign in and select a saved local agent.
  5. Run agents. Inspect raw receipts, retained source, syntax result and Reviewer. Reject/close or create a revision task when necessary. Merge explicitly only after inspecting the change. The merge advances vN and closes its linked issue.
  6. Export the project or its Git history. Other projects can fork the accepted source independently; archived source stays readable.

Saved agent policy

Use provider local, model cz-local-coder, and either an empty repository scope or commons/<project-id>. propose is required. discuss permits Builder chat messages and star permits its star action. The host always retains proposal evidence; disabling discussion does not erase that audit trail. Reviewer is a separate host-controlled call, not an extra privilege of the Builder.

On start, the workspace resolves the agent through the identity service using the request's session cookie. Missing ownership, stale configuration, incompatible provider/model or out-of-scope project fails before inference. The selected configuration is frozen into the task. Its name, instructions and capabilities become part of the shared local workspace export; do not put secrets in them. Later edits do not silently change a running task. Local calls have zero provider charges; local compute use remains real. External spending is unavailable.

Natural-language obedience cannot be absolute. API schemas, host-assigned roles, capabilities, cancellation, deadlines and hash-bound merge conditions enforce the actual boundary. Source and messages never grant permissions.

AI Git and ordinary Git

npm run aigit -- capabilities discovers ai-git/1; read [runId] returns the Commons snapshot. apply request.json submits one explicit operation, with the expected run ID and workspace version in arguments. Conflicts are not retried. COMMIT_ZERO_URL must be loopback HTTP. For an owned-agent task, provide an existing session through COMMIT_ZERO_SESSION; the CLI does not save or print it.

{"protocol":"ai-git/1","operation":"chat.send","arguments":{"runId":"<uuid>","version":6,"repoId":"","message":"A concrete observation"}}

The existing cz-agent/1 scenario query protocol stays compatible and read-only. The new vocabulary wraps validated Commons routes; it is not a new programming language or a public authentication system.

Export Git history emits the documented Git fast-import format. Import into a new empty bare repository with git init --bare project.git, then run git -C project.git fast-import with the downloaded .fi file as binary stdin (for example git -C project.git fast-import < project.fi in Git Bash). Every retained merged version becomes a commit on main. Source bytes and parentage are tested with Git itself. Unknown initial timestamps use epoch zero and say so in the message. Exported commits are not historical Git commits or signed model identities. No repository code or hooks are executed by the export.

Database operations

Migration 005 stores issues separately in commons_issues, keyed by run/project with unique issue numbers and state constraints. Issue changes do not rewrite project source. Existing snapshots without issues retain their exact export shape. Applied migrations 001-004 remain immutable. Actor/permission snapshots and links are additive JSON fields; they do not rewrite old model evidence.

After stopping services, run npm run db:snapshot to retain both embedded stores and their SHA-256 manifest under runtime/backups. A live writer lock, linked directory or external PostgreSQL configuration makes the command fail closed. Run npm run db:verify-snapshot -- <directory> to check every retained file. Do not treat the older active-scenario JSON export as a full database backup.

Rehearse recovery by copying a verified snapshot to a new workspace-local directory, opening it with the intended migration set, and comparing retained records. Keep the original snapshot immutable and preserve the current database. Do not replace a live store, delete its lock, or use a newer migrated store with older code. External deployments require their own pg_dump, restore and isolation qualification.

Release verification and open deployment gates

npm run check is the mandatory gate: lint, repository checks, Node tests, build, compiled DOM/axe checks and HTTP serving. The current source must match the stable hash in .cache/verification/latest-full.json; retain release evidence separately under runtime/verification. Browser checks and actual model trials have separate receipts; mocked tests never count as inference or runtime test evidence.

The full grouped browser command now writes a separate stable-source receipt at .cache/verification/latest-browser-suite.json, with actual JSON reporter counts for each required group. Preserve both it and latest-full.json under runtime/verification. CI uploads full and browser summaries as separate artifacts, including failed/running states when available. A readiness probe, focused spec or incomplete group list cannot stand in for the browser suite.

Maintainers using .cache/publication can run npm run evidence:status to bind the current clean source commit/tree to these two receipts and the independent public checkout. The tool is read-only apart from its local report; it never fetches, copies, commits or pushes. The default reads only cached origin metadata. Use npm run evidence:status -- --github for fresh public main and Verify status for that exact public commit. current refers to source/check evidence, not model, sandbox or hosted-service qualification. A normal contributor without the maintainer's separate publication checkout does not need this publication preflight.

Public hosted deployment is still gated on TLS and account authorization for all shared writes, qualified generated-code isolation, provider/OAuth configuration, actual external PostgreSQL deployment/load and recovery tests, and native Git hosting if remote clone/push is required. Earlier qualification recorded an unavailable Docker runtime and approximately 4 GB free on C:. The 2026-10-19 mission recheck found 80.6 GB free initially on the X: workspace volume (74 GB at the 11:35 UTC check); Docker execution remains unqualified. No Docker startup, data relocation or global configuration changes were performed. Publishing source on GitHub does not establish these deployment guarantees. No hosted application service was created.

Maintainer publication preparation

The local and public histories are intentionally independent. The maintainer-only npm run publication:prepare command prepares the fixed .cache/publication checkout; ordinary contributors do not need it. Use a full local base SHA whose tree matches the last published public SHA. Both working trees must be clean, the public branch must be main, and complete current full/browser receipts must match this source and source-index version. Fetch separately and stop if it fails; the tool reads cached refs and does not establish fresh remote state.

git -C .cache/publication fetch origin main
if ($LASTEXITCODE -ne 0) { throw 'Inspect the failed fetch before continuing' }
# Replace these with the exact matching pair recorded in the latest handoff.
$baseLocal = '<full previous local commit SHA>'
$expectedPublic = '<full fetched public commit SHA>'
npm run publication:prepare -- --base-local $baseLocal --expected-public $expectedPublic

The default creates a bounded content-addressed binary patch and a report under .cache/verification, checks applicability, and verifies unchanged index bytes and source state. Review that report and patch. Repeat the same command with --stage only when ready to stage the exact tree. The command refuses redirected paths, private/runtime inputs, changed heads, mismatched bases and incomplete evidence. It uses eight-second Git deadlines and a 16 MiB patch ceiling. It is an ordinary maintainer tool, not code isolation or a concurrent-writer lock.

After successful staging, review git -C .cache/publication diff --cached, compare git -C .cache/publication write-tree with the source HEAD^{tree}, create a normal public commit, then git -C .cache/publication push origin HEAD:main. A push rejection requires inspecting the newer remote work. Preserve a partial or uncertain preparation and inspect both Git states; the tool never resets, merges, commits, pushes, fetches or creates a release/tag. The mutable report is .cache/verification/latest-publication-preparation.json; retain a copy under runtime/verification with the unit's receipts. Finish with exact-commit CI and npm run evidence:status -- --github.