Skip to content

SynthWorld 0.11.0

Choose a tag to compare

@bluntmachetti bluntmachetti released this 03 Aug 21:53
· 204 commits to main since this release
v0.11.0
236a74e

Published on PyPI as idcognito-synthworld==0.11.0 (wheel and sdist). The tag is annotated and SSH-signed; git verify-tag v0.11.0 checks it without trusting the forge.

Read this before scoring against an ambiguity pack

Nine of eleven known channels through which the ambiguity pack's answer key was recoverable from its public artifact are closed in this release. Two remain open — see #68.

If you generated evaluation packs with an earlier version, regenerate them. A system under test could reach the right answer without doing the task, so scores measured against those packs do not mean what they appear to. Regenerating with 0.11.0 does not make a pack safe against the two remaining channels; it does close the other nine, which is a large difference.

The frozen canonical pack was affected and is re-cut here, with new digests recorded in GOLDEN_REVIEW.md. Every other frozen benchmark — Asteria Agentic v1 included — is byte-identical.

The one worth understanding

Eight of the nine were metadata bound to the label: collection ordering, name pools indexed by a scenario ordinal, positional record identifiers, source types constant per scenario, repetition counts, attribute counts, a locality token, cross-listing multiplicity.

The ninth was different in kind. The substitution plan was a deterministic function of a published seed over canonical values that live in public source, so it could be recomputed and inverted rather than correlated — 0.929 disposition recovery against a 0.467 baseline, reading no identity evidence. No statistical leak detector could have found it, because there is no structure in the emitted values to detect.

generate_ambiguity_variant therefore now requires a key that is never serialized:

from synthworld.ambiguity_variants import UNKEYED, generate_ambiguity_variant

generate_ambiguity_variant(seed=42, key=UNKEYED)          # reproduces published packs
generate_ambiguity_variant(seed=42, key=secrets.token_bytes(16))  # for evaluation

A held-out seed protects surface values and nothing else — it is published inside the artifact. A held-out key protects the artifact.

New task families

Human identity-resolution ambiguity pack; oracle-free provider-shaped search projection with scoring; deterministic temporal identity worlds; broker deletion-and-reappearance scoring; consumer-neutral run receipts; a households profile; and a recoverability detector.

Contract versions

BROKER_SCORING_VERSION 2.0.0 and TEMPORAL_SCHEMA_VERSION 1.1.0 — both on schemas that have never shipped in a package, so nothing released changes meaning. Data contracts are versioned independently of the package; see DATA_DICTIONARY.md.

What's Changed

Full Changelog: v0.10.0...v0.11.0