Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ AsterGraph is a modular node-graph editor toolkit for .NET. It gives hosts a reu

## Public Beta

- latest installable package version: `0.10.0-beta`
- latest public prerelease tag: `v0.10.0-beta`
- latest legacy repository milestone tag: `v1.9` (historical pre-launch checkpoint, not the NuGet version)
- current installable package version: `0.10.0-beta`
- matching public prerelease tag for this package line: `v0.10.0-beta`
- historical legacy repository milestone tag series: `v1.x`-style pre-launch checkpoints (historical pre-launch checkpoints, not the NuGet version)
- published packages target `net8.0` and `net9.0`
- packed `HostSample` also proves downstream `.NET 10` consumption during the release gate
- public prerelease tags must match the package version exactly, for example `v0.10.0-beta`
- public prerelease tags must match the package version exactly for this package line, for example `v0.10.0-beta`
- package version versus historical repository-tag guidance: [Versioning](./docs/en/versioning.md)
- frozen support boundary and `v1.0.0` upgrade guidance: [Stabilization Support Matrix](./docs/en/stabilization-support-matrix.md)
- current scope, non-goals, and known limitations: [Alpha Status](./docs/en/alpha-status.md)
Expand Down Expand Up @@ -57,7 +57,7 @@ Add `AsterGraph.Core` only when the host also needs direct `GraphDocument`, seri
| Shipped Avalonia UI | the host wants the stock editor shell or stock standalone Avalonia surfaces | `AsterGraphEditorFactory.Create(...)` + `AsterGraphAvaloniaViewFactory.Create(...)` | [`AsterGraph.HelloWorld.Avalonia`](./tools/AsterGraph.HelloWorld.Avalonia/) |
| Retained migration | the host is moving off older MVVM-shaped entry points in planned batches | `new GraphEditorViewModel(...)` + `new GraphEditorView { Editor = editor }` | [Host Integration](./docs/en/host-integration.md) |

For new runtime-facing work, anchor on the first route. The Avalonia route is the supported hosted adapter path today, while the retained route stays migration-only. `v0.10.0-beta` keeps `WPF` as adapter 2 and publishes Avalonia/WPF gaps through the [Adapter Capability Matrix](./docs/en/adapter-capability-matrix.md) instead of adding adapter-specific runtime APIs or implying parity.
For new runtime-facing work, anchor on the first route. The Avalonia route is the supported hosted adapter path today, while the retained route stays migration-only. The current public beta keeps `WPF` as adapter 2 and publishes Avalonia/WPF gaps through the [Adapter Capability Matrix](./docs/en/adapter-capability-matrix.md) instead of adding adapter-specific runtime APIs or claiming parity.

## Public Entry Map

Expand Down Expand Up @@ -137,7 +137,7 @@ Plugin loading is in-process. AsterGraph currently gives hosts:
- local candidate discovery before activation
- runtime inspection of trusted, loaded, and blocked outcomes

It does **not** provide sandboxing or untrusted-code isolation. For public-alpha hosts, prefer fixed plugin directories, explicit allowlists, and your own signature or hash validation policy.
It does **not** provide sandboxing or untrusted-code isolation. For public prerelease hosts, prefer fixed plugin directories, explicit allowlists, and your own signature or hash validation policy.

## Documentation

Expand Down
10 changes: 5 additions & 5 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ AsterGraph 是一个面向 .NET 的模块化节点图编辑器工具包,提供

## 公开 Beta

- 最新可安装包版本:`0.10.0-beta`
- 最新对外 SemVer prerelease 标签:`v0.10.0-beta`
- 最新历史仓库里程碑标签:`v1.9`(公开前的旧检查点,不是 NuGet 包版本)
- 当前可安装包版本:`0.10.0-beta`
- 与当前包版本配对的对外 SemVer prerelease 标签:`v0.10.0-beta`
- 历史仓库里程碑标签系列:`v1.x` 风格的公开前检查点(公开前的旧检查点,不是 NuGet 包版本)
- 公开发布包目标框架:`net8.0`、`net9.0`
- release lane 还会用打包后的 `HostSample` 额外证明下游 `.NET 10` 消费兼容性
- 后续对外 prerelease tag 应与包 SemVer 对齐,比如 `v0.10.0-beta`
- 后续对外 prerelease tag 应与当前包版本的 SemVer 对齐,比如 `v0.10.0-beta`
- 包版本与历史仓库 tag 的关系说明:[Versioning](./docs/zh-CN/versioning.md)
- 当前发布边界与支持保证:[稳定化支持矩阵](./docs/zh-CN/stabilization-support-matrix.md)

Expand Down Expand Up @@ -56,7 +56,7 @@ dotnet add package AsterGraph.Abstractions --prerelease
| 默认 Avalonia UI | 宿主想直接复用默认编辑器壳层或独立 Avalonia 表面 | `AsterGraphEditorFactory.Create(...)` + `AsterGraphAvaloniaViewFactory.Create(...)` | [`AsterGraph.HelloWorld.Avalonia`](./tools/AsterGraph.HelloWorld.Avalonia/) |
| retained 迁移 | 现有宿主要分批迁移,暂时还离不开旧的 MVVM 入口 | `new GraphEditorViewModel(...)` + `new GraphEditorView { Editor = editor }` | [Host Integration](./docs/zh-CN/host-integration.md) |

新的运行时能力接入优先锚定第一条。Avalonia 路线是当前受支持的 hosted adapter 路线,retained 路线只作为迁移桥接。`v0.10.0-beta` 已经锁定 `WPF` 作为 adapter 2,后续 Avalonia/WPF 差异会通过 [Adapter Capability Matrix](./docs/zh-CN/adapter-capability-matrix.md) 里的 `supported / partial / fallback` 合同公开,而不是引入 adapter 专属 runtime API;WPF 当前仍是验证中的 adapter 2,不要把它写成与 Avalonia 已经对齐。
新的运行时能力接入优先锚定第一条。Avalonia 路线是当前受支持的 hosted adapter 路线,retained 路线只作为迁移桥接。当前公开 beta 已经锁定 `WPF` 作为 adapter 2,后续 Avalonia/WPF 差异会通过 [Adapter Capability Matrix](./docs/zh-CN/adapter-capability-matrix.md) 里的 `supported / partial / fallback` 合同公开,而不是引入 adapter 专属 runtime API;WPF 当前仍是验证中的 adapter 2,不要把它写成与 Avalonia 已经对齐。

## 公开入口分工

Expand Down
4 changes: 2 additions & 2 deletions docs/en/alpha-status.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,12 @@

## Known Limitations

- the latest public prerelease tag is `v0.10.0-beta`, while `v1.9` remains only as a historical pre-launch milestone marker
- the matching public prerelease tag for this package line is `v0.10.0-beta`, and the legacy `v1.x`-style pre-launch checkpoint series remain historical only
- public prerelease publishing and release artifacts still depend on the maintainer release flow
- the deepest package-validation lane and the `.NET 10` packed-consumer proof still run on the Windows release-validation path
- retained compatibility APIs are still present during the migration window, but they are only a migration bridge
- the current shipped hosted adapter is still Avalonia
- `v0.10.0-beta` locks `WPF` as adapter 2, but parity is not implied until the [Adapter Capability Matrix](./adapter-capability-matrix.md) is filled with `Supported`, `Partial`, and `Fallback`
- the current public beta line locks `WPF` as adapter 2; that validation stays non-parity until the [Adapter Capability Matrix](./adapter-capability-matrix.md) is filled with `Supported`, `Partial`, and `Fallback`
- advanced editing is now published as host-facing capability modules, but broader ecosystem and adapter validation work remains ahead

## Recommended Entry Points
Expand Down
4 changes: 2 additions & 2 deletions docs/en/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ The Avalonia package is the first official adapter, not the definition of the wh

- `AsterGraph.Editor` owns the runtime model and canonical host contracts.
- `AsterGraph.Avalonia` consumes shared `Scene/Interaction` seams and adds Avalonia-specific rendering and composition.
- `WPF` is the locked adapter 2 target for `v0.9.0-beta`, and it must plug into the same `Editor Kernel` + `Scene/Interaction` shape instead of forking editor semantics.
- Avalonia/WPF gaps should be published through the [Adapter Capability Matrix](./adapter-capability-matrix.md) as `Supported`, `Partial`, or `Fallback`, not through new adapter-specific runtime APIs.
- `WPF` is the locked adapter 2 target for the current public beta line, and it must plug into the same `Editor Kernel` + `Scene/Interaction` shape instead of forking editor semantics.
- Avalonia/WPF gaps should be published through the [Adapter Capability Matrix](./adapter-capability-matrix.md) as `Supported`, `Partial`, or `Fallback`; those states are validation-only and not a parity promise.

## Official Capability Modules

Expand Down
8 changes: 4 additions & 4 deletions docs/en/host-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ This guide expands the supported host routes without turning the public onboardi

Routes 1 and 2 are the canonical surfaces for new work. Route 3 remains supported only as a retained compatibility bridge for legacy hosts during migration.

For new adopters, default to route 2 (`AsterGraphAvaloniaViewFactory`) so WPF remains adapter-2 portability validation, not a separate onboarding path.
For new adopters, default to route 2 (`AsterGraphAvaloniaViewFactory`) so WPF remains adapter-2 portability validation only, not a separate onboarding path or parity promise.

If the host owns its UI, route 1 is the canonical native/custom-UI path; you compose your own surface around the same session/runtime owner instead of introducing a second model.

Expand Down Expand Up @@ -44,7 +44,7 @@ If you are starting new work, begin with [Quick Start](./quick-start.md) and kee

## Second Adapter Contract

`v0.9.0-beta` locks `WPF` as adapter 2. Avalonia remains the only shipped hosted adapter today; the second-adapter milestone exists to validate portability on the same canonical route, not to add adapter-specific runtime APIs or a separate onboarding path.
The current public beta line locks `WPF` as adapter 2. Avalonia remains the only shipped hosted adapter today; the second-adapter milestone exists to validate portability on the same canonical route, not to add adapter-specific runtime APIs, a separate onboarding path, or a parity promise.

Use the [Adapter Capability Matrix](./adapter-capability-matrix.md) vocabulary consistently:

Expand All @@ -56,8 +56,8 @@ Use the [Adapter Capability Matrix](./adapter-capability-matrix.md) vocabulary c

Retained migration is not `Fallback`. It remains a compatibility bridge for legacy hosts.

- `WPF Partial` means the host stays on the canonical session/runtime route and fills the missing stock surface with host-owned projection from session/query snapshots.
- `WPF Fallback` means the host still stays on the canonical session/runtime route and uses host-owned projection from documented proof/sample paths.
- `WPF Partial` means the host stays on the canonical session/runtime route and fills the missing stock surface with host-owned projection from session/query snapshots; it is validation-only, not parity.
- `WPF Fallback` means the host still stays on the canonical session/runtime route and uses host-owned projection from documented proof/sample paths; it is validation-only, not parity.
- That documented fallback never switches to retained-MVVM or adapter-specific runtime APIs.

## Official Capability Modules
Expand Down
10 changes: 5 additions & 5 deletions docs/en/project-status.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
## Current Status

- package baseline: `0.10.0-beta`
- latest public prerelease tag: `v0.10.0-beta`
- latest legacy repository milestone tag: `v1.9`
- matching public prerelease tag for this package line: `v0.10.0-beta`
- historical legacy repository milestone tag series: `v1.x`-style pre-launch checkpoints
- repo posture: public beta
- public versioning guidance: [Versioning](./versioning.md)
- supported published packages:
Expand Down Expand Up @@ -33,13 +33,13 @@
- default Avalonia shell plus standalone surfaces
- runtime inspection surface for trusted, loaded, and blocked outcomes
- command/trust timeline and perf overlay in the showcase surface
- v1.23 graph-surface usability proof markers:
- graph-surface usability proof markers:
- `COMMAND_SURFACE_OK:True`
- `TIERED_NODE_SURFACE_OK:True`
- `FIXED_GROUP_FRAME_OK:True`
- `NON_OBSCURING_EDITING_OK:True`
- `VISUAL_SEMANTICS_OK:True`
- v0.6.0-alpha advanced-editing closure markers:
- advanced-editing closure markers:
- `HIERARCHY_SEMANTICS_OK:True`
- `COMPOSITE_SCOPE_OK:True`
- `EDGE_NOTE_OK:True`
Expand All @@ -66,7 +66,7 @@ The current public-repo priority is turning the public beta into a coherent SDK
- maintain hosted CI parity across the supported proof lanes
- continue the retained compatibility migration window without abrupt public breaks
- keep the shipped starter scaffold, runtime inspection surface, command/trust timeline, and perf overlay aligned with the canonical session-first route
- validate `WPF` as adapter 2 on the same canonical route and publish Avalonia/WPF status using `Supported`, `Partial`, and `Fallback` without implying parity
- validate `WPF` as adapter 2 on the same canonical route and publish Avalonia/WPF status using `Supported`, `Partial`, and `Fallback`; do not read `Partial` or `Fallback` as parity

## Public Entry Matrix

Expand Down
17 changes: 9 additions & 8 deletions docs/en/public-launch-checklist.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# AsterGraph Public Launch Checklist

Use this checklist immediately before making the repository public or pushing the first public beta tag.
Use this checklist immediately before making the repository public or pushing the public prerelease tag that matches the package version.

## 1. Visibility And Branch Policy

Expand All @@ -11,10 +11,10 @@ Use this checklist immediately before making the repository public or pushing th

## 2. Public Repo Surface

- confirm `README.md` and `README.zh-CN.md` both point to the current public-alpha docs and entry matrix
- confirm `README.md` and `README.zh-CN.md` both point to the current public beta docs and entry matrix
- confirm `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, and `SECURITY.md` are present and still accurate
- confirm issue templates and the pull request template are enabled in `.github`
- confirm repository description, topics, and homepage match the current alpha narrative
- confirm repository description, topics, and homepage match the current prerelease narrative

## 3. Required Validation

Expand Down Expand Up @@ -67,11 +67,11 @@ Expected high-signal markers:
- `SCALE_HISTORY_CONTRACT_OK:...`
- `COVERAGE_REPORT_OK:...`

## 5. First Public Beta Tag
## 5. Public Prerelease Tag

- confirm the working tree is clean
- push the release branch or `master` state that should back the tag
- create and push the next public tag in the form `v0.10.0-beta`
- create and push the public tag that matches the package version
- watch `.github/workflows/release.yml` from start to finish
- remember that the prerelease workflow now enforces an exact tag-to-package-version match
- confirm the generated prerelease notes begin with the automated header block:
Expand All @@ -80,18 +80,19 @@ Expected high-signal markers:
- optional legacy historical repo checkpoint reference
- confirm the generated prerelease notes also publish the proof summary block, not only workflow artifacts
- confirm the generated notes and announcement text explicitly call out the current adapter matrix plus the `HELLOWORLD_WPF_OK` and `ADAPTER_CAPABILITY_MATRIX` markers
- treat `HELLOWORLD_WPF_OK` as adapter-2 validation only; do not present it as Avalonia/WPF parity when describing the adapter story
- if `NUGET_API_KEY` is configured, confirm package publication succeeds
- if `NUGET_API_KEY` is not configured, confirm the workflow reports a deliberate NuGet publish skip instead of a failure
- do not present historical milestone-style tags such as `v1.9` as the current public package version; use [Versioning](./versioning.md) as the public rule
- in the first screen of release notes, list the installable package version first, the matching public tag second, and any legacy `v1.x` milestone reference only as historical context
- do not present legacy `v1.x`-style historical milestone checkpoints as the current public package version; use [Versioning](./versioning.md) as the public rule
- in the first screen of release notes, list the installable package version first, the matching public tag second, and any legacy `v1.x`-style milestone reference only as historical context

For a maintainer-driven manual beta publish without pushing a new tag:

- add the `NUGET_API_KEY` repository secret in GitHub
- open `Actions > prerelease > Run workflow`
- set `publish_to_nuget` to `true`
- optionally set `release_ref` to the branch or `v*` tag that should be packed
- keep using the committed `0.10.0-beta` package version; the manual path publishes the version already checked into the repository
- keep using the committed package version; the manual path publishes the version already checked into the repository
- leave GitHub prerelease creation tag-driven; manual dispatch is only the NuGet publish escape hatch

## 6. Public Entry Guidance
Expand Down
4 changes: 2 additions & 2 deletions docs/en/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
This guide is the shortest path from a blank host to a running AsterGraph integration.

For first-time adopters, start on the default Avalonia path by default.
Treat `WPF` only as adapter-2 portability validation on the same canonical route.
Treat `WPF` only as adapter-2 portability validation on the same canonical route; it is not a second route or a parity promise.
For the frozen support boundary and upgrade guidance toward `v1.0.0`, see [Stabilization Support Matrix](./stabilization-support-matrix.md).

## 1. Pick Your Starting Package
Expand Down Expand Up @@ -78,7 +78,7 @@ The sample README is [`tools/AsterGraph.ConsumerSample.Avalonia/README.md`](../.
For new work, start with the runtime/session route or the shipped Avalonia route. Treat the retained route as migration-only.
New adopters should start with `AsterGraph.Starter.Avalonia` unless they are intentionally building a custom UI host from day one.
If the host owns its UI, the runtime/session route is the canonical native path; `Editor.Session` still owns host actions, diagnostics, automation, and proof logic.
Quick Start remains Avalonia-first today. `v0.10.0-beta` validates `WPF` as adapter 2 on the same canonical route; see [Adapter Capability Matrix](./adapter-capability-matrix.md) for that contract instead of treating it as a second beginner route.
Quick Start remains Avalonia-first today. The current public beta line validates `WPF` as adapter 2 on the same canonical route; see [Adapter Capability Matrix](./adapter-capability-matrix.md) for that contract instead of treating it as a second beginner route or a parity promise.

## 5. Minimal Hosted-UI Composition

Expand Down
Loading