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
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
version:
description: Version to publish
required: true
default: 0.9.0
default: 1.0.0
type: string

permissions:
Expand Down
2 changes: 1 addition & 1 deletion apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"@astrojs/sitemap": "^3.7.3",
"@santi020k/lumen-astro": "^1.4.0",
"@santi020k/og": "workspace:*",
"astro": "^7.2.5"
"astro": "^7.2.6"
},
"devDependencies": {
"@astrojs/check": "^0.9.10",
Expand Down
6 changes: 3 additions & 3 deletions apps/web/src/pages/docs/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ const jsonResultExample = `{
"cleaned": [],
"stale": [],
"total": 2,
"version": "0.9.0",
"version": "1.0.0",
"elapsedMilliseconds": 184
}`

Expand All @@ -271,7 +271,7 @@ pnpm exec santi-og inspect http://localhost:4321 --open
pnpm exec santi-og audit --site dist --site-url https://example.com --sarif
pnpm exec santi-og audit --site dist --site-url https://example.com --standards
pnpm exec santi-og migrate --report --json
pnpm exec santi-og upgrade --to 0.9.0`
pnpm exec santi-og upgrade --to 1.0.0`
---

<BaseLayout title="Documentation" description={description}>
Expand All @@ -288,7 +288,7 @@ pnpm exec santi-og upgrade --to 0.9.0`
<p>{description} Start with a useful visual default and customize only what your project needs.</p>
</div>
<div class="docs-meta">
<span><b>v0.9.0</b> Current docs</span>
<span><b>v1.0.0</b> Current docs</span>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update the remaining v0.9 documentation labels

When these pages are published as the 1.0 documentation, this new “v1.0.0 Current docs” label conflicts with the same page’s v0.9 description at line 9 and migration heading at line 589; the homepage (apps/web/src/pages/index.astro:95) and package README (packages/og/README.md:94) also still describe the public API as v0.9. Users arriving through those entry points will therefore be told that the newly released stable API is still the prerelease API, so all release-facing labels should be advanced together.

AGENTS.md reference: AGENTS.md:L12-L13

Useful? React with 👍 / 👎.

<span><b>Node.js 22.18+</b> Runtime</span>
<span><b>4 presets</b> Included</span>
</div>
Expand Down
6 changes: 6 additions & 0 deletions packages/og/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,14 @@

## Unreleased

## 1.0.0 - 2026-08-24

- Establish the documented package subpaths, runtime exports, configuration shapes, CLI commands,
and machine-readable results as the stable public contract.
- Add a transparent 0–100 score to hosted, CLI, visual, and JSON inspection results while keeping
the underlying pass, warning, and error evidence visible.
- Support the hosted checker during local Astro development while preserving production Turnstile
verification requirements.

## 0.9.0 - 2026-08-24

Expand Down
2 changes: 1 addition & 1 deletion packages/og/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -525,7 +525,7 @@ output. It fails when a card exceeds the accepted difference and always fails fo
or dimension changes, which cannot be expressed as a pixel ratio. Add `--json` for automation.

`santi-og migrate --report` inventories logical cards, physical outputs, local renderer modules,
and remaining custom-renderer responsibilities. `santi-og upgrade --to 0.9.0` updates regular
and remaining custom-renderer responsibilities. `santi-og upgrade --to 1.0.0` updates regular
dependencies in the root and every declared workspace package, plus pnpm catalogs and release-age
exclusions; run your package manager install command after reviewing the changes. `generate`,
`check`, `compare`, `inspect`, `migrate`, and `upgrade` support machine-readable JSON summaries.
Expand Down
20 changes: 9 additions & 11 deletions packages/og/STABILITY.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# Stability and compatibility

`@santi020k/og` 0.9 is the final acceptance release before 1.0. The 0.8 cycle made the compatibility
boundary explicit; 0.9 verifies that boundary from packed and registry-installed artifacts in real
framework builds before the first stable major.
`@santi020k/og` 1.0 establishes the stable public contract after the 0.8 compatibility review and
the 0.9 acceptance cycle verified packed and registry-installed artifacts in real framework builds.

## Supported runtime

Expand Down Expand Up @@ -66,14 +65,13 @@ The stable package subpaths are:
- Product copy, brand policy, locale topology, redirects, severity choices, and remote image digests
remain consumer-owned configuration.

## Before 1.0
## 1.0 acceptance

The 0.9 cycle keeps the export surface frozen, runs the complete suite on Node.js 22 and 24, and
builds plain Node.js, Astro, and Next.js consumers from both the packed candidate and the published
registry artifact. The hosted checker is protected by application URL policy, same-origin request
validation, server-validated single-use Turnstile tokens, and the Workers public-network egress
boundary.
The stable export surface is locked by public contract tests. The complete suite runs on Node.js 22
and 24, and plain Node.js, Astro, and Next.js consumers build from both the packed candidate and the
published registry artifact. The hosted checker is protected by application URL policy,
same-origin request validation, server-validated single-use Turnstile tokens, and the Workers
public-network egress boundary.

The executable acceptance criteria live in [the release checklist](./docs/release-acceptance.md).
Any required breaking correction discovered during this cycle should ship before 1.0 instead of
being carried into the stable contract.
Future changes follow the compatibility and deprecation policy above.
2 changes: 1 addition & 1 deletion packages/og/docs/migrating-existing-projects.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,5 +173,5 @@ Start with `santi-og migrate --report --json` to inventory the remaining work. R
`santi-og compare --threshold 0.01` when visual parity is required; it renders in a temporary
directory and can fail CI when decoded pixel differences exceed the chosen ratio. Missing outputs
and dimension changes always fail because they have no comparable pixel ratio. Use
`santi-og upgrade --to 0.9.0` to update root and declared workspace package manifests or pnpm
`santi-og upgrade --to 1.0.0` to update root and declared workspace package manifests or pnpm
catalogs, then run the package manager install command yourself.
4 changes: 2 additions & 2 deletions packages/og/docs/release-acceptance.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Release acceptance

Version 0.9 is the final validation release before the public contract becomes stable in 1.0. A
release is accepted only when every required item below has evidence from the release commit.
Version 1.0 establishes the stable public contract after the 0.9 validation cycle. The release is
accepted only when every required item below has evidence from the release commit.

## Repository state

Expand Down
6 changes: 3 additions & 3 deletions packages/og/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@santi020k/og",
"version": "0.9.0",
"version": "1.0.0",
"description": "Generate deterministic Open Graph images with reusable presets or project-owned renderers.",
"type": "module",
"sideEffects": false,
Expand Down Expand Up @@ -120,8 +120,8 @@
"@types/fontkit": "^2.0.9",
"@types/node": "^22.20.1",
"@types/react": "^19.2.18",
"@typescript-eslint/eslint-plugin": "^8.67.0",
"@typescript-eslint/parser": "^8.67.0",
"@typescript-eslint/eslint-plugin": "^8.68.0",
"@typescript-eslint/parser": "^8.68.0",
"@vitest/coverage-v8": "^4.1.11",
"astro-eslint-parser": "^3.1.0",
"cspell": "^10.1.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/og/src/version.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export const GENERATOR_VERSION = '0.9.0'
export const GENERATOR_VERSION = '1.0.0'
export const PRESET_VERSION = '2'
2 changes: 1 addition & 1 deletion packages/og/tests/cli.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ test('prints machine-readable generation and migration reports', async () => {
const generation = JSON.parse(generated.stdout)
const report = JSON.parse(migrated.stdout)

assert.equal(generation.version, '0.9.0')
assert.equal(generation.version, '1.0.0')

assert.equal(generation.total, 2)

Expand Down
2 changes: 1 addition & 1 deletion packages/og/tests/generate.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ describe('generate', () => {
.resolves.toBe('png:Hello')

await expect(readFile(path.join(root, '.og-cache.json'), 'utf8'))
.resolves.toContain('"generatorVersion": "0.9.0"')
.resolves.toContain('"generatorVersion": "1.0.0"')
})

it('writes cards and skips unchanged outputs using content fingerprints', async () => {
Expand Down
Loading