From c7d195264273acda79d1f84f5d61eb0aaea14234 Mon Sep 17 00:00:00 2001 From: UttyWotty <105616324+UttyWotty@users.noreply.github.com> Date: Mon, 21 Sep 2026 22:05:46 +0900 Subject: [PATCH] docs(site): platform card on home, About mention [v0.26.1] --- CHANGELOG.md | 5 +++++ VERSION | 2 +- public/design/components.css | 1 + public/design/tokens.css | 2 ++ src/components/Home.astro | 1 + src/components/ProductCard.astro | 2 +- src/i18n/about.ts | 4 ++-- src/i18n/home.ts | 18 ++++++++++++++++-- 8 files changed, 29 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 290103f..fa4d8cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Routine `stats.json` refreshes take a PATCH version bump but are grouped rather than listed individually. +## [0.26.1] - 2026-09-21 + +### Changed +- Home gains a fifth card, *The layer above the lines*, linking to `/platform`; About's "who" paragraph names the platform layer (en + ko); a neutral `--line-platform` accent. + ## [0.26.0] - 2026-09-21 ### Added diff --git a/VERSION b/VERSION index 4e8f395..30f6cf8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.26.0 +0.26.1 diff --git a/public/design/components.css b/public/design/components.css index 8862eb8..0276429 100644 --- a/public/design/components.css +++ b/public/design/components.css @@ -101,6 +101,7 @@ .line-procurement { --line: var(--line-procurement); } .line-manufacturing { --line: var(--line-manufacturing); } .line-opsentry { --line: var(--line-opsentry); } +.line-platform { --line: var(--line-platform); } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } @media (max-width: 640px) { diff --git a/public/design/tokens.css b/public/design/tokens.css index f6fa837..6500384 100644 --- a/public/design/tokens.css +++ b/public/design/tokens.css @@ -33,6 +33,7 @@ --line-procurement: #1baf7a; --line-manufacturing: #eb6834; --line-opsentry: var(--brand); + --line-platform: var(--ink-2, #4b5563); /* status / severity — fixed, never themed, never a series */ --sev-critical: #d03b3b; @@ -106,6 +107,7 @@ --line-procurement: #199e70; --line-manufacturing: #d95926; --line-opsentry: var(--brand); + --line-platform: var(--ink-2, #9ca3af); --sev-low: #9ca3af; --surface-0: #121417; --surface-1: #1a1d21; diff --git a/src/components/Home.astro b/src/components/Home.astro index ffbb9bc..3f6f546 100644 --- a/src/components/Home.astro +++ b/src/components/Home.astro @@ -36,6 +36,7 @@ const n = copy.numbers; + diff --git a/src/components/ProductCard.astro b/src/components/ProductCard.astro index dbb8b87..f3ba715 100644 --- a/src/components/ProductCard.astro +++ b/src/components/ProductCard.astro @@ -1,6 +1,6 @@ --- import type { LineCard } from '../i18n/home'; -interface Props { card: LineCard; line: 'fraud' | 'procurement' | 'manufacturing' | 'opsentry' } +interface Props { card: LineCard; line: 'fraud' | 'procurement' | 'manufacturing' | 'opsentry' | 'platform' } const { card, line } = Astro.props; ---
diff --git a/src/i18n/about.ts b/src/i18n/about.ts index d5b47da..014c374 100644 --- a/src/i18n/about.ts +++ b/src/i18n/about.ts @@ -28,7 +28,7 @@ export const about: Record = { heading: 'Who', body: [ 'Opsight Intelligence is built and run from Korea by a small team with a background in OSINT entity classification, procurement data and manufacturing analytics. The platform is one codebase per line on one shared bus, collecting nightly on a single schedule.', - 'Three lines are live — fraud, procurement, manufacturing — and one product, OpSentry, is open source. The platform runs where the data lives; nothing is hosted for a client that the client has not asked for.', + 'Three lines are live — fraud, procurement, manufacturing — one product, OpSentry, is open source, and above the lines sits a platform layer: one entity across them, nightly sanctions screening, the corporate registry, and a consortium exchange that shares hashes and bands. The platform runs where the data lives; nothing is hosted for a client that the client has not asked for.', ], }, where: { @@ -74,7 +74,7 @@ export const about: Record = { heading: '누가', body: [ 'Opsight Intelligence는 OSINT 엔티티 분류, 조달 데이터, 제조 분석 배경을 가진 소규모 팀이 한국에서 만들고 운영합니다. 플랫폼은 라인별 하나의 코드베이스가 하나의 공유 버스 위에서, 하나의 일정으로 매일 밤 수집합니다.', - '세 개의 라인 — 사기, 공공조달, 제조 — 이 운영 중이고, OpSentry 하나는 오픈소스 제품입니다. 플랫폼은 데이터가 있는 곳에서 돌아가며, 고객이 요청하지 않은 것을 고객 대신 호스팅하지 않습니다.', + '세 개의 라인 — 사기, 공공조달, 제조 — 이 운영 중이고, OpSentry 하나는 오픈소스 제품이며, 라인 위에는 플랫폼 계층이 있습니다: 라인을 가로지르는 하나의 엔터티, 매일 밤의 제재 스크리닝, 기업 등기, 해시와 구간만 교환하는 컨소시엄. 플랫폼은 데이터가 있는 곳에서 돌아가며, 고객이 요청하지 않은 것을 고객 대신 호스팅하지 않습니다.', ], }, where: { diff --git a/src/i18n/home.ts b/src/i18n/home.ts index 0e1ed8c..b3822c4 100644 --- a/src/i18n/home.ts +++ b/src/i18n/home.ts @@ -15,7 +15,7 @@ export interface HomeCopy { description: string; hero: { eyebrow: string; title: string; lead: string; lifecycle: string; primary: string; primaryHref: string; secondary: string; secondaryHref: string }; numbers: { heading: string; lead: string; entities: string; clusters: string; notices: string; awards: string }; - lines: { heading: string; lead: string; fraud: LineCard; procurement: LineCard; manufacturing: LineCard; opsentry: LineCard }; + lines: { heading: string; lead: string; fraud: LineCard; procurement: LineCard; manufacturing: LineCard; opsentry: LineCard; platform: LineCard }; honesty: { badge: string; title: string; body: string }; contact: { heading: string; lead: string; emailLabel: string; lineLabel: string; linePlaceholder: string; hint: string; button: string; mailto: string }; } @@ -49,7 +49,7 @@ export const home: Record = { awards: 'Awards with winning price', }, lines: { - heading: 'Three intelligence lines, one platform', + heading: 'Three intelligence lines, one platform above them', lead: 'Specialized engines that publish to the same bus, so signals stay comparable and auditable across markets.', fraud: { badge: 'Fraud', @@ -79,6 +79,13 @@ export const home: Record = { action: 'Install free →', href: '/opsentry', }, + platform: { + badge: 'Platform', + title: 'The layer above the lines', + body: 'One entity per firm, account or wallet across every line, screened nightly against the sanctions lists, enriched from the corporate registry, and a consortium exchange where institutions corroborate a mule signal by hash and band — never a customer.', + action: 'See the four layers →', + href: '/platform', + }, }, honesty: { badge: 'What is real', @@ -150,6 +157,13 @@ export const home: Record = { action: '무료 설치 →', href: '/ko/opsentry', }, + platform: { + badge: '플랫폼', + title: '라인 위의 계층', + body: '모든 라인에 걸쳐 회사·계정·지갑마다 하나의 엔터티, 매일 밤 제재 명단 대조, 기업 등기 정보 보강, 그리고 기관들이 고객 정보 대신 해시와 구간으로 자금세탁 신호를 교차 확인하는 컨소시엄 교환.', + action: '네 개의 계층 보기 →', + href: '/ko/platform', + }, }, honesty: { badge: '무엇이 실제인가',