diff --git a/deployment/receipts/GH-HOLOLAKE-DOMAIN-CONNECTION-SEPARATION-20260810-001.json b/deployment/receipts/GH-HOLOLAKE-DOMAIN-CONNECTION-SEPARATION-20260810-001.json new file mode 100644 index 0000000..c3cabce --- /dev/null +++ b/deployment/receipts/GH-HOLOLAKE-DOMAIN-CONNECTION-SEPARATION-20260810-001.json @@ -0,0 +1,36 @@ +{ + "schema": "guanghu.desktop-delivery-receipt/v1", + "receipt_id": "GH-HOLOLAKE-DOMAIN-CONNECTION-SEPARATION-20260810-001", + "development_id": "DEV-20260809-007", + "source_base_commit": "066f14d0074bd6315fd21da4fbd39948559ea2c6", + "source_commit": "SELF", + "repository": "repo://guanghulab.com/code/bingshuo/hololake-system-architecture#main", + "acceptance": { + "public_entry_opens_domain_gate": true, + "code_channel_account_is_not_domain_login": true, + "runtime_entry_fails_closed_without_handoff": true, + "local_workspace_remains_explicitly_separate": true, + "local_and_cloud_node_modes_are_truthfully_projected": true + }, + "implementation": { + "domain_connection_sheet": "Projects account and registered-node identity, signed domain manifest, scoped session capability and matching online receipt as four separate gates.", + "code_channel_boundary": "Forgejo account and Git remote settings remain available through a separately labelled code-channel and sync path.", + "ui_layering": "Connection and storage dialogs render above the public lighthouse instead of existing only in the accessibility tree behind it.", + "status_copy": "The workspace top bar now says code-channel account and no longer claims that Forgejo authentication is Fifth Domain login." + }, + "verification": { + "tests": "PASS 49; FAIL 0", + "production_build": "PASS", + "developer_id_deep_strict_codesign": "PASS", + "installed_app_binary_sha256": "ed4dd0d0dad51a4aed5fac62263710ab502c744aad0271410d9c245118894b60", + "installed_app_asar_sha256": "7dc31460ccfc11042171a03f0c773a0e27cb53c3267c7c9965e36c15943dfcce", + "current_desktop_visual_acceptance": "PASS: public login visibly opened the domain gate; all four unverified gates were shown; runtime entry stayed disabled; code-channel settings opened separately with explicit non-domain-authority copy." + }, + "not_claimed": [ + "No target-domain signer, live handoff endpoint, domain session capability or online runtime receipt exists yet.", + "No server deployment, production cutover, real Fifth Domain runtime entry or persona-birth claim is made.", + "No Apple notarization was performed; the installed development delivery is Developer ID signed." + ], + "result": "PASS_100_LOCAL_DOMAIN_CONNECTION_BOUNDARY", + "verified_at": "2026-08-10T04:37:44+08:00" +} diff --git a/product-source/guanghu-knowledge-base/src/App.tsx b/product-source/guanghu-knowledge-base/src/App.tsx index 3727ca5..f57d11b 100644 --- a/product-source/guanghu-knowledge-base/src/App.tsx +++ b/product-source/guanghu-knowledge-base/src/App.tsx @@ -12,6 +12,7 @@ import { DomainSurface } from './components/DomainSurface'; import { ModuleLibrarySheet } from './components/ModuleLibrarySheet'; import { cleanDisplayText } from './presentation'; import { WorldEntry } from './components/WorldEntry'; +import { DomainConnectionSheet } from './components/DomainConnectionSheet'; type View = 'editor' | 'history'; type RouteId = 'fifth' | 'main' | 'sub' | 'zero' | 'zero-sense'; @@ -80,6 +81,7 @@ export default function App() { const [activeRoute, setActiveRoute] = useState('fifth'); const [activeModule, setActiveModule] = useState('knowledge'); const [storageSheetOpen, setStorageSheetOpen] = useState(false); + const [domainConnectionOpen, setDomainConnectionOpen] = useState(false); const [storageSheetInitialMode, setStorageSheetInitialMode] = useState<'local' | 'server' | undefined>(); const [serverSession, setServerSession] = useState({ authenticated: false, nodeId: '' }); const [serverProfiles, setServerProfiles] = useState([]); @@ -391,8 +393,7 @@ export default function App() { setWorldEntered(true); }} onOpenConnection={() => { - setStorageSheetInitialMode('server'); - setStorageSheetOpen(true); + setDomainConnectionOpen(true); }} /> )} @@ -414,7 +415,7 @@ export default function App() { setStorageSheetOpen(true); }}>