Skip to content

SUCCESSOR Ω — operator, developer and verifier handbook

Research notice · Bilingual first session · Architecture · Acceptance matrix · Ascension bindings · Distribution packs

Supported operating profile

The supported default is a private, single-operator native installation. The shipped mission uses public synthetic non-personal events and a closed aggregation grammar. No wallet, model download, API key or paid provider is needed. The static browser workspace and native operator have different evidence scopes. Neither establishes independent customer Alpha, specialist ASI or production authority.

Install the wheel, matching requirements-agent.lock, SHA256SUMS and install_agent.py from one release, following the minimal installation guide. Use Python 3.11–3.13. The commands below run from any working directory with that installed environment activated; they do not require a source checkout. Alternatively replace alpha-agent with .venv-agent/bin/alpha-agent on macOS/Linux or .venv-agent\Scripts\alpha-agent.exe on Windows. Use the matching virtual environment's python for the verifier and Python examples. An offline installation additionally needs the matching dependency wheelhouse; an installed offline rehearsal needs no network.

Keep --home before the subcommand. It selects private persistent identity, journal and local role-key state. Example output names below are deliberately new: the CLI refuses existing output files/directories rather than overwriting them.

For command discovery, use alpha-agent successor-help --language en (or fr), then alpha-agent successor-demo --help. If the executable is not found, follow the environment activation and troubleshooting instructions.

One-command native mission

alpha-agent --home ./successor-state successor-demo --output ./successor-evidence

A new home is initialized automatically. The programme underwrites bounded evidence, constructs competing compositions, freezes a complete release, examines fresh workloads, records the local decision, runs matched memory/control trials, exercises permission/revocation boundaries and restores portable knowledge into a clean temporary institution. The command prints the request UUID, public key, local verdict and qualification status. A measured loss is a valid run.

Bounds can be made explicit:

alpha-agent --home ./bounded-state successor-demo --output ./bounded-evidence --seed 42 --max-events 1000 --max-candidates 4 --formation-trials 2

The request allows seed 0..4294967295, 64..20000 events per workload, 2..12 candidate budget and 1..6 matched formation trials. Eight unique grammar configurations exist; a larger budget does not create fictitious extra candidates. The request seed controls development; fresh final workloads use custodian entropy after freeze.

Output Meaning
request.json Complete normalized version-one request with its UUID. Keep it for resumption and return verification.
result.json Request-bound signed native evidence, full study, lifecycle records and explicit local scope.
REPORT.txt Readable English or French summary. Machine keys and verdict identifiers remain stable.
portable.json Signed public institutional knowledge/history package with empty active proof and grants.
checkpoint.json Journal position accompanying that portable snapshot; retain a trusted copy separately.
public-key.txt Local journal public key. Pin it through an independent channel before relying on future imports.

The private home is not an export. It contains the journal identity key, API token, configuration and successor-principals/ role keys. Do not publish it or put it on the public site. Public keys copied from the same untrusted package as a signature do not authenticate that package.

Interrupt, inspect, resume and export

Ctrl+C records an interrupted run. The original request survives in the demo output directory because it is written before execution. Inspect the request's request_id and use it as REQUEST_UUID below:

alpha-agent --home ./successor-state successor-show REQUEST_UUID
alpha-agent --home ./successor-state successor-run ./successor-evidence/request.json --resume --output ./resumed-result.json
alpha-agent --home ./successor-state successor-export REQUEST_UUID --output ./retained-result.json
alpha-agent --home ./successor-state verify

successor-show exposes authenticated phase progress and recorded failure state. Explicit --resume permits continuation of the same frozen request after inspection. Completed phases are retained rather than rerun as new measurements. A changed request under the same UUID is rejected. Changed release bytes, expired prerequisites, revoked evidence or uncertain effectful actions require their own recovery decision; --resume does not override them.

New bounded lifecycle invocations retain their exact canonical output atomically with tool completion. If the process stops before job acceptance or phase caching, resumption finishes that handoff using the recorded output rather than repeating measurements. An older completed invocation without retained output stops for inspection; its missing result is never reconstructed by silently rerunning the work.

successor-export reproduces the completed retained return and does not remeasure performance. A resumed successor-run writes its signed result file; it does not recreate all six files of a successor-demo directory. Do not rerun successor-demo over an existing output folder. Use new request/output identities for a genuinely new experiment.

The existing pause control is respected at bounded checkpoints:

alpha-agent --home ./successor-state pause
alpha-agent --home ./successor-state resume

The resume control above clears the operator pause condition. It is different from successor-run --resume, which explicitly continues an interrupted request. Neither restores revoked proof, increases a budget or grants authority.

Troubleshooting and safe repetition

Situation Next action
The output already exists Keep it as evidence. Use a new output path for a new run; do not delete a partial demo directory before recovering its saved request.
You interrupted a demo Read request_id in its request.json, inspect successor-show, then use the explicit resume command above with the same home and request.
The saved request was edited Recover the original exact request for that UUID, or create a new experiment. An edited request cannot reuse the old identity or evidence.
A completed run needs another copy Use successor-export REQUEST_UUID with a new output filename. Export does not generate fresh measurements.
Qualification says HOLD or the incumbent wins Read REPORT.txt and the measured comparisons. These are valid outcomes, not instructions to relax proof requirements.
Browser import reports a request mismatch Restore the original browser request.json before importing its corresponding native result.json. Do not substitute a later request.
Signature or checkpoint verification fails Preserve the rejected files and compare against the separately retained key/checkpoint. Do not replace the trusted key with one supplied by the failed import.
Source or environment no longer matches a freeze Keep the historical evidence and create a new release/request/freeze under the current environment; never patch old source hashes.
A portable restore refuses the destination Select a new home; restoration never merges state. A private backup instead uses the separate restore command.

For a clean new rehearsal, select new --home and --output directories. This creates a separate local identity; it is not a migration of the previous institution. Preserve old journals, exports and checkpoints. There is no destructive reset command needed for the documented workflow.

Verify a file return

For a browser-exported request:

alpha-agent --home ./browser-run-state successor-run request.json --output result.json
alpha-agent successor-verify result.json --request request.json
alpha-agent successor-verify result.json --request request.json --public-key TRUSTED_RAW_PUBLIC_KEY_HEX

The first verification checks exact normalized request/evidence bindings and validates any included signature, but the included signer remains untrusted. The second additionally authenticates the signer against the separately retained 32-byte raw Ed25519 public key, encoded as 64 hexadecimal characters. TRUSTED_RAW_PUBLIC_KEY_HEX is an operator-supplied placeholder, not a key learned from an incoming document. The browser's optional trust-key field has the same meaning.

This return signs the bytes represented by its evidence digest. It is distinct from the historical plugin wheel signature, which signs the complete wheel bytes. Neither format may be substituted for the other. Verification checks record integrity/authenticity; it does not independently establish truthful timings or re-execute the mission.

Fresh examination: verifier handbook

The installed package contains a separately executable fresh evaluator:

python -m alpha_factory_v1.core.runtime.successor.evaluation --input freeze.json --output receipt.json

freeze.json must be the exact native freeze object, not a browser evidence file or an entire native result envelope. For an already verified native result.json, this installed-package Python example extracts it without modifying it:

from pathlib import Path
from alpha_factory_v1.core.runtime.successor.protocol import canonical
from alpha_factory_v1.core.runtime.successor.transport import read_document
result = read_document(Path("result.json"))
frozen = result["evidence"]["study"]["generation_one"]["freeze"]
with Path("freeze.json").open("xb") as output:
    output.write(canonical(frozen))

Run the fresh evaluator with the matching installed implementation and declared environment. It verifies the exact aggregation/evaluation/formation source digests, mission semantics, policy, memory, comparator set, cost rule, protocol and host fingerprint. A changed Python version, OS fingerprint, implementation or rule refuses the old freeze. Create a new release and freeze for requalification; do not edit a frozen manifest and present it as the same examined subject.

The evaluator creates a new measurement ID, fresh workload commitment and timings. The output is an unsigned local measurement record. The operator lifecycle binds it into separately signed typed records and a signed result. A fresh receipt.json is not automatically a trusted ProofReceipt, an admission or a grant. The process accepts at most 1 MiB of freeze input. Output must be a new path. --stdio exposes the same bounded internal transport for integrators.

The frozen local protocol executes 12 newly generated valid workloads, correctness/rejection checks, paired system comparisons and separately traced Python peak allocations. It records the actual comparison, failures, uncertainty, measured effort, exclusions and unknown costs. tracemalloc peak is not total resident memory. The workload is the sampling unit; repeated timings are not extra independent experiments. Current and Beta are complete fixed alternatives, not a hindsight per-case best-system oracle. Formation, proof and switching assumptions are accounted for explicitly; unknown money/review costs remain unknown and block economic Alpha.

A verifier operating outside candidate control must retain the frozen release/protocol before generating final evidence, keep final workloads, labels, entropy and credentials inaccessible to formation, record all examinations and failures, and prevent feedback from being used to continue the same candidate trial. Changes require a new candidate identity. Record organizational/control independence, custody, funding/conflicts, protocol control, replication and validity. The shipped local process reports same-operator custody honestly; another local process, role name or key does not change that fact. A genuinely external qualification needs independently configured trust, external examination and the additional mission-designation requirements. It is not established by running this command on another terminal.

Developer API and schema contract

Generate the machine-readable schema from an installed package:

alpha-agent successor-schemas --output successor-schemas.json

alpha_factory_v1.core.runtime.successor is an additive module of the existing runtime. Version one requires strict records, UTF-8, sorted printable ASCII object keys, unique keys, scalar Unicode strings and exact safe integers. There are no committed floating-point values. General JSON is bounded to 2 MB, 32 nesting levels and 100,000 nodes; individual entry points may impose smaller bounds. Unknown fields, unsupported versions, nonfinite numbers, negative zero and malformed Unicode are rejected. Requests normalize their declared defaults before hashing and returning all fields.

New commitments are SHA-256 over successor-omega/v1: + ASCII domain + NUL + canonical bytes. Time/resource units belong to their named fields; atomic token values remain explicit decimal strings. UTC validity is separate from measurement nanoseconds. canonical-vectors.json and schemas.json are package data available via importlib.resources without a checkout. Historical journal serialization, signatures and Solidity ABI/double-keccak commitments retain their original formats. See the exact Ascension boundary.

Installed Python interface Responsibility and caller obligation
protocol.RehearsalRequest, canonical, digest, safe_json_loads Validate/normalize requests and bounded records. Preserve domain and exact bytes.
orchestration.rehearse(home, request, resume=False) Durable complete local lifecycle and signed result; use explicit retry semantics.
transport.request_from_file, verify_result Bounded file intake and exact request/result verification. Supply trust separately.
mission.run_study, GrammarSupplier, OpenAICompatibleSupplier Measured research study and replaceable bounded generation. A study alone creates no authority.
evaluation.evaluate_frozen Fresh exact-release local examination. Prefer the separate process for custody separation.
trust.TrustRegistry, TrustAnchor, SignedEnvelope, sign_record Operator-installed principal roles and attributable signatures. Incoming records cannot install roots.
state.SuccessorStore Journal-backed institution, release, proof, admission, grant, evidence, memory and lineage transitions.
state.ActionGateway Only explicitly installed fixed tool/action handlers. Integrator must enforce the real execution boundary.
jobs.compile_jobs, JobDispatcher Typed graph validation, sealing, dispatch, action-time checks, acceptance and bounded recovery.

State mutation methods include register_release, record_proof, admit, grant, dispatch_action, execute_action, revoke, impair, cutover, recover, descendant, record_evidence, admit_memory and revoke_evidence. They enforce exact subject, current dependencies, principal roles and applicable resource/validity restrictions. Mutating workflows use idempotency identities and the journal's serialized transactions. execute_action rechecks authority at execution; a dispatch receipt does not preserve a revoked permission. No permission is synthesized from fragments of separate grants.

Typed signed record domains include proof/verifier, admission/admission, authority/authority, execution/controller and job-acceptance/acceptance. TrustRegistry.verify requires the domain and expected role. Principal trust is supplied out of band for each process. TrustRegistry.revoke(principal) changes that in-memory registry only: persist the revocation in the external trust configuration, omit the principal on restart, or record a durable institutional impairment. Grant, evidence and admission status changes are journal-backed. Do not mistake an in-memory trust mutation for a persistent revocation.

Local role credentials have local provenance. Installing an independent anchor requires a separately supplied attestation; that declaration still needs real-world evidence of independence. A producer cannot certify or admit its own release.

Graph version one rejects all cycles. Each job has finite attempts/repair routes and required evidence, control, challenge and rollback obligations. JobDispatcher.execute_tool revalidates a previously dispatched job before invoking its installed handler. A crash leaving an uncertain effect is not automatically replayed; the accountable controller must inspect and recover it. Work acceptance, negative candidate verdict, settlement, memory admission and production admission remain distinct. Do not translate an accepted negative evaluation into a passing candidate.

Signed job-recovery decisions must name the exact institution_id, job_id, authorization_id and a nonempty reason. Inspect the latest attempt before signing: a decision for an earlier authorization cannot close or charge a later attempt. Legacy decisions containing only a job ID and reason must be replaced with an explicitly scoped decision.

The maintained OpenAI-compatible supplier is an explicit Python adapter using the existing bounded provider transport. There is no implicit live provider or successor-run --provider option. An integrator deliberately supplies a RuntimeConfig to OpenAICompatibleSupplier and supplies that adapter to run_study. Record configuration, usage, errors, costs and pinning limits. Deterministic adapters remain labelled deterministic; errors do not trigger a fixture-as-model fallback. Default release evidence tests deterministic substitution, not real-model replacement.

These Python integration interfaces do not expose a public production-control server. The default local operator server retains its existing authentication/origin/body limits. Any effectful handler must enforce filesystem, network, credential and subprocess restrictions at the actual boundary. Arbitrary generated code uses the existing explicit Docker path; a Python policy check does not sandbox arbitrary host code. No unavailable Docker fallback runs on the host.

Threat model and residual limits

Actor / event Asset at risk Implemented control Residual limit / operator responsibility
Candidate or malicious supplied evidence Final evidence, policy, credentials Closed grammar, strict records, no candidate effects; evidence stays data; separate final process The local OS owner can inspect or modify processes. Local custody is not external independence.
Forged receipt or attacker-selected signing key Proof/admission/authority Domain-bound signatures and separately configured principal registry; browser keys never self-install Authenticate roots through an independent channel; a correct signature does not prove a measurement truthful.
Changed model, prompt, source, memory or comparator Exact proof subject Complete release commitments; frozen validation and claim-specific impairment Remote model weights cannot be pinned by a request log. Requalify observed supplier changes.
Concurrent jobs, retries or queued revocation Shared budgets and permitted effects Atomic reservation, cumulative grant limits, idempotent effects and action-time revalidation Unknown external billing or human effort is not controllable expenditure; dependent claims remain blocked.
Power loss during an effect Journal, accounting, duplicate external effect Durable intent/result records; uncertain effects require explicit recovery Some real effects cannot be rolled back; the installed handler and principal must supply a valid recovery contract.
Replayed old but correctly signed history Later revocations and lineage Separately retained journal checkpoint and exact portable snapshot binding A checkpoint stored only with its package cannot detect rollback; retain and update an independent anchor.
Corrupt, oversized or hostile import Availability and state integrity Byte/depth/node limits, strict integer/Unicode rules, duplicate-key rejection, regular-file checks Parser validation is not a general document malware scanner; no imported code is executed.
Descendant or restored institution Predecessor proof and privileges Historical attribution preserved; new active proof/grants empty; explicit admission/cutover Never treat ancestry, an ENS name, token ownership or settlement as permission.
Compromised local account or copied private backup Journal identity, role keys, API token Private file permissions; public exports omit secrets; private workflows kept separate The same OS administrator controls local roots. Protect the host and maintain independently retained evidence.
Browser status edits or compromised client state Scientific interpretation Browser scope permanently local; native request/evidence verification; UI issues no grant Static UI integrity is not an authority service; validate at the native action gateway.
Faster but incorrect candidate or stronger Beta Mission utility Correctness/rejection/resource hard gates and best fixed comparator Small, noisy local experiments are descriptive; no forced Alpha or ASI designation.

The supported local run contains no production connection or mainnet action. Ascension tests use disposable local-EVM fixtures; real assets, ENS changes and externally controlled chains remain separate commissioning decisions.

Versioning, restoration and rollback policy

Protocol/portable version one is the currently implemented format. Unsupported versions and unknown fields fail explicitly; there is no automatic conversion of old signed objects into new proof. A future migration must declare its version mapping, validation and rollback behavior. Keep historical signed bytes and their original domains unchanged; never re-sign them to make predecessor claims look current.

Install upgrades into a new virtual environment and retain the old installation and exported evidence until the new version's checks pass. Source/environment changes intentionally invalidate a freeze for re-examination. Never rewrite an old frozen source hash or grant to make it pass a new build. A software rollback may restore executable bytes, but must not roll the journal behind a retained revocation/checkpoint or silently reinstate expired authority. If no valid fallback exists, keep the institution stopped.

Portable restoration requires a separately supplied source public key and an independently retained checkpoint. It preserves institutional identity and historical attribution, while active proof and grants remain empty. Configure new principals locally, reassess rights/freshness, obtain new examinations and admissions, and explicitly cut over only when all current prerequisites hold. Historical receipts remain historical. See the installed restoration commands below.

Portable export, checkpoint and clean restore

Obtain INSTITUTION_ID from payload.institution.id in the demo's portable.json. Export a current snapshot and its matching checkpoint from the authenticated source home:

alpha-agent --home ./successor-state successor-portable INSTITUTION_ID --output ./portable-current.json --checkpoint-output ./snapshot-checkpoint.json
alpha-agent --home ./successor-state successor-checkpoint --output ./latest-checkpoint.json

successor-portable writes public permitted records and a checkpoint from the same consistent snapshot. Retain a copy of that checkpoint through an independent channel before trusting later imports. successor-checkpoint captures the current journal head for independent monitoring. A newer checkpoint must not be paired with an older portable package: export a new consistent snapshot instead. A key/checkpoint supplied only inside the incoming package adds no trust.

Restore into a new home with the separately retained source key and matching checkpoint:

alpha-agent --home ./restored-state successor-restore ./portable-current.json --source-public-key TRUSTED_SOURCE_KEY_HEX --checkpoint ./snapshot-checkpoint.json

The destination must not exist. The command validates version, structure, signature, source identity and the separately retained checkpoint before creating the destination. It preserves institutional identity and lineage, but the new home starts stopped, with fresh local rehearsal role keys, no active proof, no admission, no grant and no allocated budget. It does not import predecessor credentials or automatically trust predecessor verifier keys.

Here snapshot-checkpoint.json means the matching copy you retained independently after export, not a replacement checkpoint received with an untrusted package. Substitute its actual retained path if stored elsewhere.

An operator may explicitly allocate new local resources with repeated --budget UNIT=COUNT arguments, and may explicitly provide a separately configured trust file with --trust trust.json. Neither resource allocation nor trust configuration creates a proof or grant. The trust file uses this exact version-one shape:

{
  "schema_version": 1,
  "principals": {
    "operator-owned-principal": {
      "public_key": "REPLACE_WITH_SEPARATELY_AUTHENTICATED_RAW_ED25519_HEX",
      "roles": ["controller"],
      "provenance": "local",
      "independence_attestation": ""
    }
  }
}

The public-key placeholder must be replaced; it is not a usable fixture key. Never build this trust file automatically from an incoming portable package. provenance: independent requires an externally supported attestation and appropriate real-world separation. A local label cannot establish that independence. Imported knowledge remains subject to rights, freshness and new accountable admission before influence; signed history alone cannot reactivate it. The restored institution requires current evidence, admission, scoped grants and an explicit valid cutover through the state API before any consequential action. The default CLI does not expose a shortcut that issues production authority.

Private disaster recovery: same identity and keys

A private recovery backup is a different artifact from portable.json. It contains secret material and is not a public institutional transfer. Pause the operator and retain a separately stored checkpoint alongside the private recovery procedure:

alpha-agent --home ./successor-state pause
alpha-agent --home ./successor-state backup ./private-recovery.zip
alpha-agent --home ./successor-state successor-checkpoint --output ./recovery-checkpoint.json
alpha-agent --home ./private-restored-state restore ./private-recovery.zip

The private archive includes the journal, configuration, identity key and API token. When present, it additionally preserves the complete successor-principals/ role-key set and separately configured successor-trust.json. Partial or inconsistent role-key sets are refused; historical five-member legacy backups remain supported for their original contents. An old backup that never contained SUCCESSOR role keys is not a complete role-continuity backup. Restoration requires a new destination and validates the private archive before promotion. Protect this secret-bearing archive with your private storage/transport controls; it is not an encrypted public export.

The generic restore/verify commands check internal journal authenticity, not whether a newer revocation once existed. Before resuming private restored state, verify the independently retained checkpoint using the installed API:

from pathlib import Path
from alpha_factory_v1.core.runtime.store import Journal
from alpha_factory_v1.core.runtime.successor.protocol import safe_json_loads
from alpha_factory_v1.core.runtime.successor.trust import JournalCheckpoint
checkpoint = JournalCheckpoint(**safe_json_loads(Path("recovery-checkpoint.json").read_bytes()))
checkpoint.verify(Journal(Path("private-restored-state")))

The checkpoint must have been retained separately from the incoming archive. A self-consistent older archive cannot satisfy a later checkpoint. Keep the restored operator paused while checking current trust, expiry, dependency rights, provider/source changes and uncertain effects. Only then make explicit recovery/resumption decisions. A private backup preserves recorded identity and history; it does not turn expired or revoked permissions back into current authority.

Use the actual separately retained recovery-checkpoint.json path in the verification example. A newer checkpoint must not be replaced by the archive's older checkpoint to make a rollback appear current.

Français : exploitation native et vérification

Après l'installation minimale, activez son environnement Python. Ces commandes fonctionnent sans copie du dépôt :

alpha-agent --home ./etat-successor successor-demo --output ./preuves-successor --language fr
alpha-agent successor-help --language fr

REPORT.txt est en français; les clés machine et identifiants de verdict restent stables. Le dossier contient la requête, le résultat signé, le rapport, le paquet portable, le point de contrôle et la clé publique. Le calcul est réel, mais la qualification reste HOLD et aucune autorité de production n'est attribuée. Conservez le point de contrôle et la clé publique par un canal indépendant, et gardez le dossier privé --home confidentiel.

Après Ctrl+C, inspectez le UUID de request.json, puis utilisez les mêmes paramètres et un nouveau fichier de sortie :

alpha-agent --home ./etat-successor successor-show UUID_REQUETE
alpha-agent --home ./etat-successor successor-run ./preuves-successor/request.json --resume --output ./resultat-repris.json
alpha-agent --home ./etat-successor successor-export UUID_REQUETE --output ./resultat-conserve.json
alpha-agent successor-verify ./resultat-conserve.json --request ./preuves-successor/request.json --public-key CLE_PUBLIQUE_HEX_FIABLE

La reprise réutilise les phases conservées; elle ne contourne ni révocation, ni expiration, ni limite de ressources. L'export restitue des mesures existantes sans les refaire. Une nouvelle expérience exige une nouvelle identité et de nouvelles sorties. pause/resume gère l'arrêt de l'opérateur; successor-run --resume reprend explicitement une requête.

L'examinateur installé s'exécute avec python -m alpha_factory_v1.core.runtime.successor.evaluation --input freeze.json --output receipt.json sur une seule ligne. Le fichier freeze.json est l'objet natif exact extrait comme indiqué plus haut. Il faut la même version et l'environnement déclaré. Un changement exige une nouvelle version figée, jamais la modification d'une ancienne preuve. L'examen crée de nouvelles mesures, un nouvel engagement de données et un rapport local non signé. Le cycle opérateur le lie ensuite à des enregistrements signés; ce rapport seul n'accorde aucune admission ni permission.

La séparation des processus et des clés locales n'établit pas l'indépendance. Une qualification externe exige une vraie séparation du contrôle et de la garde des données, des racines de confiance fournies séparément, des critères figés et toutes les preuves requises. Les données finales ne doivent pas revenir à la formation du même candidat.

La restauration portable conserve l'identité et l'histoire, mais laisse preuves actives et permissions vides. Le point de contrôle conservé séparément détecte un retour à un historique antérieur pourtant bien signé. Les versions inconnues sont refusées; aucune migration implicite ne réécrit ou ne re-signe les anciens documents. Un retour logiciel en arrière ne réactive jamais automatiquement une permission expirée ou révoquée. Les limites résiduelles restent celles du tableau : contrôle de l'hôte par son propriétaire, coûts externes inconnus et mesures locales descriptives.

Restauration portable et points de contrôle

successor-portable IDENTITE_INSTITUTION --output portable.json --checkpoint-output point.json exporte un instantané et son point de contrôle correspondant. successor-checkpoint --output dernier-point.json capture le dernier état pour conservation indépendante. Ne mélangez pas un ancien paquet avec un point plus récent : exportez un nouvel instantané cohérent. L'identité de l'institution se trouve dans payload.institution.id du paquet de démonstration.

alpha-agent --home ./etat-restaure successor-restore ./portable.json --source-public-key CLE_SOURCE_HEX_FIABLE --checkpoint ./point-conserve-separement.json

Le dossier de destination doit être nouveau. La restauration vérifie les liens, la signature, la clé source et le point conservé séparément avant sa création. Elle préserve l'identité et l'histoire, mais démarre arrêtée, sans preuve active, admission, permission ni budget. Les clés locales sont nouvelles. Des options répétées --budget UNITE=NOMBRE affectent explicitement de nouvelles ressources; --trust confiance.json fournit des racines configurées séparément selon le schéma ci-dessus. Ces options ne créent ni preuve ni permission. Les droits et la fraîcheur des connaissances doivent être réexaminés; une nouvelle admission et une transition autorisée restent nécessaires.

Sauvegarde privée et continuité des clés

Une sauvegarde backup contient des secrets : identité, jeton API, journal, configuration et, lorsqu'ils existent, ensemble complet de clés successor-principals/ et fichier successor-trust.json. Elle est distincte du paquet portable public et doit rester dans un stockage privé protégé. Elle n'est pas un export public chiffré. Mettez l'opérateur en pause, créez la sauvegarde et conservez un point de contrôle séparé. restore exige un nouveau dossier. Vérifiez ensuite le point conservé séparément avec JournalCheckpoint.verify comme indiqué plus haut; la seule cohérence des signatures ne prouve pas l'absence d'une révocation ultérieure. Gardez l'état restauré en pause jusqu'à la vérification des droits, expirations, dépendances et effets incertains. Une sauvegarde ancienne sans clés de rôle n'assure pas leur continuité.

Les racines de confiance sont fournies séparément à chaque processus. TrustRegistry.revoke agit en mémoire seulement : conservez la révocation dans la configuration externe, retirez le principal au redémarrage ou consignez une altération institutionnelle durable. Les révocations de permissions, preuves et admissions enregistrées au journal restent durables.