diff --git a/.agnir/evidence/2026-09-18-v1.0.2-stable-publication.md b/.agnir/evidence/2026-09-18-v1.0.2-stable-publication.md new file mode 100644 index 0000000..2d400d4 --- /dev/null +++ b/.agnir/evidence/2026-09-18-v1.0.2-stable-publication.md @@ -0,0 +1,88 @@ +# Agnir v1.0.2 stable publication + +Date: 2026-09-18 + +## Authorization + +The Principal explicitly authorized publication with the command: **“那就发布v1.0.2”**. + +The authorized release scope was limited to the already accepted ChatGPT Project locator-only packaging hardening. No Core/profile semantic expansion was authorized. + +## Published result + +Agnir `v1.0.2` is published as a stable non-prerelease release. + +- publication-arm / stable source revision: `b5626394ec40a5cb7a28c01892acde07cc0adc8e`; +- tag: `v1.0.2` -> `b5626394ec40a5cb7a28c01892acde07cc0adc8e`; +- GitHub Release id: `391529372`; +- Release name: `Agnir v1.0.2`; +- draft: `false`; +- prerelease: `false`; +- published at: `2026-09-18T14:14:18Z`; +- publication workflow: `35354941029` — success; +- repository/conformance job: `105631886209` — success; +- stable publication job: `105631955191` — success; +- GitHub `releases/latest`: `v1.0.2`. + +## Release path + +Accepted implementation and release preparation receipts: + +- locator-only implementation PR: `#58`; +- implementation merge: `2c62d026c48405c3e299f0f57d6a674b3f6f9e1c`; +- implementation post-merge conformance: `35353464865` — success; +- Principal acceptance checkpoint: `4fde39128e5edf3fba3d7906a279918b1c38b7c2`; +- acceptance conformance: `35353700740`, repository job `105627739027` — success; +- release candidate branch: `release/v1.0.2`; +- pre-checkpoint candidate: `907479d79921a8733052adb3384a58270a79bee1`, run `35354730577`, job `105631181979` — success; +- checkpointed candidate: `5aa07a6df0aafba641c21db1b8b7deb72a3c2393`, run `35354791926`, job `105631387633` — success; +- release candidate PR: `#60`; +- PR synthetic-merge conformance: `35354845337`, repository job `105631565095` — success; +- authoritative release-preparation merge: `72177afbbe4e36945366faaa9096b6d9bbb04d88`; +- authoritative pre-publication run: `35354894720`, repository job `105631729092` — success; +- publication job on the ordinary release-preparation merge: skipped, as required; +- zero-tree-change publication arm: `b5626394ec40a5cb7a28c01892acde07cc0adc8e` with exact message `release: publish v1.0.2 stable`. + +## Published product change + +The stable ChatGPT Project handoff is: + +```text +Canonical Project: () +At the first substantive turn of every new conversation, open it, read root AGENTS.md, and follow it before doing Project work. +``` + +This is a locator into the Project-owned activation route, not a replacement for continuity semantics. + +The durable recovery path remains: + +`AGENTS.md -> AGNIR.md -> AGNIR.yaml -> selected durable continuity` + +The release therefore removes duplicated execution-surface procedure while preserving Agnir continuity. + +## Compatibility boundary + +Unchanged: + +- Agnir Core: `1.0`; +- profile: `repository-filesystem/1.0`; +- Project identity semantics; +- Continuity Lineage semantics; +- checkpoint/reconciliation semantics; +- historical Core/profile `0.1` and `0.2` compatibility/migration surfaces. + +This is a PATCH-level distribution/onboarding release. + +## Immutable history checks + +Publication workflow and direct host readback verified: + +- previous stable `v1.0.1` remains exactly `f56d25b22997c259c660651e7357334b063093e1`; +- `v1.0.0` remains exactly `6d16dcfd17b8e9f22fd25804e22b9f8a516d06c3`; +- accepted `v1.0.0-rc.1` remains exactly `092945289f1a0a9803e4fe0583104aa380ceaadc`. + +Published tags remain immutable by Project policy. + +## Post-publication reconciliation + +Post-publication continuity and public documentation may advance authoritative `main` beyond the immutable `v1.0.2` tag. Such commits record publication truth; they do not change the source that was published. diff --git a/.agnir/next-actions.md b/.agnir/next-actions.md index 6b1d8f1..bcfaa44 100644 --- a/.agnir/next-actions.md +++ b/.agnir/next-actions.md @@ -1,17 +1,16 @@ # Agnir Next Actions -Agnir `v1.0.1` remains the published latest stable release while repository source `1.0.2` is staged as an explicitly authorized PATCH publication candidate. Core/profile remain `1.0` / `repository-filesystem/1.0`. - -1. **Complete and publish the v1.0.2 candidate.** Require green candidate conformance, merge/reconcile onto authoritative `main`, require green post-merge conformance, then create an exact empty publication-arm commit `release: publish v1.0.2 stable`. Accept publication only after tag/Release/latest readback and immutable earlier-tag checks pass. -2. **After successful publication, reconcile stable metadata.** Update `AGNIR.yaml`, RELEASE/versioning/README surfaces, State/Next Actions, and publication Evidence so `v1.0.2` becomes the recorded latest stable while the immutable release tag continues to point to the exact publication-arm revision. -3. **Observe the accepted locator-only handoff in the next genuine fresh ChatGPT Project initialization.** Treat a future verbose handoff as a packaging regression; do not solve it by duplicating Agnir operational semantics back into Project Instructions. -4. **Optionally repair the v1.0.1 GitHub Release-body wording.** One historical cosmetic sentence omitted the literal `AGNIR.md`; any repair must update host metadata only and must not move/recreate `v1.0.1`. -5. **Complete human visual review of the refined Install-section two-session preview.** PR `#55` is published. Confirm the live install area now reads unmistakably as two different Agent sessions: Session A above, Fresh Session B below, with the “open a fresh session” divider, consistent four-point Agent icon, clean desktop/mobile balance, and usable dark/light plus English / Simplified Chinese / Japanese / Korean presentation. Also confirm the hero comparison caption now reads **“两个新会话都只收到一句:‘继续。’ 但大有不同。”** in Simplified Chinese. This is public-surface polish, not a Core or adoption gate. -6. **Recruit the first external design users and collect material adoption evidence.** The synchronized split-screen fresh-session demo v3 has passed Principal human visual review and is the primary first-contact proof surface. Prioritize genuine external cold-start resumes, second-session value, cross-Executor cases, new execution surfaces, repeat use, and independently built integrations. -7. **Keep brand/public-surface truth locked.** README, website, adoption/demo and social materials may consume approved brand assets/deterministic derivatives but must not reinterpret approved identity or Core semantics. -8. **Keep merged-head cleanup enabled.** `main` remains the sole intended long-lived authoritative branch; completed staging branches should remain retired after their material result and evidence are durably represented. -9. **Shift active product execution back to Svif where appropriate.** Svif owns its own canonical continuity and ChatGPT/Plugins publication path; do not smuggle Svif changes into Agnir maintenance. -10. **Keep FishUp production publication separate.** No FishUp main advancement without separate authorization. +Agnir `v1.0.2` is published and verified as the latest stable repository/distribution release. Core/profile remain `1.0` / `repository-filesystem/1.0`. + +1. **Operate the 1.0 line in stable-maintenance mode.** Preserve Core/profile 1.0 semantics and historical 0.1/0.2 compatibility/migration surfaces. Future patch releases must not silently expand or redefine the stable contract. +2. **Observe the accepted locator-only handoff in the next genuine fresh ChatGPT Project initialization.** Treat a future verbose handoff as a packaging regression; do not solve it by duplicating Agnir operational semantics back into Project Instructions. +3. **Optionally repair the historical v1.0.1 GitHub Release-body wording.** One cosmetic sentence omitted the literal `AGNIR.md`; any repair must update host metadata only and must not move/recreate `v1.0.1`. +4. **Complete human visual review of the refined Install-section two-session preview.** PR `#55` is published. Confirm the live install area now reads unmistakably as two different Agent sessions: Session A above, Fresh Session B below, with the “open a fresh session” divider, consistent four-point Agent icon, clean desktop/mobile balance, and usable dark/light plus English / Simplified Chinese / Japanese / Korean presentation. Also confirm the hero comparison caption now reads **“两个新会话都只收到一句:‘继续。’ 但大有不同。”** in Simplified Chinese. This is public-surface polish, not a Core or adoption gate. +5. **Recruit the first external design users and collect material adoption evidence.** The synchronized split-screen fresh-session demo v3 has passed Principal human visual review and is the primary first-contact proof surface. Prioritize genuine external cold-start resumes, second-session value, cross-Executor cases, new execution surfaces, repeat use, and independently built integrations. +6. **Keep brand/public-surface truth locked.** README, website, adoption/demo and social materials may consume approved brand assets/deterministic derivatives but must not reinterpret approved identity or Core semantics. +7. **Keep merged-head cleanup enabled.** `main` remains the sole intended long-lived authoritative branch; completed staging/checkpoint branches should remain retired after their material result and evidence are durably represented. +8. **Shift active product execution back to Svif where appropriate.** Svif owns its own canonical continuity and ChatGPT/Plugins publication path; do not smuggle Svif changes into Agnir maintenance. +9. **Keep FishUp production publication separate.** No FishUp main advancement without separate authorization. ## Install preview split-session refinement receipts @@ -98,6 +97,24 @@ Agnir `v1.0.1` remains the published latest stable release while repository sour - artifact digest: `sha256:15bd2907feec1ab772f7484fe040f42fb0b717db0e6c91c45240f013050b1fab`; - initial publication evidence: `.agnir/evidence/2026-09-14-canonical-fresh-session-demo.md`. +## v1.0.2 stable publication receipts + +- locator simplification implementation PR: `#58`, merge `2c62d026c48405c3e299f0f57d6a674b3f6f9e1c`; +- Principal acceptance checkpoint: `4fde39128e5edf3fba3d7906a279918b1c38b7c2`; +- release candidate PR: `#60`, authoritative merge `72177afbbe4e36945366faaa9096b6d9bbb04d88`; +- authoritative pre-publication conformance: run `35354894720`, repository job `105631729092` — success; +- publication arm / stable source: `b5626394ec40a5cb7a28c01892acde07cc0adc8e`; +- publication workflow: `35354941029` — success; +- publication repository job: `105631886209` — success; +- stable publication job: `105631955191` — success; +- stable tag: `v1.0.2` -> `b5626394ec40a5cb7a28c01892acde07cc0adc8e`; +- GitHub Release id: `391529372`; +- published at: `2026-09-18T14:14:18Z`; +- latest stable readback: `v1.0.2`; +- previous `v1.0.1`: unchanged at `f56d25b22997c259c660651e7357334b063093e1`; +- `v1.0.0`: unchanged at `6d16dcfd17b8e9f22fd25804e22b9f8a516d06c3`; +- accepted RC `v1.0.0-rc.1`: unchanged at `092945289f1a0a9803e4fe0583104aa380ceaadc`; +- publication evidence: `.agnir/evidence/2026-09-18-v1.0.2-stable-publication.md`. ## v1.0.1 stable publication receipts - implementation PR: `#50` — merged; diff --git a/.agnir/state.md b/.agnir/state.md index 9af998f..1e418b1 100644 --- a/.agnir/state.md +++ b/.agnir/state.md @@ -2,9 +2,42 @@ Durable continuity belongs to the Project. -## Stable v1.0.1 publication +## Stable v1.0.2 publication -Agnir `v1.0.1` is now **published, verified, and the latest stable repository/distribution release**. +Agnir `v1.0.2` is **published, verified, and the latest stable repository/distribution release**. + +Accepted stable publication receipts: + +- publication authorization: Principal command `发布v1.0.2` / `那就发布v1.0.2`; +- publication-arm / immutable stable tag revision: `b5626394ec40a5cb7a28c01892acde07cc0adc8e`; +- immutable stable tag: `v1.0.2` -> `b5626394ec40a5cb7a28c01892acde07cc0adc8e`; +- GitHub Release id: `391529372`; +- Release state: non-draft, non-prerelease; +- published at: `2026-09-18T14:14:18Z`; +- publication workflow: `35354941029` — success; +- repository/conformance job: `105631886209` — success; +- stable publication job: `105631955191` — success; +- GitHub `releases/latest`: `v1.0.2`; +- previous stable `v1.0.1` remains exactly `f56d25b22997c259c660651e7357334b063093e1`; +- `v1.0.0` remains exactly `6d16dcfd17b8e9f22fd25804e22b9f8a516d06c3`; +- accepted `v1.0.0-rc.1` remains exactly `092945289f1a0a9803e4fe0583104aa380ceaadc`. + +Repository/distribution `1.0.2` is a PATCH-level execution-surface onboarding/packaging hardening over `1.0.1`. It publishes the Principal-accepted locator-only ChatGPT Project handoff while leaving Core `1.0`, `repository-filesystem/1.0`, Project identity, Continuity Lineage, checkpoint semantics, and historical compatibility lines unchanged. + +The accepted persistent ChatGPT Project handoff is: + +```text +Canonical Project: () +At the first substantive turn of every new conversation, open it, read root AGENTS.md, and follow it before doing Project work. +``` + +Continuity remains Project-owned behind `AGENTS.md -> AGNIR.md -> AGNIR.yaml -> selected durable continuity`; the surface instruction is only the durable locator into that route. + +`VERSION`, `AGNIR.yaml extensions.agnir/release.repository_version`, and `agnir/operations.release` reconcile to repository/distribution `1.0.2`; `agnir/operations.applied_revision` records the immutable stable source revision `b5626394ec40a5cb7a28c01892acde07cc0adc8e`. + +## Previous stable v1.0.1 publication + +Agnir `v1.0.1` remains an **immutable previous stable release**. Its publication receipts remain historical evidence for the 1.0 line. Accepted stable publication receipts: @@ -42,20 +75,17 @@ The GitHub Release body has one cosmetic omission: the intended literal `` `AGNI This is a repository-host presentation defect, not a package-integrity or protocol defect. It must not be repaired by moving/recreating the published tag. A future authorized metadata repair may update only the Release body while preserving release identity. -## v1.0.2 publication candidate +## v1.0.2 publication acceptance -On 2026-09-18, the Principal explicitly authorized **publish `v1.0.2`** after accepting the locator-only ChatGPT Project bootstrap contract. +The authorized PATCH release cycle is closed. -The release scope is intentionally PATCH-only: +Release preparation PR `#60` merged to authoritative `main` at `72177afbbe4e36945366faaa9096b6d9bbb04d88`. Post-merge conformance run `35354894720`, repository job `105631729092`, succeeded while the v1.0.2 publication job was correctly skipped. -- publish the already accepted two-line ChatGPT Project locator handoff; -- keep Project continuity behind `AGENTS.md -> AGNIR.md -> AGNIR.yaml -> selected durable continuity`; -- add exact `v1.0.2` release packaging, conformance, and an authoritative-main publication gate; -- preserve Core `1.0`, `repository-filesystem/1.0`, Project identity, Continuity Lineage, checkpoint semantics, and historical `0.1`/`0.2` compatibility. +The separate zero-tree-change publication arm `b5626394ec40a5cb7a28c01892acde07cc0adc8e` used the exact commit message `release: publish v1.0.2 stable`. Workflow `35354941029` re-ran exact-source repository/full conformance, then publication job `105631955191` created and verified tag/Release/latest state. -Candidate staging branch: `release/v1.0.2`. Repository source version is `1.0.2`; **latest stable remains `v1.0.1` until publication actually succeeds**. Publication is allowed only through an exact `main` commit message `release: publish v1.0.2 stable`, after candidate and authoritative-main conformance are green. +Host readback confirms `refs/tags/v1.0.2` and Release `391529372` both target the exact arm revision, the Release is non-draft/non-prerelease, and `releases/latest == v1.0.2`. Immutable `v1.0.1`, `v1.0.0`, and `v1.0.0-rc.1` receipts remain unchanged. -Accepted implementation inputs are PR `#58` / merge `2c62d026c48405c3e299f0f57d6a674b3f6f9e1c` and acceptance checkpoint `4fde39128e5edf3fba3d7906a279918b1c38b7c2`, with authoritative conformance run `35353700740` success. +The release branch has been retired after merge. Post-publication metadata/document reconciliation may advance authoritative `main`, but it does not change the immutable source published as `v1.0.2`. ## Public product state diff --git a/AGNIR.yaml b/AGNIR.yaml index 307a312..f6693cd 100644 --- a/AGNIR.yaml +++ b/AGNIR.yaml @@ -30,7 +30,7 @@ extensions: kind: "vcs-ref" selector: "refs/heads/main" agnir/release: - phase: "stable-v1.0.2-implemented-publication-pending" + phase: "stable-v1.0.2-published" repository_version: "1.0.2" core_contract: "spec/AGNIR_CORE_1_0.md" profile_contract: "profiles/REPOSITORY_FILESYSTEM_1_0.md" @@ -42,28 +42,28 @@ extensions: implementation_verification_run: 34255207555 implementation_verification_job: 102159143123 staging_ref_retired: true - publication_arm_revision: "f56d25b22997c259c660651e7357334b063093e1" - stable_tag: "v1.0.1" - stable_revision: "f56d25b22997c259c660651e7357334b063093e1" - stable_release_id: 385176185 - stable_published_at: "2026-09-09T02:02:14Z" - publication_run: 34301559338 - publication_repository_job: 102309347343 - publication_job: 102309386242 - previous_stable_tag: "v1.0.0" - previous_stable_revision: "6d16dcfd17b8e9f22fd25804e22b9f8a516d06c3" - previous_stable_release_id: 383612171 - previous_stable_published_at: "2026-09-06T14:23:58Z" - previous_publication_run: 34039014354 - previous_publication_repository_job: 101502237380 - previous_publication_job: 101502271312 + publication_arm_revision: "b5626394ec40a5cb7a28c01892acde07cc0adc8e" + stable_tag: "v1.0.2" + stable_revision: "b5626394ec40a5cb7a28c01892acde07cc0adc8e" + stable_release_id: 391529372 + stable_published_at: "2026-09-18T14:14:18Z" + publication_run: 35354941029 + publication_repository_job: 105631886209 + publication_job: 105631955191 + previous_stable_tag: "v1.0.1" + previous_stable_revision: "f56d25b22997c259c660651e7357334b063093e1" + previous_stable_release_id: 385176185 + previous_stable_published_at: "2026-09-09T02:02:14Z" + previous_publication_run: 34301559338 + previous_publication_repository_job: 102309347343 + previous_publication_job: 102309386242 accepted_rc_tag: "v1.0.0-rc.1" accepted_rc_revision: "092945289f1a0a9803e4fe0583104aa380ceaadc" accepted_rc_release_id: 383536840 accepted_rc_publication_run: 34026167762 accepted_rc_fresh_attempt: 2 accepted_rc_acceptance_checkpoint: "afc07d062b957e8dbfe3f859834c787e64aa52be" - previous_latest_stable: "v1.0.0" + previous_latest_stable: "v1.0.2" latest_stable: "v1.0.1" candidate_scope: "chatgpt-project-locator-only" candidate_implementation_pr: 58 @@ -72,10 +72,10 @@ extensions: candidate_acceptance_checkpoint: "4fde39128e5edf3fba3d7906a279918b1c38b7c2" candidate_acceptance_verification_run: 35353700740 candidate_acceptance_verification_job: 105627739027 - publication_status: "v1.0.1-published-v1.0.2-candidate" + publication_status: "published-verified" target_ref: "refs/heads/main" agnir/operations: distribution: "agnir-agent-skill" - release: "1.0.1" + release: "1.0.2" source: "iorLab/agnir" - applied_revision: "f56d25b22997c259c660651e7357334b063093e1" + applied_revision: "b5626394ec40a5cb7a28c01892acde07cc0adc8e" diff --git a/README.md b/README.md index 7b566ff..2230042 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ Project root `AGNIR.md` is the canonical Executor-facing activation and Project-operation surface. `README.md#Agnir-Project-Instructions` remains only as a backward-compatible locator for Agnir `1.0.0` activation paths. -`latest stable` means an actually published non-prerelease tag/Release, never a moving `main`, temporary release branch, RC, or untagged commit. The latest published stable package is `v1.0.1`, released from exact authoritative revision `f56d25b22997c259c660651e7357334b063093e1`. Core `1.0` and `repository-filesystem/1.0` remain unchanged; stable-upgrade resolution now selects `v1.0.1`. +`latest stable` means an actually published non-prerelease tag/Release, never a moving `main`, temporary release branch, RC, or untagged commit. The latest published stable package is `v1.0.2`, released from exact authoritative revision `b5626394ec40a5cb7a28c01892acde07cc0adc8e`. Core `1.0` and `repository-filesystem/1.0` remain unchanged; stable-upgrade resolution now selects `v1.0.2`. ## Agnir Project Instructions @@ -145,15 +145,18 @@ Supported compatibility lines remain explicit: - published `v0.1.1`: Core `0.1` + `repository-filesystem/0.1`; - published `v0.2.0`: Core `0.2` + `repository-filesystem/0.2`; - published `v1.0.0`: first stable Core `1.0` + `repository-filesystem/1.0` release, while historical `0.1`/`0.2` compatibility paths remain shipped and tested; -- published `v1.0.1`: same Core `1.0` + `repository-filesystem/1.0`, with activation/packaging reliability hardening only. +- published `v1.0.1`: same Core `1.0` + `repository-filesystem/1.0`, with activation/packaging reliability hardening only; +- published `v1.0.2`: same Core `1.0` + `repository-filesystem/1.0`, with locator-only ChatGPT Project bootstrap hardening only. A `0.1` Project migrates explicitly to `0.2` under [`spec/CORE_0_1_TO_0_2_MIGRATION.md`](spec/CORE_0_1_TO_0_2_MIGRATION.md). Core/profile `1.0` is a **stability promotion of behavior independently validated under `0.2`**, not a feature-driven redesign. An existing `0.2` Project may remain `0.2`; changing its declaration to `1.0` is a separately authorized Project-owned promotion governed by [`spec/CORE_0_2_TO_1_0_PROMOTION.md`](spec/CORE_0_2_TO_1_0_PROMOTION.md). ## Active line and release status -**Latest published stable package: `v1.0.1`** — Core `1.0` + `repository-filesystem/1.0`, exact stable source `f56d25b22997c259c660651e7357334b063093e1`. +**Latest published stable package: `v1.0.2`** — Core `1.0` + `repository-filesystem/1.0`, exact stable source `b5626394ec40a5cb7a28c01892acde07cc0adc8e`. -**Published patch: `v1.0.1`** — activation/packaging reliability hardening only; Core `1.0` and `repository-filesystem/1.0` remain unchanged. +**Published patch: `v1.0.2`** — locator-only ChatGPT Project bootstrap hardening only; Core `1.0` and `repository-filesystem/1.0` remain unchanged. + +**Previous patch: `v1.0.1`** — activation/packaging reliability hardening only; immutable at `f56d25b22997c259c660651e7357334b063093e1`. **Accepted release candidate for the 1.0 stable line: `v1.0.0-rc.1`** at exact revision `092945289f1a0a9803e4fe0583104aa380ceaadc`; the immutable RC cycle passed both publication and fresh-source verification. diff --git a/README.zh-CN.md b/README.zh-CN.md index 8da6706..865b65e 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -74,7 +74,7 @@ Execution-surface bootstrap `AGNIR.md` 是面向 Executor 的权威激活与项目操作入口。`README.md#Agnir-Project-Instructions` 只作为 Agnir `1.0.0` 旧激活路径的向后兼容定位入口保留。 -`latest stable` 永远指实际发布的非预发布 tag / Release,而不是移动中的 `main`、临时 release 分支、RC 或未打 tag 的提交。当前最新已发布稳定包是 `v1.0.1`,精确权威源码修订为 `f56d25b22997c259c660651e7357334b063093e1`。Core `1.0` 与 `repository-filesystem/1.0` 均保持不变;稳定版升级解析现在选择 `v1.0.1`。 +`latest stable` 永远指实际发布的非预发布 tag / Release,而不是移动中的 `main`、临时 release 分支、RC 或未打 tag 的提交。当前最新已发布稳定包是 `v1.0.2`,精确权威源码修订为 `b5626394ec40a5cb7a28c01892acde07cc0adc8e`。Core `1.0` 与 `repository-filesystem/1.0` 均保持不变;稳定版升级解析现在选择 `v1.0.2`。 ## Agnir 项目指令 @@ -178,16 +178,19 @@ Agnir 不负责真正的项目工作。它让连续性持久、可发现、归 - 已发布 `v0.1.1`:Core `0.1` + `repository-filesystem/0.1`; - 已发布 `v0.2.0`:Core `0.2` + `repository-filesystem/0.2`; - 已发布 `v1.0.0`:首个 Core `1.0` + `repository-filesystem/1.0` 稳定版,同时继续携带并测试历史 `0.1` / `0.2` 兼容路径; -- 已发布 `v1.0.1`:继续使用相同 Core `1.0` + `repository-filesystem/1.0`,只加固 activation / packaging 可靠性。 +- 已发布 `v1.0.1`:继续使用相同 Core `1.0` + `repository-filesystem/1.0`,只加固 activation / packaging 可靠性; +- 已发布 `v1.0.2`:继续使用相同 Core `1.0` + `repository-filesystem/1.0`,只加固 ChatGPT Project 的 locator-only 启动配置。 `0.1` 项目按照 [`spec/CORE_0_1_TO_0_2_MIGRATION.md`](spec/CORE_0_1_TO_0_2_MIGRATION.md) 显式迁移到 `0.2`。Core / profile `1.0` 是**对已经在 `0.2` 下通过独立实现验证的行为进行稳定性晋升**,不是功能驱动的重新设计。已有 `0.2` 项目可以继续保持 `0.2`;把声明改成 `1.0` 是另一项必须单独授权、由项目自己拥有的晋升操作,规范见 [`spec/CORE_0_2_TO_1_0_PROMOTION.md`](spec/CORE_0_2_TO_1_0_PROMOTION.md)。 ## 当前版本与发布状态 - + -**最新已发布稳定包:`v1.0.1`** — Core `1.0` + `repository-filesystem/1.0`,精确稳定源码为 `f56d25b22997c259c660651e7357334b063093e1`。 +**最新已发布稳定包:`v1.0.2`** — Core `1.0` + `repository-filesystem/1.0`,精确稳定源码为 `b5626394ec40a5cb7a28c01892acde07cc0adc8e`。 -**已发布 patch:`v1.0.1`** — 仅加固 activation / packaging 可靠性;Core `1.0` 与 `repository-filesystem/1.0` 不变。 +**已发布 patch:`v1.0.2`** — 仅加固 ChatGPT Project 的 locator-only 启动配置;Core `1.0` 与 `repository-filesystem/1.0` 不变。 + +**上一 patch:`v1.0.1`** — 仅加固 activation / packaging 可靠性;不可变修订为 `f56d25b22997c259c660651e7357334b063093e1`。 **1.0 稳定线已接受的发布候选版:`v1.0.0-rc.1`**,精确修订为 `092945289f1a0a9803e4fe0583104aa380ceaadc`;不可变 RC 周期已经通过首次发布与新鲜源码验证。 diff --git a/RELEASE.md b/RELEASE.md index f07f258..476f738 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -2,7 +2,7 @@ **Current repository version:** `1.0.2` -**Latest published stable:** `v1.0.1` +**Latest published stable:** `v1.0.2` **Core compatibility line:** `1.0` @@ -10,28 +10,29 @@ ## Status -Agnir repository source `1.0.2` is the **accepted publication candidate**. The latest published stable remains `v1.0.1` until the separate authoritative publication transaction succeeds. +Agnir `v1.0.2` is the **published latest stable** repository/distribution release. Accepted stable publication receipts: -- tag: `v1.0.1`; -- exact authoritative source revision: `f56d25b22997c259c660651e7357334b063093e1`; -- GitHub Release id: `385176185`; -- published at: `2026-09-09T02:02:14Z`; -- publication workflow: `34301559338` — success; -- repository/conformance job: `102309347343` — success; -- stable publication job: `102309386242` — success; -- `releases/latest == v1.0.1`; -- previous stable `v1.0.0` remains exactly `6d16dcfd17b8e9f22fd25804e22b9f8a516d06c3`; +- tag: `v1.0.2`; +- exact authoritative source revision: `b5626394ec40a5cb7a28c01892acde07cc0adc8e`; +- GitHub Release id: `391529372`; +- published at: `2026-09-18T14:14:18Z`; +- publication workflow: `35354941029` — success; +- repository/conformance job: `105631886209` — success; +- stable publication job: `105631955191` — success; +- `releases/latest == v1.0.2`; +- previous stable `v1.0.1` remains exactly `f56d25b22997c259c660651e7357334b063093e1`; +- `v1.0.0` remains exactly `6d16dcfd17b8e9f22fd25804e22b9f8a516d06c3`; - accepted `v1.0.0-rc.1` remains exactly `092945289f1a0a9803e4fe0583104aa380ceaadc`. -Repository `1.0.2` is a backward-compatible PATCH for execution-surface onboarding/packaging reliability. It **does not change Core `1.0`**, `repository-filesystem/1.0`, the Project identity model, Continuity Lineage semantics, checkpoint semantics, or historical compatibility lines. Published `v1.0.1` remains the current stable release until `v1.0.2` publication succeeds. +Repository `1.0.2` is a backward-compatible PATCH for execution-surface onboarding/packaging reliability. It **does not change Core `1.0`**, `repository-filesystem/1.0`, the Project identity model, Continuity Lineage semantics, checkpoint semantics, or historical compatibility lines. -`latest stable` is a publication property, not a moving-branch property. During the `1.0.2` candidate stage, stable resolution continues to select the published non-prerelease `v1.0.1` release, not the release branch or untagged `main` commits. +`latest stable` is a publication property, not a moving-branch property. Stable resolution now selects the published non-prerelease `v1.0.2` release, not later untagged `main` commits. ## v1.0.2 patch scope -The `1.0.2` candidate publishes the Principal-accepted **locator-only ChatGPT Project handoff**: +The published `1.0.2` patch contains the Principal-accepted **locator-only ChatGPT Project handoff**: ```text Canonical Project: () @@ -54,6 +55,8 @@ Accepted implementation receipts before the release cycle: This patch is distribution/onboarding hardening only. Core/profile remain `1.0` / `repository-filesystem/1.0`. +Publication receipts: tag/revision `v1.0.2` → `b5626394ec40a5cb7a28c01892acde07cc0adc8e`; workflow `35354941029`; repository job `105631886209`; publication job `105631955191`; Release id `391529372`; `releases/latest == v1.0.2`. + ## v1.0.1 patch scope The patch moves Project-specific Executor instructions out of the general README into a dedicated root `AGNIR.md` surface: @@ -172,7 +175,7 @@ Implementation, a green PR, or an authoritative-main merge does **not** by itsel `v1.0.1` was published only through the separately armed authoritative-main transaction `release: publish v1.0.1 stable`. The publication path verified the exact source candidate, created/validated immutable `refs/tags/v1.0.1`, created/validated a non-draft/non-prerelease GitHub Release, verified `releases/latest == v1.0.1`, and verified the existing `v1.0.0` tag remained exactly at `6d16dcfd17b8e9f22fd25804e22b9f8a516d06c3`. -`v1.0.2` may be published only by the exact authoritative-main trigger `release: publish v1.0.2 stable` after the repository source is `1.0.2` and conformance is green. Published tags are immutable by Project policy. +`v1.0.2` was published only by the exact authoritative-main trigger `release: publish v1.0.2 stable` after exact-source conformance succeeded. Published tags are immutable by Project policy. ## Activation and Skill boundary diff --git a/RELEASE_MILESTONES.md b/RELEASE_MILESTONES.md index 82122c3..c699cf7 100644 --- a/RELEASE_MILESTONES.md +++ b/RELEASE_MILESTONES.md @@ -4,7 +4,7 @@ - `v0.2.0`: stable pre-1.0 feature release line for Continuity Lineages. Its acceptance gates included Core `0.2` design, explicit `0.1` → `0.2` migration, materially different VCS and non-VCS backend conformance, fresh install/resume, real-Project validation, mount-boundary evidence, and an RC cycle. Historical Core/profile `0.2` remains a supported compatibility surface after 1.0 rather than being renamed in place. - `v1.0.0`: published stability milestone. Core `1.0` + `repository-filesystem/1.0` deliberately promote the independently validated `0.2` behavior into the first long-term stable compatibility identifiers. Existing `0.2` Projects remain supported and are not forcibly rewritten; explicit semantics-preserving `0.2` → `1.0` Project promotion remains separately authorized and conformance-tested. - `v1.0.1`: published PATCH maintenance milestone for activation/packaging reliability. It introduces dedicated `AGNIR.md` Project instructions, direct `AGENTS.md → AGNIR.md` activation, a backward-compatible README locator for `1.0.0` Projects, and explicit short commit-intent checkpoint dispatch. Core `1.0` + `repository-filesystem/1.0` remain unchanged; checkpoint no-op semantics remain unchanged. -- `v1.0.2`: authorized PATCH publication candidate for ChatGPT execution-surface onboarding reliability. It makes persistent ChatGPT Project Instructions locator-only while retaining the full Project-owned activation chain and continuity semantics. Core `1.0` + `repository-filesystem/1.0` remain unchanged. +- `v1.0.2`: published PATCH maintenance milestone for ChatGPT execution-surface onboarding reliability. It makes persistent ChatGPT Project Instructions locator-only while retaining the full Project-owned activation chain and continuity semantics. Core `1.0` + `repository-filesystem/1.0` remain unchanged. ## v1 acceptance receipts @@ -22,15 +22,16 @@ The v1 stability milestone reached publication only after: ## Current publication status -`v1.0.1` is the current published latest stable repository/distribution release. +`v1.0.2` is the current published latest stable repository/distribution release. -- stable tag/revision: `v1.0.1` -> `f56d25b22997c259c660651e7357334b063093e1`; -- GitHub Release id: `385176185`; -- publication workflow: `34301559338` — success; -- repository/conformance job: `102309347343` — success; -- stable publication job: `102309386242` — success; -- `releases/latest == v1.0.1`; -- previous stable `v1.0.0` remains immutable at `6d16dcfd17b8e9f22fd25804e22b9f8a516d06c3`; +- stable tag/revision: `v1.0.2` -> `b5626394ec40a5cb7a28c01892acde07cc0adc8e`; +- GitHub Release id: `391529372`; +- publication workflow: `35354941029` — success; +- repository/conformance job: `105631886209` — success; +- stable publication job: `105631955191` — success; +- `releases/latest == v1.0.2`; +- previous stable `v1.0.1` remains immutable at `f56d25b22997c259c660651e7357334b063093e1`; +- `v1.0.0` remains immutable at `6d16dcfd17b8e9f22fd25804e22b9f8a516d06c3`; - accepted `v1.0.0-rc.1` remains immutable at `092945289f1a0a9803e4fe0583104aa380ceaadc`. ## v1.0.1 patch acceptance @@ -48,7 +49,7 @@ The `1.0.1` patch was accepted after all of the following held: Publication of `v1.0.1` was a distinct authoritative-main transaction and did not follow automatically from implementation or PR acceptance. -## v1.0.2 publication candidate +## v1.0.2 publication acceptance The Principal explicitly authorized `v1.0.2` publication on 2026-09-18 after accepting the locator-only ChatGPT Project handoff. @@ -60,4 +61,4 @@ Accepted implementation inputs: - acceptance post-merge conformance `35353700740`, repository job `105627739027` — success; - persistent ChatGPT handoff is conformance-locked to the canonical Project/ref plus root `AGENTS.md` locator. -Publication remains a separate authoritative-main transaction. Until it succeeds, `v1.0.1` remains latest stable. +Publication completed through authoritative-main arm `b5626394ec40a5cb7a28c01892acde07cc0adc8e`. Workflow `35354941029`, repository job `105631886209`, and publication job `105631955191` all succeeded; Release id is `391529372`; `releases/latest == v1.0.2`; earlier stable/RC tags remained unchanged. diff --git a/REPOSITORY_TREE.md b/REPOSITORY_TREE.md index 7184f47..fdbc240 100644 --- a/REPOSITORY_TREE.md +++ b/REPOSITORY_TREE.md @@ -113,7 +113,7 @@ agnir/ ## 当前版本职责 -- **Latest published stable:** `v1.0.1` remains the latest published non-prerelease release until the separately authorized `v1.0.2` publication succeeds. +- **Latest published stable:** `v1.0.2` is published at exact immutable source `b5626394ec40a5cb7a28c01892acde07cc0adc8e`. - **v1.0.2 patch scope:** persistent ChatGPT Project configuration is locator-only: canonical Project/ref plus a fresh-context locator to root `AGENTS.md`; the Project-owned `AGENTS.md → AGNIR.md → AGNIR.yaml` path retains discovery, authority, checkpoint, and operation semantics. Core `1.0` and `repository-filesystem/1.0` do not change. - **v1.0.1 patch scope:** dedicated `AGNIR.md` Project activation/operation surface, direct locator from `AGENTS.md`, legacy README activation compatibility for pre-upgrade Projects, short commit-intent checkpoint interception, and associated Skill/conformance/packaging hardening. - **Accepted RC evidence for the stable 1.0 compatibility line:** immutable `v1.0.0-rc.1` at `092945289f1a0a9803e4fe0583104aa380ceaadc`; it remains prerelease evidence and must not be moved. diff --git a/VERSIONING.md b/VERSIONING.md index 2b819f5..a909766 100644 --- a/VERSIONING.md +++ b/VERSIONING.md @@ -1,6 +1,6 @@ # Agnir Versioning -Status: active versioning policy. Repository source `1.0.2` is an accepted PATCH publication candidate. Published non-prerelease tag `v1.0.1` remains the current latest stable until the separate `v1.0.2` publication transaction succeeds. Both use Core `1.0` + `repository-filesystem/1.0`. +Status: active versioning policy. Published non-prerelease tag `v1.0.2` is the current latest stable repository/distribution release. It uses the same Core `1.0` + `repository-filesystem/1.0` compatibility line as `v1.0.1` and `v1.0.0`. Agnir distinguishes **repository release version** from **Core compatibility version** and profile/extension compatibility versions. @@ -16,7 +16,7 @@ A repository prerelease-to-stable promotion such as `1.0.0-rc.1` → `1.0.0` doe ## v1.0.2 execution-surface locator patch -Repository `1.0.2` is a PATCH-level distribution evolution over `1.0.1`. Its scope is deliberately narrow: +Repository `1.0.2` is a published PATCH-level distribution evolution over `1.0.1`. Its scope is deliberately narrow: - make the persistent ChatGPT Project handoff locator-only and intentionally small; - use exactly the canonical Project/ref plus a first-substantive-turn instruction to read root `AGENTS.md`; @@ -24,7 +24,7 @@ Repository `1.0.2` is a PATCH-level distribution evolution over `1.0.1`. Its sco - add conformance that rejects reintroduction of those duplicated semantics into the ChatGPT handoff; - preserve separate repository activation and execution-surface activation status/verification. -This patch does **not** introduce Core `1.1`, `repository-filesystem/1.1`, new continuity semantics, or a new checkpoint model. Until publication succeeds, `v1.0.1` remains latest stable. +This patch does **not** introduce Core `1.1`, `repository-filesystem/1.1`, new continuity semantics, or a new checkpoint model. Published stable source: `v1.0.2` -> `b5626394ec40a5cb7a28c01892acde07cc0adc8e`. ## v1.0.1 activation/packaging patch @@ -105,7 +105,7 @@ A Core/profile `0.1` Project reaches `1.0` through the existing explicit `0.1` The accepted `v1.0.0-rc.1` is release evidence and remains immutable prerelease history; it never substitutes for stable resolution. -Publication created the non-prerelease `v1.0.1` tag/Release at exact stable source revision `f56d25b22997c259c660651e7357334b063093e1`; stable resolution continues to select `v1.0.1` while repository `1.0.2` is only a candidate. A successful `v1.0.2` publication will advance stable resolution; it must not move `v1.0.1` or earlier tags. Previous stable `v1.0.0` remains immutable history at `6d16dcfd17b8e9f22fd25804e22b9f8a516d06c3`. Published release tags are immutable by Project policy. +Publication created the non-prerelease `v1.0.2` tag/Release at exact stable source revision `b5626394ec40a5cb7a28c01892acde07cc0adc8e`; stable resolution now selects `v1.0.2`. Previous stable `v1.0.1` remains immutable history at `f56d25b22997c259c660651e7357334b063093e1`, and `v1.0.0` remains immutable at `6d16dcfd17b8e9f22fd25804e22b9f8a516d06c3`. Published release tags are immutable by Project policy. ## Meaning of the 1.0 line diff --git a/conformance/test_1_0_package_surface.py b/conformance/test_1_0_package_surface.py index 30ca7a6..3399dd5 100644 --- a/conformance/test_1_0_package_surface.py +++ b/conformance/test_1_0_package_surface.py @@ -28,7 +28,7 @@ def test_public_1_0_contract_surfaces_exist(self) -> None: ): self.assertTrue((ROOT / path).exists(), path) - def test_readmes_explain_1_0_1_as_packaging_patch_not_core_change(self) -> None: + def test_readmes_explain_1_0_x_patches_without_core_change(self) -> None: english = (ROOT / "README.md").read_text(encoding="utf-8") chinese = (ROOT / "README.zh-CN.md").read_text(encoding="utf-8") @@ -39,6 +39,7 @@ def test_readmes_explain_1_0_1_as_packaging_patch_not_core_change(self) -> None: "Existing Core/profile `0.1` and `0.2` Projects remain supported", "AGNIR.md", "v1.0.1", + "v1.0.2", ): self.assertIn(marker, english) for marker in ( @@ -48,13 +49,16 @@ def test_readmes_explain_1_0_1_as_packaging_patch_not_core_change(self) -> None: "已有 Core / profile `0.1` 与 `0.2` 项目继续受支持", "AGNIR.md", "v1.0.1", + "v1.0.2", ): self.assertIn(marker, chinese) - self.assertIn("Latest published stable package: `v1.0.1`", english) - self.assertIn("最新已发布稳定包:`v1.0.1`", chinese) - self.assertIn("Published patch: `v1.0.1`", english) - self.assertIn("已发布 patch:`v1.0.1`", chinese) + self.assertIn("Latest published stable package: `v1.0.2`", english) + self.assertIn("最新已发布稳定包:`v1.0.2`", chinese) + self.assertIn("Published patch: `v1.0.2`", english) + self.assertIn("已发布 patch:`v1.0.2`", chinese) + self.assertIn("Previous patch: `v1.0.1`", english) + self.assertIn("上一 patch:`v1.0.1`", chinese) def test_skill_dispatches_0_1_0_2_and_1_0_without_silent_relabeling(self) -> None: skill = (ROOT / "SKILL.md").read_text(encoding="utf-8") @@ -104,7 +108,7 @@ def test_source_tree_version_matches_its_self_host_compatibility(self) -> None: def test_self_host_ci_dispatches_current_1_0_source_line(self) -> None: workflow = (ROOT / ".github/workflows/conformance.yml").read_text(encoding="utf-8") - self.assertIn("1.0.1|1.0.0|1.0.0-rc.1", workflow) + self.assertIn("1.0.2|1.0.1|1.0.0|1.0.0-rc.1", workflow) self.assertIn("python conformance/check_agnir_1_0.py", workflow) def test_v1_0_0_publication_is_immutable_historical_gate(self) -> None: