Releases: aoci-spec/aoci-code
Release list
AOCI-CODE v0.1.0-rc5
AOCI-CODE v0.1.0-rc5 is built from 1bf1d28f32226298f72a351a8f6fa4e3d0242889.
- Stop treating a line-ending rewrite as a reason to stop governing a
repository.internal/volumegovernancecompared formal Volumes by raw
SHA-256, making it the one consumer in the repository that bypassed
baseline.EquivalentFingerprints— the function whose own contract declares
it the single entry point for that judgement — and therefore the one place
that ignoredline_ending_tolerance, which defaults to true.core.autocrlf
is the Git for Windows default, so an ordinary Windows checkout rewrote every
Volume and hard-blocked the Guide over a difference the team policy already
calls equivalent, while identical rewrites of business sources stayed
authorable. Such a difference is now reported as
code_volume_line_ending_only(withroot_,meta_, anddatabase_
siblings) carrying the repair, and does not block. - Refuse a
scanthat would publish a Baseline without the Volumes it governs.
Scan takes its inventory from Git, so a formal cognition asset covered by
.gitignore,.git/info/exclude, orcore.excludesFilewas silently absent
from the Baseline; the repository then failed far away on a blocked Guide that
named neither the rule nor the file. The refusal names both, and--dry-run
reports it rather than promising a scan that would fail. - Report Root and Meta drift. Nothing checked them, so a repository was aligned
according to Verify and Guide while every Scope Change refused over the same
bytes, and only one of those authorities named a file. Both now use the
vocabulary the Code and Database Volumes already use, under the same condition
a Scope Change refuses on. - Give new repositories the line-ending protection AOCI applies to itself.
initwrites a.gitattributesnormalizing text to LF, and never rewrites an
existing one. - Say when the base Go toolchain is older than
go.modrequires, instead of
reporting it as a supply-chain fault. Thelicensesand
opengauss-connectorgates pinGOTOOLCHAIN=localso the audit reports one
Go identity, and under that pin an older base install stops them — but
check-opengauss-connector.shwraps everygo mod downloadfailure into
"could not download the pinned upstream module", so a base install one patch
behind read as a compromised or unreachable upstream.make fullnow
compares the base toolchain against thegodirective first and, when it is
older, names both versions, explains why a plaingo versioncan disagree,
and offers either installing the newer Go or pointingGO_BINat one already
on the machine. The comparison is>=, so a newer base install is never
blocked. - Show the confirmation prompt before the phrase is read, not after the command
has exited. The library entry point buffers both writers into memory and
flushes them once Execute returns, so every TTY digest confirmation wrote its
prompt into a buffer and then blocked on stdin with nothing on screen. The
prompt carries the exact phrase the operator has to type, so the one thing
they needed was the one thing they could not see: they typed blind or gave up,
and the phrase appeared only alongside the failure. The prompt now goes
straight to the process stderr the confirmed branch has already proven is a
terminal. Everyscope approve,scope safety approve,baseline scope approve,cognition bootstrap, andcognition migrationconfirmation is
affected. - Let an approval land in a file instead of being carried by hand.
scope approve,scope safety approve, andbaseline scope approvetake
--out-file, so the artifactscope apply --approval-fileneeds is written
where it is wanted rather than printed to stdout for the operator to
redirect. Forgetting that redirect silently discarded a confirmation that
cannot be reused. The path is checked before the human is asked, so a bad
path never costs a confirmation; the file is created only when nothing is
already there, and is readable by its owner alone, because until the change is
applied anything that can read it can stand in for the human who typed the
phrase. - Give a Managed Scope posture relaxation the reviewer it always needed. Auto
authorization correctly refuses to let a posture ratify its own weakening, but
refusing was only half the contract:interaction_requiredwas derived from
the weaker desired mode, so desiringautoalso decided that no reviewer was
needed and the blocked change had no approver at all. Once left,autocould
not be re-entered by any governed path. A relaxation now reports
interaction_requiredand is authorized under the posture the current
Baseline receipt proves, so exactly onescope approveratifies it while
policy_bound_autostill refuses it and ordinary auto plans stay fully
automatic. - Stop counting a deleted file's stale Baseline record as a cognition coverage
reduction. A path the current Safe Inventory no longer sees has neither an
Entry nor source bytes left to lose, so retiring its record is bookkeeping;
excluded paths remain in the evaluation, so an existing source that still owes
an Entry is unaffected and keeps raising P1. Previously one such record — a
file deleted three weeks earlier — forced a pure policy change to high risk and
demanded a human approval that protected nothing. - Say what a Managed Scope confirmation actually approves. The prompt now leads
with the effects that matter — cognition Entries removed, files losing Index
coverage, a weakened posture, a relaxed budget, high-risk content admitted —
and states plainly when a change carries none of them. A confirmation phrase
binds the approval to one exact plan; it was never meant to be the only thing
the approver could read. - Index the three MCP black-box harnesses. They are executable contracts run by
name with their own preconditions, which is exactly what the admission rule
admits, and each Entry now carries the precondition a reader needs: conformance
expects an established repository and zero formal writes, scenarios writes only
disposable fixtures, and lifecycle needs Docker for the database suite while
repo-creaches aligned without drift. The earlier exclusion rested on a wrong
cost model — an Entry is about 110 tokens of FRAS, never the Python body — so
its recorded reason is corrected rather than deleted. Three Entries cost about
700 tokens against a 120k target. - Managed Scope approval mode is now
review: applying the harness change
required independent human review, because any Scope Change re-evaluates every
role and a Baseline record for a file deleted in82120dbtherefore appears as
a coverage reduction. Policy-bound auto authorization correctly refused it. - State the repository's verification obligations and its Whole-Index admission
rule inAGENTS.md, where every Agent session reads them. The gate table maps
a kind of change to the gate that actually covers it, and it records the fact
no gate output carries:clean-room-smoke,licenses,race,vuln, and
database-integrationrun only undermake full, so a greenmake fast
proves nothing about them. The admission rule states that a test earns an
Entry only when it is an executable contract run by name with its own
preconditions; ordinary package tests stayobserve, and a test that locks a
fact is recorded in the locked object'sS. A cross-layer test now fails when
any*_test.goacquires an Entry and when either rule is dropped from
AGENTS.md. - Have
aoci initadd the agent host configuration it just wrote to the
repository's.gitignore. Those files carry machine-bound absolute paths, and
a committed copy silently no-ops another machine'sinitbecause every
installer detects an existing entry by key presence. The timing is what made
this worth fixing ininitrather than in prose: Managed Scope roles are fixed
by the firstscan,scan --forcecannot advance them, and removing a path
afterwards is a coverage reduction that needs an approved Scope Change — so a
defaultinitthenscanused to leave a machine-bound file as a permanent
authoring target.initappends under its own marked block, never rewrites
maintainer content, skips any path Git already tracks, and does nothing when no
host configuration was written. - Split the one-step setup instruction in both public READMEs into the two turns
it always was. The index is authored through AOCI's MCP tools, and the server
initwrites is not loaded in the session that wrote it, so the old single
prompt asked the Agent to finish work it could not reach. The first
instruction now runsinitandscan, asks for any configuration a host does
not write itself, and stops with an explicit restart hand-off; the second
confirms the MCP server and builds the index.scan, which establishes the
Baseline every later step needs, was missing from the one-step path entirely. - Say in both READMEs how to tell which AOCI a host is actually connected to:
cognition_receipt.mcp_service_versionandruntime_repository_rootfrom any
Overviewcheck_onlyresponse or any Maintain response, and thecommandin
the project's.mcp.jsonor the equivalent host configuration for the binary
path. Replacing bytes on disk does not change a running MCP process. - Carry the
aoci scope acknowledgeremediation in a blocked Volumes Guide whose
Observe evidence is pending review.observe_change_policydefaults to
review_required, so an ordinary edit to any Observe-role file blocks
authoring; the Legacy Plan already routed that state to acknowledgement, while
the Volumes Guide reported a bareobserved_pendingfinding with no command.
The response now adds the scope status and acknowledge commands, an
observed_pendingstop with cause and ...
AOCI-CODE v0.1.0-rc4
AOCI-CODE v0.1.0-rc4 is built from 42928c342d76f9273d2a672420631ab1c4886e37.
- Add a narrow openGauss 6.0.5 LTS A/PG Schema Evidence collector, backed by a
reproducibly patched official Connector v1.0.8, strict remoteverify-full
TLS, fail-closed unsupported catalog handling, and disposable real-engine
acceptance without changing Evidence v1 or the nine-tool MCP surface. - Expand the fixed general-purpose Code and Database starter A/B dictionaries,
make all C importance digits from 1 through 9 available, retain optional D
grammar and the existing E scale, and useEG7Tas the starter Code example. - Reserve starter
Gfor genuinely cross-domain objects andZfor understood
objects that fit no named category; evidence gaps do not becomeZor S
constraints. The new defaults affect only fresh initialization and do not
migrate or retag repositories with an existing formal Meta. - Report exact Code candidate binding mismatches and distinguish
code_plan.batch_idfrom the cross-domainauthoring_batch.batch_identity
without changing the nine-tool MCP surface or request Schema; actual source
drift remains a stopped replan condition instead of a copied-field repair. - Expose the aggregate Check command in an authoring-required Volumes Guide and
close the final successful batch through Verify, Aggregate Check, and Guide
while preserving intermediate-batch and Legacy Entries Stage behavior. - Return the same Verify, Aggregate Check, and Guide closure directly from a
successful final Volumes Apply, while leaving paged, Legacy, and Cognition
Optimization actions unchanged. - Advance an already-managed Root fingerprint in the same Database Cognition
Bootstrap Baseline postimage as the Root descriptor update, and narrowly
reconcile the canonical historical state left by earlier Bootstrap versions. - Add a session cognition line to
aoci_search,aoci_get_entries, and
aoci_header, and an optional two-question cognition probe on a
check_onlyOverview, so a Host can tell whether it still holds the
delivered Whole-Index instead of re-requesting it. The line is computed from
session facts with no repository scan, receipt identity drift never raises
it, and the probe measures recall without advancing the refresh generation. - Grade the Whole-Index Attestation as assimilation rather than verbatim
recall: the Challenge passes at 80 percent or better with at most one object
identity miss, core F is judged by normalized token similarity that splits
Han, Kana, and Hangul into character bigrams so every Locale meets the same
floor, and object identity and Tag stay exact.failis reserved for a
foreign envelope or no correct ordinal; every other shortfall records
partial, so an honest complete-coverage claim can no longer grade below
the same answers submitted with a hedged one. - Accept
host_delivery_confirmationandmodel_cognition_attestationin one
call or in separate calls in either order. Both halves bind the same
delivered body, so the session remembers each half per body and grades the
merged evidence; an explicitly carried half supersedes the remembered one,
and a fresh complete delivery resets that memory. - Size one authoring batch for the Host tool-result window. The team key
code_cognition_batch_entries(machine default 20, wire ceiling 200) sets
how many candidates one Maintain asks the model to author inline, and
Maintain keeps per-item governance enumerations to a leading sample with
complete counts undergovernance.list_truncationandsets.review_total.
Candidates, plans, and receipts stay complete,aoci verifyandaoci check
still list every item, and the Database Evidence byte gate defaults to
64 KiB. - Return structured repair findings instead of an internal error when an
enforce-mode cognition budget rejects an Entry: every violated field carries
candidate_index,field,actual_tokens, andmax_tokens, whole-index
excess and violations outside the batch stay a batch-level stop, and a CJK
Sfield that crosses its token band is now a locatable repair. - Accept model-authored
Rexactly as written: AOCI never checks one Entry's
relations against another Entry, so a relation whose target is missing,
unmanaged, scheduled for a later batch, or ambiguous by bare name is
persisted unchanged and produces no Finding.aoci_update_entryno longer
returnsimpact_relation_unresolved,impact_relation_ambiguous, or
impact_relation_invalid; per-Entry FRAS structure, the tag dictionary, the
C-driven S quota, source binding, and the projected budget stay enforced,
and a newly authored or changed relation must still use a canonicalcode:
ordatabase://identity. - Stop letting
Rreschedule a Code authoring batch: a submitted batch is no
longer answered with a zero-writecode_candidate_relation_replan_required
replacement plan, so a repository whose Entries reference each other across
batches, including a mutually-referencing cluster larger than the machine
Code batch size, now reachesalignedin the ordinary rolling batches
instead of replanning. Receipts issued before this change still load, so a
plan already in flight survives the upgrade. - Keep
Rreferences from other Entries from blocking ordinary
aoci_remove_entryorphan removal, which no longer fails with
remove_orphan_relation_still_valid, and from making a legacyaoci.txt
Indexineligibleinaoci cognition migration snapshotwhen one relation
names a path that is gone. Any dangling annotation left behind stays
model-owned until the model's next Whole-Index read; orphan proof, Guard,
exact preimages, and the existing Entries recovery path are unchanged. - Report
Rproblems only from the Entry line itself:aoci index entries checkstill warns about that line's own form, such as an empty item, a
placeholder mixed with real targets, or a full-width comma, and those
warnings still never reject an Entry; it no longer resolves targets on disk
to warn that one is missing, duplicated, self-referencing, or not a regular
file, andaoci cognition system relationsreports no relationfindings.
The hard safety gate on the actual writepathis unchanged. - Carry the
aoci scanremediation in a blocked Volumes Guide that has no
Baseline: the response adds thescancommand, abaseline_missingstop
with cause and safe next action, and the instruction to author nothing
before a Baseline exists. An initialized Volumes repository with zero
Entries is completed through scan, Guide, and no-argument Maintain;
aoci cognition bootstrapgoverns only an uninitialized repository or the
exact zero-Entry Legacy minimal skeleton. - Roll a partially written
[code,database]receipt batch forward when the
identical evidence-bound candidates are resubmitted, so an interruption
between the Code and Database writes finishes the remaining Volume instead
of stopping atcode_candidate_plan_stalebehind a pending
.aoci/transactionsreceipt; the roll-forward still requires a version-4
recovery receipt proving that Volume's own postimage, and the fixed
Code-then-Database order,[code], and[database]batches are unchanged. - Carry the plan-time Curation exclusions in the managed-scope-change envelope
ascuration_exclusionsand replay them when verifying after publication,
so a reviewedcuration.jsonexclude decision for an already baselined path
applies and archives as one transaction instead of leaving a complete
transaction that can never be archived; envelopes without the field keep
recomputing exclusions from the current Baseline, andenvelope_versionis
unchanged. - Keep the partition facts of mid-level tables when linking multi-level
PostgreSQL partitioning: a table that is both a partition and a partition
parent now recordsparent_objectandboundwhile retaining
partitioned,method,expression, and anychild_objectsalready
linked to it, instead of being rewritten as a non-partitioned leaf; the
narrow non-partitioned openGauss profile and Evidence v1 are unchanged. - Name the cause when
aoci initstops with
managed_scope_auto_authorization_blocked: the bilingual message now
separates tracked paths excluded by a built-in safety rule (up to five
named, the rest as a +N remainder) from a profile that assigns no path to
the index role and from configured exact high-risk opt-ins, pointing the
first two ataoci scope safetyand--scope-profile production;--json
reportserror_codeas that machine code instead of the genericconfig,
and the exit code is unchanged. - Record the effective apply authorization mode in the Managed Scope Baseline
receipt asapply_authorization_mode, and raise
approval_policy_relaxationwhen a Scope Change runs under a mode weaker
than the one that receipt records; that risk ishigh, blocks
policy_bound_auto, and forces interaction underlegacy, so a team's
review posture can no longer be lowered and self-ratified inside the same
transaction. A receipt written before this field is not retroactively
blocked, so the guarantee starts at the first receipt that records a mode;
an unrecognized recorded mode fails closed. - Accept a Managed Scope Baseline receipt recorded under the opposite
filesystem case semantics when every managed path provably takes the same
role and the same fingerprint participation under both, so a Baseline
established on a case-sensitive checkout no longer stops a case-insensitive
one withscope_change_required. The receipted value becomes the reported
desired_policy_identity; any real case divergence leaves
alternate_policy_identityempty and keeps the stop. - Route every read-only Git query against a scanned repository through one
hardened invocation that disablescore.fsmonitor, `core.hooks...
AOCI-CODE v0.1.0-rc3
AOCI-CODE v0.1.0-rc3 is built from 05d15b25039d76508120bceb025cec833c96b475.
- Add an explicit
cognition_optimizationintent toaoci_maintainso a user
can ask the model to review already-aligned Code Entries without source
drift, while keeping ordinary maintenance behavior unchanged. - Select optimization candidates deterministically from current Entry cost and
C-band budget facts, require complete Entry submissions, and preserve the
rule that AOCI itself does not generate, truncate, or compress semantics. - Keep unchanged optimization submissions free of formal Index or Baseline
writes, and reuse the existing atomic update, Baseline, Managed Scope,
Recovery, and checkpoint paths for replacements and retries. - Fix explicit Volumes Code and all-scope maintenance routing without changing
Legacy or Database Cognition boundaries. - Improve the bilingual public README, release-first one-step installation
guidance, and self-contained Release archive branding. - Preserve the nine MCP tool names and their stable identity, FRAS v2, and the
existing Index and Baseline formats.
The first public availability date for v0.1.0-rc3 is 2026-08-10.
See docs/install.md and docs/supply-chain.md for asset verification.
AOCI-CODE v0.1.0-rc2
AOCI-CODE v0.1.0-rc2 is built from e48a0a28ce1681ffd743db328d21f123a1219cbe.
- Improve evidence-backed S-field authoring guidance for high-importance
cognition objects while preservingS:-when no qualifying constraint exists. - Prevent neighboring Entries from determining the current object's S field,
and add bilingual authoring-contract and compatibility coverage. - Make signed-package installation and verification links usable from Release
archives, and clarify source-build versus signed-binary version identity. - Preserve the existing public Specs, FRAS v2 machine contract, and nine-tool
MCP surface.
The first public availability date for v0.1.0-rc2 is 2026-08-10.
See docs/install.md and docs/supply-chain.md for asset verification.
AOCI-CODE v0.1.0-rc1
AOCI-CODE v0.1.0-rc1 is built from 71a30ada334146fc084f63c558d80cbfd3fb06dd.
- Establish the public AOCI-CODE CLI and MCP runtime under the canonical Go
modulegithub.com/aoci-spec/aoci-code. - Preserve the
aocibinary and the reviewed nine-tool MCP contract. - Publish the public runtime contracts under
spec/public/. - Add public build, test, security, integration, and supply-chain guidance.
- Prepare the FSL-1.1-MIT legal assets for authorized public distribution.
The recorded initial public availability date for v0.1.0-rc1 is 2026-08-08;
external publication remains a separate authorized action.
See docs/install.md and docs/supply-chain.md for asset verification.