{
  "$comment": "DRAFT of the freeze manifest (architecture v0.2 §8): versions, hashes, domains, key ids, expiry dates, skew and the flight-date offset, machine-readable, checked by the verifier for drift. Seller values were read off the live infrastructure on 2026-09-07, its release on 2026-09-12, and its release, worker version and card digests again on 2026-09-14 (the card gained a second skill and the open search, D-097 to D-099), and its release and worker version on 2026-09-15 (build 58: refusal and tool text only; build 60: anonymous search budget 40 a day and 120 a month; card unchanged), and its release and worker version on 2026-09-16 (build 66: the ledger served from the instance's memory and Workers Logs on; card unchanged), and again on the night of 2026-09-16 (build 69: check 3 consults the ANS on the buyer's trust domain, D-104; card unchanged), and on 2026-09-18 (build 79: the guest tier, D-107; card unchanged), and on 2026-09-22 (build 99: the zone apex serves the zone's catalog and becomes the third pinned host, D-119; build 102, two hours later: the catalog moves to catalog.agenthaven.dev, which becomes the third pinned host, and the ARD publisher becomes the zone, D-120; card unchanged), and on 2026-09-24 (build 109: the UCP face, ucp-profile.md; build 112, that night: a UCP session carries its quote's correlation id; and on the morning of 2026-09-25, build 115: the UCP face applies the key revocation of the envelope path, D-128; build 118, the same morning: a guest buys over UCP with AP2 chains its platform issues, D-129, and a session opened signed stays signed, D-130; build 120, at noon: the UCP catalog, search and lookup, D-131; build 123, that afternoon: a mandate's jti is its issuer's, a guest's kept under its origin, and a refusal never replaces the evidence kept under its jti, D-132; build 126, half an hour later: a refusal's evidence names the checkout its chains close, over UCP the session's authorization, D-133; and on the evening of 2026-09-25, build 128: two refusals say the next step, mandate_consumed and signer_unknown for a guest, text only; card unchanged; and on 2026-09-26, build 131: an attested buyer's searches are budgeted per trust domain unless the operator exempts the domain, D-135, and the UCP vector completed by the buyer's own chains; card unchanged; and that evening, build 133: a refusal names its cause where one code has several and links the contract's page for it, D-136; and that night, build 137: search_flights takes the airlines a person allows and the quote signs them, D-138; card unchanged); buyer, authority and verifier values on 2026-09-11 and 2026-09-12; the buyer's stable key changed on 2026-09-16 under the same SPIFFE ID (F-10, instance.started at height 26). The freeze planned for 2026-09-10 did not happen; on 2026-09-12 it was set to 2026-09-25, the Friday of week 3, after the last contract changes of 2026-09-12 (buyer $defs in ledger-entry, R-05 settled, instances and checkpoint receipts on the scorecard, the authority's checkpoints). Until that date changes are versioned in git and the verifier reports drift; from it, a change to any file in this folder is a new contract version, not an edit.",
  "version": "draft-2026-09-12",
  "frozen": false,
  "freeze_status": "no freeze date since 2026-09-18: changes go on until the eve, each one step from undone; this file stays as the one place where the release and the worker version (the rollback anchor) are written together",
  "publication_check": { "local_time": "07:00", "note": "the publication vigil runs at this local time of the demonstration site on the demonstration days; the days and the site are not named in this folder" },
  "domains": {
    "seller": "travel.agenthaven.dev",
    "seller_zone": "agenthaven.dev",
    "seller_key_set_host": "dns-aid.agenthaven.dev",
    "buyer": "buyer.onbehalf.dev",
    "buyer_zone": "onbehalf.dev",
    "authority": "sealedby.dev",
    "verifier": "provedby.dev",
    "witness": "https://provedby.dev/witness",
    "external_witness": "https://witness.agentactioncapsule.org (a public transparency log operated by a third party; behind a flag on the three keepers since 2026-09-13, external-witness.md)",
    "rogue": "TBD (registered after telling the ANS registry team; second candidate name ready)"
  },
  "seller": {
    "release": "v0.1.0-137-g7b82adb",
    "worker_version_id": "874dab07-9eea-448c-b152-ef8d36e9f267",
    "previous_worker_version_id": "9118b95b-1dc5-4067-8056-05dbc34960fb",
    "fallback_release": "v0.1.0",
    "mandate_issuers": ["https://sealedby.dev"],
    "guests": { "accepted": true, "since": "2026-09-18", "ceiling_minor": 100000, "mandate_max_seconds": 600, "purchases_per_day": 20, "keys": "_agent-keys.<trust domain> TXT, DNSSEC-validated, on the A2A face; the UCP profile's keys[] on the UCP face (guest-buyer.md)" },
    "witness_url": "https://provedby.dev/witness",
    "witness_external_url": "https://witness.agentactioncapsule.org",
    "agent_card_sha256": "b162732c83c0b8cff1870a6f8ed298cb7c49e9523be583d9a3a831605276c6bd",
    "cap_sha256": "sWJzLIPAuM_xhwpvjtKYy3xJ6VI75YPZo6gxYFJ2xr0",
    "record": { "name": "travel.agenthaven.dev", "type": "SVCB", "layout": "draft-02 flat owner name" },
    "record_signature": { "kid": "dnsaid-2026-09", "alg": "ES256", "issued_at": "2026-09-07T18:34:21Z", "expires_at": "2026-12-06T18:34:21Z", "key_set_url": "https://dns-aid.agenthaven.dev/.well-known/dns-aid-jwks.json", "note": "kid is not the key's thumbprint; a rename is a production identity change and is scheduled with the ANS re-registration decision" },
    "instance": { "spiffe_id": "spiffe://agenthaven.dev/merchant/demo-travel-seller/y53CDyiqoPptlOkBPKGmxLzl7WcTDWMqII7yZtfPu2Y", "kid": "y53CDyiqoPptlOkBPKGmxLzl7WcTDWMqII7yZtfPu2Y", "svid_expires_at": "2026-12-01T13:55:01Z", "bundle_kid": "DoVbzUAb9VWHfCey7yucB02jbL9a0l4wuYfP_OXZ0NQ", "svid_url": "https://travel.agenthaven.dev/.well-known/spiffe-svid.json", "bundle_url": "https://travel.agenthaven.dev/.well-known/spiffe-bundle.json" },
    "authorization_key_set": { "url": "https://travel.agenthaven.dev/.well-known/jwks.json", "kid": "eF_VZyTpOBYDR0TXuvJF0nALLjaWIHQYWQhgbPZzMnM", "note": "Human-connector path only; not on the demo path" },
    "ans": { "agent_id": "9a311416-b877-4f0d-8ee5-1d63d047e82f", "transparency_leaf_index": 199068, "certificate_expires_at": "TBD (confirm with the ANS registry team)" },
    "certificates": {
      "travel.agenthaven.dev": { "spki_sha256": "3e974da4286b4a050da0b3e8eeb2d749d4fdcb0b501ad72c95842cbce91a4a7a", "not_after": "2026-11-25T20:47:09Z", "renewal_window_from": "2026-10-26", "tlsa": ["3 1 1 (DANE-EE, ours)", "3 0 1 (required by the ANS registration)"] },
      "dns-aid.agenthaven.dev": { "spki_sha256": "3ff63922c2b33fdc8fd26a242f36b8efedd5d1df334c97c4e57cba3570426e24", "not_after": "2026-12-01T09:27:20Z", "renewal_window_from": "2026-11-01", "tlsa": ["3 1 1 (DANE-EE, ours, since 2026-09-07)"] },
      "catalog.agenthaven.dev": { "spki_sha256": "5ac85b2b79b6b8baa4b7cf77c56d19e9d3fc7067c65360e57d896fe1244e4adc", "not_after": "2026-12-21T17:29:33Z", "renewal_window_from": "2026-11-21", "tlsa": ["3 1 1 (DANE-EE, ours, since 2026-09-22: the catalog host, where the zone index points; the apex was pinned for two hours that day and the pin was removed with the move)"] }
    },
    "dnssec": { "algorithm": "ECDSAP256SHA256", "rollover": "none scheduled; confirm" }
  },
  "buyer": { "domain": "buyer.onbehalf.dev", "tlsa": "3 1 1 c5f35e1aeb9b57648bef7ede99b3c60af49822a24a27d0e774d0471f1f15204c", "dnssec": { "ds": "15993 13 2 10f225af13b38e609381b675a37307283e738c69427ece2f30e5bbb9833bfb15", "algorithm": "ECDSAP256SHA256" }, "spire_ca_ttl_hours": 720, "spire_ca_restart": "2026-09-21", "x509_svid_ttl_hours": 1, "stable_key_hard_cap_days": 30, "stable_key_expires_at": "2026-10-09", "public_surface": ["/.well-known/spiffe-bundle.json", "/.well-known/agent-keys.json", "/ledger", "/checkpoints"] },
  "authority": { "domain": "sealedby.dev", "issuer": "https://sealedby.dev", "kid": "Mn3O1AkS1vpDIY_QU5hy1QjUZO3OMQCb7ixDJSwD0U8", "rotation": "none in v0.1 (one issuing key)", "policy_version": "2026-09-11", "tlsa": "3 1 1 e0b8eb7dcb6d20c624e371d3759c1997f86e146d49114520d18fc2dd55ed9916", "certificate_not_after": "2026-12-10T16:54:00Z", "dnssec": { "ds": "57827 8 2 e77dd223b1670b3aa7be0bde2914eb872a88d24a3b0531702ccb921540195c71", "algorithm": "RSASHA256" }, "mandate_validity_seconds": 300, "notifier": "log", "checkpoints": { "since": "2026-09-12", "witness": "https://provedby.dev/witness", "interval_seconds": 600, "key_url": "https://sealedby.dev/.well-known/jwks.json", "note": "sealed after every issuance, denial and revocation and on the timer; an unsealed checkpoint for the current head is offered again" }, "approval_link": { "single_use": true, "validity_minutes": 10, "sent_to": "the destination on record for sub (the journal while the notifier is log), never the requesting buyer" } },
  "verifier": { "domain": "provedby.dev", "tlsa": "3 1 1 bb207e7c348cf95761074d603a32c29c553362f7148986c9f33486685830b07d", "dnssec": { "ds": "14780 8 2 593ce6e45b5ea968c5d7f429fd9426abb82a60bbfed47ea29fa7629238a69e74", "algorithm": "RSASHA256" }, "report_and_witness_kid": "6fFH9Y16ZP3DDaAZnXucF3ZbsqmbXIrhbUkoJADouSw", "witness": "https://provedby.dev/witness", "run_timer_utc": "21:00" },
  "parameters": {
    "clock_skew_seconds": 60,
    "request_timestamp_window_seconds": 60,
    "nonce_retention_seconds": 120,
    "quote_validity_seconds": { "ci": 600, "demo": "set from the rehearsed approval time; 900 if needed" },
    "mandate_validity": "300 s (the authority's default)",
    "jti_retention_days_past_exp": 30,
    "refusal_budget_per_minute": { "verified_subject": 10, "unverified_source": 2, "unverified_total": 10 },
    "max_body_bytes": 65536,
    "flight_date_offset_days": 30,
    "currency": "EUR",
    "route": "MAD-LHR (rehearsal); demo route TBD",
    "revocation_time_to_first_refusal": "measured on the verifier's clock, reported as an upper bound"
  },
  "protocols": { "a2a": "0.3 (JSON-RPC)", "mcp": "2025-06-18", "dns_aid": "draft-02 (expires 2026-11-28)", "jws_alg": "ES256", "canonicalization": "RFC 8785", "quote_hash": "SHA-256 over the raw JWS payload octets", "ans_api": "v1 (v2 not deployed)", "ard": "0.91" },
  "contracts": { "jws_policy": "jws-policy.md", "canonicalization": "canonicalization.md", "reason_codes": "reason-codes.json", "threat_model": "threat-model.json", "schemas": "schemas/", "vectors": "vectors/" }
}
