From 4fc83767b61cda96e2008a913fb7fd6ad0726db5 Mon Sep 17 00:00:00 2001 From: Javid Date: Thu, 6 Aug 2026 11:51:38 +0200 Subject: [PATCH 1/7] Qualify device compatibility claims --- app/DeviceSupportSection.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/DeviceSupportSection.tsx b/app/DeviceSupportSection.tsx index ac64e2e..836ae4c 100644 --- a/app/DeviceSupportSection.tsx +++ b/app/DeviceSupportSection.tsx @@ -71,9 +71,9 @@ export default function DeviceSupportSection() {
Device compatibility 03
-

یک زبان مشترک برای هزاران دستگاه متصل.

+

یک مدل مشترک برای دستگاه‌ها و پروتکل‌های ناهمگون.

-

لایه سازگاری CoreLink داده‌های ناهمگون دستگاه‌ها را به مدل‌های پایدار موقعیت، تله‌متری، رویداد، فرمان و رسانه تبدیل می‌کند. محصول شما با یک قرارداد واحد کار می‌کند، حتی وقتی سخت‌افزار و پروتکل تغییر می‌کند.

+

هدف لایه سازگاری CoreLink تبدیل داده‌های ناهمگون به مدل‌های نسخه‌دار محصول است. فهرست پایین نمونه‌ای از دسته‌ها و رابط‌های قابل ارزیابی است؛ پشتیبانی هر دستگاه فقط پس از validation همان پروفایل ادعا می‌شود.

@@ -84,8 +84,8 @@ export default function DeviceSupportSection() { CoreLink
- - + +
From ac83bdaa59a41edb57da87b42114cbaee5d84787 Mon Sep 17 00:00:00 2001 From: Javid Date: Thu, 6 Aug 2026 11:51:40 +0200 Subject: [PATCH 2/7] Align public claims with repository maturity --- app/page.tsx | 50 ++++++++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/app/page.tsx b/app/page.tsx index 82769f9..1d5da94 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -21,38 +21,44 @@ const repos = [ { name: "API Contracts", repo: "api-contracts", - desc: "فضای انتشار OpenAPI، AsyncAPI، Schema و مجموعه‌های Postman", - status: "در حال تدوین", + desc: "قرارداد عمومی Device و Command و envelope رویداد", + status: "Alpha · 1.0.0-draft", + }, + { + name: "TypeScript SDK", + repo: "sdk-typescript", + desc: "کلاینت تولیدشده از قرارداد عمومی v1؛ هنوز انتشار پایدار نیست", + status: "Prerelease Alpha", }, { name: "Python SDK", repo: "sdk-python", - desc: "SDK برنامه‌ریزی‌شده برای سرویس‌ها و اتوماسیون Python", - status: "برنامه‌ریزی‌شده", + desc: "کلاینت تولیدشده از قرارداد عمومی v1؛ هنوز انتشار پایدار نیست", + status: "Prerelease Alpha", }, { name: "Java SDK", repo: "sdk-java", desc: "SDK برنامه‌ریزی‌شده برای Java و سامانه‌های سازمانی", - status: "برنامه‌ریزی‌شده", + status: "Scaffold · Planned", }, { name: "CoreLink CLI", repo: "cli", desc: "ابزار خط فرمان برنامه‌ریزی‌شده برای توسعه و عملیات", - status: "برنامه‌ریزی‌شده", + status: "Scaffold · Planned", }, { name: "MCP Server", repo: "mcp-server", desc: "مسیر پیشنهادی اتصال عامل‌های هوشمند به قابلیت‌های CoreLink", - status: "برنامه‌ریزی‌شده", + status: "Scaffold · Planned", }, { name: "Mock Server", repo: "mock-server", desc: "شبیه‌ساز برنامه‌ریزی‌شده برای توسعه و تست مستقل", - status: "برنامه‌ریزی‌شده", + status: "Scaffold · Planned", }, ]; @@ -180,7 +186,7 @@ export default function Home() { زیرساخت مشترک برای ساخت و مقیاس‌دادن محصولات هوشمند

- دستگاه‌ها و پروتکل‌های مختلف را به یک مدل داده و API پایدار متصل + دستگاه‌ها و پروتکل‌های مختلف را به یک مدل داده و API نسخه‌دار متصل کنید؛ سپس پنل، اپ یا راهکار White-label خود را بدون بازسازی هسته عرضه کنید.

@@ -193,9 +199,9 @@ export default function Home() {
- ۲۵۰+ خانواده پروتکلی - ۱۵٬۰۰۰+ مدل قابل ارزیابی - API-first و چندمستاجری + 1.0.0-draft قرارداد عمومی + TS / Python کلاینت prerelease + Device + Command محدوده فعلی API
@@ -303,7 +309,7 @@ export default function Home() { - B2B2C + B2B2C · Planned

محصول White-label

@@ -314,7 +320,7 @@ export default function Home() {

  • برند و تجربه اختصاصی
  • Tenant مستقل
  • نقش و دسترسی
  • -
  • SaaS یا استقرار اختصاصی
  • +
  • الگوی استقرار در حال طراحی
  • Brand A @@ -378,12 +384,12 @@ export default function Home() {
    CoreLink Capability Layer - Identity - Device Registry - Digital Twin - Telemetry - Commands - Media + Identity · Alpha + Device Registry · Alpha + Digital Twin · Experimental + Telemetry · Experimental + Commands · Alpha + Media · Planned

    مخزن‌های عمومی محل انتشار تدریجی قراردادها، مستندات و ابزارهای - ادغام‌اند. وضعیت واقعی هر مورد، از «در حال تدوین» تا «قابل استفاده»، - در همان مخزن اعلام می‌شود. + ادغام‌اند. وضعیت واقعی هر مورد با واژگان maturity مشترک (Scaffold، Experimental، + Alpha، Beta، Stable، Deprecated و Planned) در همان مخزن و evidence اجرایی سنجیده می‌شود.

    From 3fdb6bc5a3ef16a9826bbff88545c5a30d4fd6e3 Mon Sep 17 00:00:00 2001 From: Javid Date: Thu, 6 Aug 2026 11:51:41 +0200 Subject: [PATCH 3/7] Record evidence-backed public capability status --- PUBLIC_CAPABILITY_STATUS.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 PUBLIC_CAPABILITY_STATUS.md diff --git a/PUBLIC_CAPABILITY_STATUS.md b/PUBLIC_CAPABILITY_STATUS.md new file mode 100644 index 0000000..7a3f7bf --- /dev/null +++ b/PUBLIC_CAPABILITY_STATUS.md @@ -0,0 +1,29 @@ +# Public capability claim inventory + +This inventory records the evidence boundary used by website copy. Runtime code +and retained executable evidence outrank README, Issue, Project and marketing +copy when they disagree. + +| Public surface | Current maturity | Evidence boundary | +| --- | --- | --- | +| Public API | Alpha / `1.0.0-draft` | `api-contracts`: reviewed Device + Command slice and canonical event envelope | +| TypeScript SDK | Prerelease Alpha | generated client repository; not a Stable supported release | +| Python SDK | Prerelease Alpha | generated client repository; not a Stable supported release | +| Java SDK | Scaffold / Planned | repository scaffold | +| CLI | Scaffold / Planned | repository scaffold | +| MCP server | Scaffold / Planned | repository scaffold | +| Mock server | Scaffold / Planned | repository scaffold | +| Identity / Device registry / Commands | Alpha | implemented platform foundation; release hardening/evidence still gates Stable | +| Digital twin / Telemetry | Experimental | foundation exists; public product acceptance is incomplete | +| Media | Planned | no supported public v1 media claim | +| White-label experience | Planned | product direction; not a released application boundary | + +Allowed website maturity terms are **Scaffold, Experimental, Alpha, Beta, +Stable, Deprecated, Planned**. + +Device/protocol names shown on the site are evaluation examples. They do not +mean every listed model, firmware or protocol is currently supported. A support +claim requires profile-specific validation evidence. + +Review this inventory whenever runtime/contract/SDK maturity changes and before +a public website release. From d2b03692485c9eff3a42d8709dec50e85d67432b Mon Sep 17 00:00:00 2001 From: Javid Date: Thu, 6 Aug 2026 11:56:03 +0200 Subject: [PATCH 4/7] Validate website claims build --- .github/workflows/ci.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..2528810 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,24 @@ +name: Website CI + +on: + pull_request: + push: + branches: [main] + +permissions: + contents: read + +jobs: + build-and-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + - run: npm ci + - run: npm run lint + - run: npm test + env: + NEXT_TELEMETRY_DISABLED: 1 From 9c1994797aac0ddf90ae632e3ba39596c15a32ae Mon Sep 17 00:00:00 2001 From: Javid Date: Thu, 6 Aug 2026 11:56:43 +0200 Subject: [PATCH 5/7] Validate claims with reproducible Pages build --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2528810..061c9b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,6 +19,7 @@ jobs: cache: npm - run: npm ci - run: npm run lint - - run: npm test + - run: npm run build:github env: NEXT_TELEMETRY_DISABLED: 1 + - run: node --test tests/rendered-html.test.mjs From ac64e0f72d1801bd13b56329449f120934608f75 Mon Sep 17 00:00:00 2001 From: Javid Date: Thu, 6 Aug 2026 14:52:26 +0200 Subject: [PATCH 6/7] Validate claims in canonical static artifact --- tests/rendered-html.test.mjs | 31 ++++++------------------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/tests/rendered-html.test.mjs b/tests/rendered-html.test.mjs index 5392f9f..9010442 100644 --- a/tests/rendered-html.test.mjs +++ b/tests/rendered-html.test.mjs @@ -1,33 +1,14 @@ import assert from "node:assert/strict"; +import { readFile } from "node:fs/promises"; import test from "node:test"; const developmentPreviewMeta = /]*\bname=["']codex-preview["'])(?=[^>]*\bcontent=["']development["'])[^>]*>/i; -test("renders development preview metadata", async () => { - const workerUrl = new URL("../dist/server/index.js", import.meta.url); - workerUrl.searchParams.set("test", `${process.pid}-${Date.now()}`); - const { default: worker } = await import(workerUrl.href); +test("renders production static HTML metadata", async () => { + const html = await readFile(new URL("../out/index.html", import.meta.url), "utf8"); - const response = await worker.fetch( - new Request("http://localhost/", { - headers: { accept: "text/html" }, - }), - { - ASSETS: { - fetch: async () => new Response("Not found", { status: 404 }), - }, - }, - { - waitUntil() {}, - passThroughOnException() {}, - }, - ); - - assert.equal(response.status, 200); - assert.match( - response.headers.get("content-type") ?? "", - /^text\/html\b/i, - ); - assert.match(await response.text(), developmentPreviewMeta); + assert.match(html, /]*\blang=["']fa["'])(?=[^>]*\bdir=["']rtl["'])[^>]*>/i); + assert.match(html, /CoreLink Platform \| زیرساخت محصولات متصل<\/title>/i); + assert.match(html, developmentPreviewMeta); }); From 0c41062d58526960f6275871c012aa7dca4ce614 Mon Sep 17 00:00:00 2001 From: Javid <javid.momeni@gmail.com> Date: Thu, 6 Aug 2026 14:56:42 +0200 Subject: [PATCH 7/7] Keep website CI owned by WEB-01 --- .github/workflows/ci.yml | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 061c9b4..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Website CI - -on: - pull_request: - push: - branches: [main] - -permissions: - contents: read - -jobs: - build-and-test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: npm - - run: npm ci - - run: npm run lint - - run: npm run build:github - env: - NEXT_TELEMETRY_DISABLED: 1 - - run: node --test tests/rendered-html.test.mjs