diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 29e60ad..3923979 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,6 +19,9 @@ jobs: node-version: '22' cache: 'npm' + - name: Verify report attribution and evidence + run: python3 scripts/ci/check-own-results.py + - name: Install dependencies run: npm ci diff --git a/index.html b/index.html index 6938079..005c0b6 100644 --- a/index.html +++ b/index.html @@ -62,21 +62,31 @@

Hyperide Reports

  • -
    Hyper — October 2026 Result Report
    +
    HyperIDE: October 2026 Result Report
    October 2026 monthly - Result report + Ultra / Mextner
  • -
    Conloca — October 2026 Result Report
    +
    Conloca: October 2026 Result Report
    October 2026 monthly - Result report + Ultra / Mextner +
    +
    +
  • +
  • + +
    StateLib: October 2026 Result Report
    +
    + October 2026 + monthly + Ultra / Mextner
  • diff --git a/reports/2026-10-own-results-evidence.json b/reports/2026-10-own-results-evidence.json new file mode 100644 index 0000000..98a960f --- /dev/null +++ b/reports/2026-10-own-results-evidence.json @@ -0,0 +1,518 @@ +{ + "verifiedAt": "2026-11-05", + "authors": [ + { + "account": "alex-mextner", + "displayName": "Alex Ultra", + "reportByline": "Ultra / Mextner" + } + ], + "reports": { + "hyper-2026-10": [ + { + "repo": "hyperide/hyper-saas", + "pr": 825, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-16T01:22:33Z", + "mergeSha": "b0c3a5123add28644d0da367c0e808c7b7e6dd3d", + "url": "https://github.com/hyperide/hyper-saas/pull/825" + }, + { + "repo": "hyperide/hyper-saas", + "pr": 837, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-30T13:15:07Z", + "mergeSha": "ecd0b8f1b0bf8921f740e76b20337d1a0bc9faac", + "url": "https://github.com/hyperide/hyper-saas/pull/837" + }, + { + "repo": "hyperide/hyper-saas", + "pr": 810, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-14T18:39:58Z", + "mergeSha": "da611247987cc6b2fbb955857e4cc6f9d1410f8e", + "url": "https://github.com/hyperide/hyper-saas/pull/810" + } + ], + "state-lib-2026-10": [ + { + "repo": "hyperide/hyper-saas", + "pr": 810, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-14T18:39:58Z", + "mergeSha": "da611247987cc6b2fbb955857e4cc6f9d1410f8e", + "url": "https://github.com/hyperide/hyper-saas/pull/810" + }, + { + "repo": "hyperide/hyper-saas", + "pr": 803, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-30T17:49:58Z", + "mergeSha": "f862a797d98126315b4d52ee931d5a7dd4d7faf0", + "url": "https://github.com/hyperide/hyper-saas/pull/803" + }, + { + "repo": "hyperide/hyper-saas", + "pr": 826, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-30T16:30:35Z", + "mergeSha": "5acccf194d17d4eaf746b3a1a72324853ac87eef", + "url": "https://github.com/hyperide/hyper-saas/pull/826" + }, + { + "repo": "hyperide/hyper-saas", + "pr": 832, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-30T22:02:48Z", + "mergeSha": "b1723e89b082fc21eabc64434dccf4fc8b5bff09", + "url": "https://github.com/hyperide/hyper-saas/pull/832" + }, + { + "repo": "hyperide/hyper-saas", + "pr": 834, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-30T23:32:15Z", + "mergeSha": "4568a6b3af2980be700da51977b6facd1d687cf2", + "url": "https://github.com/hyperide/hyper-saas/pull/834" + }, + { + "repo": "hyperide/hyper-saas", + "pr": 807, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-30T15:27:35Z", + "mergeSha": "f32c4cf9aed3d1d5a62efbdd78877916bd63cfd9", + "url": "https://github.com/hyperide/hyper-saas/pull/807" + } + ], + "conloca-2026-10": [ + { + "repo": "conloca/private", + "pr": 299, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-23T07:05:53Z", + "mergeSha": "2ac9cc7fbabd481334197b605bf72300e5d41ffb", + "url": "https://github.com/conloca/private/pull/299" + }, + { + "repo": "conloca/private", + "pr": 306, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-23T14:37:34Z", + "mergeSha": "e781c6c705ec93471e168f14279f0d87a3cc7f2d", + "url": "https://github.com/conloca/private/pull/306" + }, + { + "repo": "conloca/private", + "pr": 302, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-23T08:45:17Z", + "mergeSha": "5cdba99c7d858aa321e4bb64dddb62cd9cec7c14", + "url": "https://github.com/conloca/private/pull/302" + }, + { + "repo": "conloca/private", + "pr": 296, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-23T06:40:54Z", + "mergeSha": "f3d6aea36b8eff2dc25e6863ab4686a660a8013e", + "url": "https://github.com/conloca/private/pull/296" + }, + { + "repo": "conloca/private", + "pr": 307, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-23T14:52:40Z", + "mergeSha": "70a75505b5722461852713aa22aa5d7b2842bab4", + "url": "https://github.com/conloca/private/pull/307" + }, + { + "repo": "conloca/private", + "pr": 288, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-22T15:59:57Z", + "mergeSha": "34fe714e90e054defc7b05c0e203dcea73e5d69a", + "url": "https://github.com/conloca/private/pull/288" + }, + { + "repo": "conloca/private", + "pr": 289, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-22T22:15:44Z", + "mergeSha": "4c784903d79fce725a752b99c42c4f5b3cb00dfe", + "url": "https://github.com/conloca/private/pull/289" + }, + { + "repo": "conloca/private", + "pr": 192, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-17T14:30:04Z", + "mergeSha": "c02858bf15b57020fecc968bd70866d9f6ddb7a4", + "url": "https://github.com/conloca/private/pull/192" + }, + { + "repo": "conloca/private", + "pr": 224, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-17T15:11:05Z", + "mergeSha": "4fa3cd565e92d577f75a447e2b65c4c956a3ca5a", + "url": "https://github.com/conloca/private/pull/224" + }, + { + "repo": "conloca/private", + "pr": 197, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-17T15:48:14Z", + "mergeSha": "c8940860effb75be5c2cae136108f12b2ebb6f83", + "url": "https://github.com/conloca/private/pull/197" + }, + { + "repo": "conloca/private", + "pr": 243, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-15T20:13:55Z", + "mergeSha": "a7f6ba6ad6b220cb1d7f0f7cf886bb2105dc00fd", + "url": "https://github.com/conloca/private/pull/243" + }, + { + "repo": "conloca/private", + "pr": 235, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-15T16:32:44Z", + "mergeSha": "51fba3c31dc867639763432c7f3a85d291aee9ee", + "url": "https://github.com/conloca/private/pull/235" + }, + { + "repo": "conloca/private", + "pr": 342, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-27T15:46:16Z", + "mergeSha": "ce20346cf302a70229c8378c583062414994be5d", + "url": "https://github.com/conloca/private/pull/342" + }, + { + "repo": "conloca/private", + "pr": 217, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-16T22:53:42Z", + "mergeSha": "13ce65e6d35309af48d0d639315482f58932521b", + "url": "https://github.com/conloca/private/pull/217" + }, + { + "repo": "conloca/private", + "pr": 244, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-15T17:27:07Z", + "mergeSha": "f08bb34d1792ee2200d4426a4afc0c50295ddd10", + "url": "https://github.com/conloca/private/pull/244" + }, + { + "repo": "conloca/private", + "pr": 226, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-15T17:08:27Z", + "mergeSha": "92729b031f3afac0d840739718c318ef4401c812", + "url": "https://github.com/conloca/private/pull/226" + }, + { + "repo": "conloca/private", + "pr": 300, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-23T09:19:30Z", + "mergeSha": "1a9c773b28e1f39ff0b29dfe6488acfb6242eb60", + "url": "https://github.com/conloca/private/pull/300" + }, + { + "repo": "conloca/private", + "pr": 304, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-23T09:14:51Z", + "mergeSha": "456e5c4ee2740be398bd20ce0614bb8eaedfe3f0", + "url": "https://github.com/conloca/private/pull/304" + }, + { + "repo": "conloca/private", + "pr": 309, + "author": "alex-mextner", + "state": "MERGED", + "mergedAt": "2026-10-23T14:54:24Z", + "mergeSha": "8540d9b8616fe12ba72689cb63b3d2ede62ab959", + "url": "https://github.com/conloca/private/pull/309" + } + ] + }, + "approvalPreview": { + "number": 489, + "url": "https://github.com/conloca/private/pull/489", + "headRefOid": "e3ec8ee55ba28030b81d808e2ec45b3d31b83f5c", + "state": "OPEN", + "isDraft": false, + "author": { + "id": "U_kgDOBqa7tg", + "is_bot": false, + "login": "alex-mextner", + "name": "Alex Ultra" + } + }, + "images": [ + { + "path": "reports/state-lib-2026-10/images/caption-before.png", + "sha256": "51a7726c59072f657e954bad98e57c2beb9a37be0acf0353e6c2cc85f18348f7", + "sourcePr": 810, + "repo": "hyperide/hyper-saas", + "capturedAt": "2026-10-14", + "captureTimePrecision": "date", + "width": 850, + "height": 450 + }, + { + "path": "reports/state-lib-2026-10/images/caption-after.png", + "sha256": "8ae9f19a967ee8d48db6f8446cd827a5425a44c5a2c48f65c704d7127b7e57c5", + "sourcePr": 810, + "repo": "hyperide/hyper-saas", + "capturedAt": "2026-10-14", + "captureTimePrecision": "date", + "width": 850, + "height": 450 + }, + { + "path": "reports/conloca-2026-10/images/theme-before.png", + "sha256": "c1772cffc7113284902e9af1c9c77847e7307f955b935894b2071a84615e018d", + "sourceUrl": "https://conloca.com/getting-started/", + "capturedAt": "2026-11-05T20:03:10.819Z", + "sourcePr": 489, + "repo": "conloca/private", + "captureKind": "viewport", + "width": 1440, + "height": 1000 + }, + { + "path": "reports/conloca-2026-10/images/theme-after.png", + "sha256": "b1a80d382d6b855bed76f13df4c90bd408c446749fdcc9bcd073acc9ea2125de", + "sourceUrl": "https://site.pr489.conloca.com/getting-started/", + "capturedAt": "2026-11-05T20:03:12.926Z", + "sourcePr": 489, + "repo": "conloca/private", + "captureKind": "viewport", + "width": 1440, + "height": 1000 + } + ], + "storybookPreviews": { + "verifiedAt": "2026-11-05T22:16:30.758703+00:00", + "workflowStatus": "implemented-awaiting-merge-approval", + "pullRequests": [ + { + "author": "alex-mextner", + "headRefOid": "018f52c31332dc3c1055eadfc6dde63be78b9e59", + "isDraft": false, + "number": 404, + "state": "OPEN", + "url": "https://github.com/conloca/private/pull/404" + }, + { + "author": "alex-mextner", + "headRefOid": "591024553d91fb0aeaad8081f9c39064cb024846", + "isDraft": false, + "number": 509, + "state": "OPEN", + "url": "https://github.com/conloca/private/pull/509" + } + ], + "segments": [ + { + "segment": "main", + "url": "https://pages.hyperide.ai/alex-mextner/conloca-storybook-previews/main/", + "sourceSha": "795967bd48a0f1d8f96d87a562b15922ef529775", + "publication": "operator-published", + "deployExit": 0, + "protectionProbeExit": 0 + }, + { + "segment": "pr-404", + "url": "https://pages.hyperide.ai/alex-mextner/conloca-storybook-previews/pr-404/", + "sourceSha": "018f52c31332dc3c1055eadfc6dde63be78b9e59", + "publication": "operator-published", + "deployExit": 0, + "protectionProbeExit": 0, + "commitStatus": "success" + }, + { + "segment": "pr-489", + "url": "https://pages.hyperide.ai/alex-mextner/conloca-storybook-previews/pr-489/", + "sourceSha": "e3ec8ee55ba28030b81d808e2ec45b3d31b83f5c", + "publication": "operator-published", + "deployExit": 0, + "protectionProbeExit": 0, + "commitStatus": "success" + } + ], + "requiresForgeSignIn": true, + "authenticatedProductionBrowserVerified": false, + "verification": "Deployment receipts, exact-head GitHub statuses and anonymous access protection. The same archive was browser-tested on the real host binary locally; that is not production OAuth acceptance.", + "mainSandboxPathFix": "PR404 carries the prefixed sandbox-path fix; main contains the merged integration branch.", + "deployedE2E": "https://github.com/conloca/private/actions/runs/42052900149/job/127344610560" + }, + "sourceScopes": { + "hyperide/hyper-saas#810": { + "title": "feat(state-lib): headless async toolkit and fail-closed export (HYP-1507)", + "author": "alex-mextner", + "mergeSha": "da611247987cc6b2fbb955857e4cc6f9d1410f8e", + "url": "https://github.com/hyperide/hyper-saas/pull/810", + "files": [ + "server/routes/git.ts", + "server/routes/__tests__/git-push.security.test.ts", + "server/services/git-push-error.ts", + "server/services/__tests__/git-push-tls.test.ts", + "server/utils/git-credentials.ts", + "packages/state-lib/toolkit/src/async-resource.ts", + "packages/state-lib/site/src/lib/highlight.ts", + "packages/state-lib/site/tools/heading-caption.check.mts" + ], + "includedWork": [ + "Headless async toolkit", + "Git push authority, transport policy and typed failure handling", + "Quoted attribute and comment parsing in diagram captions" + ] + } + }, + "checks": [ + { + "name": "CI", + "head_sha": "d4cca87cee086eead00392f1a662de7065a8019c", + "status": "completed", + "conclusion": "success", + "updated_at": "2026-10-14T10:22:11Z", + "repo": "hyperide/hyper-saas", + "run": 38547360197, + "url": "https://github.com/hyperide/hyper-saas/actions/runs/38547360197" + }, + { + "name": "Security Scan", + "head_sha": "d4cca87cee086eead00392f1a662de7065a8019c", + "status": "completed", + "conclusion": "success", + "updated_at": "2026-10-14T10:09:02Z", + "repo": "hyperide/hyper-saas", + "run": 38547359971, + "url": "https://github.com/hyperide/hyper-saas/actions/runs/38547359971" + }, + { + "name": "State docs reading and interactions", + "head_sha": "d4cca87cee086eead00392f1a662de7065a8019c", + "status": "completed", + "conclusion": "success", + "updated_at": "2026-10-14T10:19:19Z", + "repo": "hyperide/hyper-saas", + "run": 38547360009, + "url": "https://github.com/hyperide/hyper-saas/actions/runs/38547360009" + }, + { + "name": "E2E Tests (Deployed Stage)", + "head_sha": "e3ec8ee55ba28030b81d808e2ec45b3d31b83f5c", + "status": "completed", + "conclusion": "success", + "started_at": "2026-11-03T11:37:48Z", + "completed_at": "2026-11-03T11:48:51Z", + "repo": "conloca/private", + "run": 41626469902, + "url": "https://github.com/conloca/private/actions/runs/41626469902/job/125893569803", + "job": 125893569803 + }, + { + "name": "E2E Tests (Deployed Stage)", + "head_sha": "018f52c31332dc3c1055eadfc6dde63be78b9e59", + "status": "completed", + "conclusion": "success", + "started_at": "2026-11-05T15:33:02Z", + "completed_at": "2026-11-05T15:42:55Z", + "repo": "conloca/private", + "run": 42052900149, + "url": "https://github.com/conloca/private/actions/runs/42052900149/job/127344610560", + "job": 127344610560 + }, + { + "name": "CI", + "head_sha": "ce20346cf302a70229c8378c583062414994be5d", + "status": "completed", + "conclusion": "success", + "updated_at": "2026-10-27T16:04:21Z", + "repo": "conloca/private", + "run": 40534284367, + "url": "https://github.com/conloca/private/actions/runs/40534284367", + "jobs": [ + { + "conclusion": "success", + "head_sha": "ce20346cf302a70229c8378c583062414994be5d", + "html_url": "https://github.com/conloca/private/actions/runs/40534284367/job/122295162949", + "id": 122295162949, + "name": "Validate", + "status": "completed" + }, + { + "conclusion": "success", + "head_sha": "ce20346cf302a70229c8378c583062414994be5d", + "html_url": "https://github.com/conloca/private/actions/runs/40534284367/job/122299074596", + "id": 122299074596, + "name": "E2E Tests (Deployed Stage)", + "status": "completed" + }, + { + "conclusion": "success", + "head_sha": "ce20346cf302a70229c8378c583062414994be5d", + "html_url": "https://github.com/conloca/private/actions/runs/40534284367/job/122303701660", + "id": 122303701660, + "name": "Deploy Production", + "status": "completed" + } + ] + }, + { + "conclusion": "success", + "head_sha": "e3ec8ee55ba28030b81d808e2ec45b3d31b83f5c", + "name": "CI", + "status": "completed", + "updated_at": "2026-11-03T11:48:52Z", + "url": "https://github.com/conloca/private/actions/runs/41626469902", + "repo": "conloca/private", + "run": 41626469902 + } + ], + "designCredits": [ + { + "name": "Saba", + "contribution": "Completed How it works design", + "source": "https://github.com/conloca/private/pull/342", + "sourceCommit": "https://github.com/conloca/landing/commit/9582b68455ae7b6b2d4987c7c93ee32303c76a3f", + "reportedWorkBy": "alex-mextner", + "reportedWork": "Integrated the completed design into the production website", + "includedInOwnerWork": false + } + ] +} diff --git a/reports/conloca-2026-10/images/theme-after.png b/reports/conloca-2026-10/images/theme-after.png new file mode 100644 index 0000000..5c4f9c4 Binary files /dev/null and b/reports/conloca-2026-10/images/theme-after.png differ diff --git a/reports/conloca-2026-10/images/theme-before.png b/reports/conloca-2026-10/images/theme-before.png new file mode 100644 index 0000000..fc45443 Binary files /dev/null and b/reports/conloca-2026-10/images/theme-before.png differ diff --git a/reports/conloca-2026-10/index.html b/reports/conloca-2026-10/index.html index d3dbd8a..d7136a4 100644 --- a/reports/conloca-2026-10/index.html +++ b/reports/conloca-2026-10/index.html @@ -1,107 +1,336 @@ -Conloca — October 2026 Result Report
    - -
    -
    183
    Merged PRs · private repo
    -
    0.2.3
    Latest public release records
    -
    7
    Package records at 0.2.3
    -
    3 / 3
    Final CI jobs successful
    -
    -

    Merged PR census: 3 / 15 / 73 / 92 across October 1–7 / 8–14 / 15–21 / 22–31. The count includes mirror, CI, tests and documentation—not 183 user-facing features or a measure of effort. Final CI jobs means Validate, deployed-stage E2E and Deploy Production in one exact build. No monthly line-churn total is asserted.

    -

    What the evidence supports

    -
    Implemented & deployed by pipeline

    A stronger default-branch build

    The final October merge, ceffbf327, completed CI at 19:45:36 UTC on October 31. Validate, deployed-stage E2E and Deploy Production all succeeded. This supersedes the earlier pending #397 snapshot and the failed intermediate #369 run.

    It proves those jobs ran successfully—not independent production browser acceptance, package installation, or owner approval.

    -
    Released

    Public records stop at 0.2.3

    GitHub release records were observed for 0.2.0 and 0.2.1 on October 14, 0.2.2 on October 26 and 0.2.3 on October 29. Seven packages have 0.2.3 records.

    Later merged conversion, upgrade and preview work must not be described as a verified new package release. No independent npm install was performed for this report.

    -
    Acceptance not established

    Pipeline success is not complete product acceptance

    The repository evidence establishes specific builds and test outcomes, not completion of the entire connect → edit → save → preview → publish journey across all supported environments. The remaining open PRs and package rollout conditions must be assessed separately.

    -
    Open pull requests

    Docs/gallery and publish summary are not delivered

    #362 remained open with a new October 31 head: validation passed, but deployed-stage E2E failed. #363 remained an open draft despite successful exact-head CI. Neither is counted as a merged October result.

    -
    -
    -

    How the month progressed

    -

    October 1–7 · Build a credible test surface

    Mirror workflow and test configuration were repaired; preview-session diagnostics were added without claiming a behavior fix. The separate landing integration supplied CMS blocks, routes and shared site data for a more representative editing surface.

    -

    October 8–14 · Unblock a free launch, then repair released regressions

    Billing-off removed an unmet production dependency while retaining billing coverage in staging. Public cloud-astro packaging expanded what users could install. Two regression batches then repaired rich text, fragments, indexing and related behavior found in 0.2.0; #210’s validation and deployed-stage E2E were independently checked.

    -

    October 15–21 · Protect content and workspace boundaries

    The focus moved to writes: tab isolation, safe Git commits, non-overwriting media moves and correct MDX write-back. Refresh and workspace security received targeted fixes. Generated Typia contracts and repository commands through rig.yaml improved consistency, but did not finish the separate StateBus migration.

    -

    October 22–27 · Exercise the editor journey

    Invite routing, page state, block actions and undo gained corrections and regression coverage. GitHub authority was reconciled with existing workspaces, not just fresh previews. The How it works site update landed after browser proof; dependency-review and mirror workflows moved to a self-hosted pool.

    -

    October 28–31 · Change onboarding, then harden the operational tail

    Keyless editing was followed by sharing, static-site previews, agent tooling and consistent media processing. GitHub reinstall recovery and large-push handling addressed operational failures. After 15:24 UTC, #398 added queued imports, #400 added a doctor warning and #401 fixed a DOM-test teardown race. The final default-branch CI and production job succeeded before the month closed.

    -
    -

    Proof, review and remaining work

    Evidence is classified by what was actually read. Historical PR proof is useful, but it is not a new run of the product. No review-round counts or approval claims have been reconstructed from incomplete records.

    -
    - - - - - - -
    AreaObserved proofBoundary / next check
    Write isolationPR #224: exact-head Validate and deployed-stage E2E passed. CI evidence.Confirms that tested snapshot, not every later build or all multi-tab environments.
    Content parsingPR #239 reports red/green regressions; successful Validate and deployed-stage E2E were checked independently. CI evidence.This verifies a specific hardening change, not closure of the entire security backlog.
    Keyless editorPR #344 reports Chromium/Firefox/WebKit, static-output parity and draft-preview proof; exact-head validation/E2E passed. CI evidence.Live Vercel was not exercised; reported cold-open time was 6–7 seconds against a three-second target.
    Docs/gallery #362Head aa056647, committed October 31 at 21:46 UTC: Validate succeeded, deployed-stage E2E failed and production was skipped. The log shows an editor-page assertion timing out. Failed E2E job.Still open. The earlier lint/artifact failure is historical, not the current blocker. A fresh stage was deployed in this run; its current browser availability was not tested.
    Publish summary #363Head 76bb09e: Validate and deployed-stage E2E succeeded; production skipped. Exact-head CI. PR reports 52 Nx tasks, 226 Storybook tests and 162 real-Git-runtime tests.Still an open draft. Preview expired October 30; authenticated publication and team acceptance remain unestablished.
    Final pipelineceffbf327: Validate, deployed-stage E2E and production deployment all succeeded. Final October run.Do not infer owner acceptance, customer-site upgrades or new public package publication from CI success.
    -
    -

    Release and operations

    The next coordinated package release and real-site upgrade checks remain necessary. Repository quotas were implemented without enabling a quota value in that PR. The affected repository’s recovery, preview-site updates and sender-domain readiness require operational confirmation.

    -

    Architecture and evidence retention

    StateBus #84 remained an open draft in the collected evidence; full-page docs preview is still unavailable. Evidence retention also remains a separate issue: a path in a log or a green job is not proof that screenshots are retrievable now.

    -
    -

    File impact — selected changes

    The expandable rows below are a deliberately small, verified sample: two files from #197, one from #398 and one from #400. Counts are per-PR diffs, not month-wide unique-file totals. Links point to inspected lines at the final October default-branch commit. This avoids inventing a monthly diff from a PR census.

    -
    -

    Selected merge timeline

    A navigable selection of real merge commits behind this narrative. Captions describe the associated PRs; this is not a complete commit log.

    -

    Design decisions worth retaining

    The following records summarize decisions evidenced by merged PRs. They are report summaries—not newly ratified project ADRs.

    -

    Repository contributions

    The verified merged-PR author counts are 89 for alex-mextner, 80 for NikoT2 and 14 for other authors. These are repository authorship counts—not sole-credit, personal activity or effort measurements. PR census.

    The separate October 6 landing/CMS integration and How it works website update are credited through their repository records rather than private correspondence. No customer-acquisition, revenue or campaign result is asserted.

    -

    Next priorities

    Recommendations from the evidence gaps—not new commitments assigned to the team.

      -
    1. Close the real-user acceptance loop. Map findings to a PR and build SHA, then retest connect → edit page/fragment/data → save → preview → publish → view without authentication. Record expected/actual behavior and durable evidence.
    2. -
    3. Make #362 and #363 reviewable. Diagnose the current #362 deployed-stage E2E failure; restore a current #363 preview, run authenticated publication and obtain team review. Historical checks are not enough.
    4. -
    5. Finish the release sequence. Coordinate public packages, backend/app and customer sites; verify installed versions and perform real upgrade/conversion smoke tests. Confirm affected-repository recovery and configuration-dependent preview/email behavior.
    6. -
    7. Keep proof and approval separate from CI. Preserve scenario evidence and screenshots where available. Before any new production deployment, present the evidence for explicit owner approval rather than treating green CI as acceptance.
    8. -

    Source context: PR #362 · PR #363 · PR #377 · PR #395 · PR #320.

    -

    Coverage and limitations

    Reporting window: October 1–31, 2026 (UTC). The original repository evidence ended at October 31, 15:24 UTC. A targeted November 1 read-only refresh covered all October 31 merged PR search results, selected exact-head/default-branch workflows and the latest public GitHub releases. It added three merges and replaced stale pending/failed-build descriptions with their terminal outcomes.

    Repository evidence includes the month’s PR census, 66 directly checked PR records in the original evidence set, selected jobs, public release records and the landing commit. This report is a selective technical synthesis, not an exhaustive audit of every branch, ticket, deployment or user scenario. No new product tests, npm installation, production browser audit, business-metric estimate or screenshot recapture was performed.

    Some repository evidence links are access-controlled and require permission to view. This public report contains no private correspondence, customer identifiers, credentials or detailed security exploit mechanisms. Merge, release, deployment and product acceptance remain distinct evidence levels.

    -
    + + + + + Conloca: October 2026 + + + + + +
    + +
    +

    + Work by Ultra / Mextner. October 2026 results; status checked 5 + November. Source links may require repository access. +

    +
    +

    Merged

    +
    +
    +

    Editor actions

    +

    + Restored block dragging and Undo after adding a block. Dashboard + New Page opens the create dialog. New unpublished pages display + Draft, including after translation edits. +

    +

    + #299 + · + #306 + · + #302 + · + #296 + · + #307 +

    +
    +
    +

    Correct workspace and branch

    +

    + Invites open the workspace the user joined. Writes stay on the + repository, branch and site shown in their tab, even when another + tab changes workspace. +

    +

    + #288 + · + #289 + · + #192 + · + #224 +

    +
    +
    +

    Content and media safety

    +

    + CMS commits preserve unrelated staged files. Asset moves do not + overwrite an existing file. Draft images render in the canvas, and + primary-root MDX saves return to the original file. +

    +

    + #197 + · + #243 + · + #235 +

    +
    +
    +

    How it works page

    +

    + Integrated Saba’s completed design into the production site. Added + responsive, enlarged-text and reduced-motion checks, and removed + the visible jump during delayed hydration. +

    +

    + #342 + · Production +

    +
    +
    +

    Storybook and browser coverage

    +

    + Added standalone CMS and composed app catalogues, interactive + state stories, desktop/mobile captures, and deployed-stage checks + for editor routes and primary actions. +

    +

    + #217 + · + #244 + · + #226 + · + #300 + · + #304 + · + #309 +

    +
    +
    +
    +
    +

    Ready for approval

    +

    + Current preview, 5 November. Separate from the October merges above. +

    +
    + IMPLEMENTED · NOT MERGED +

    Documentation theme picker

    +

    + Added Light, Dark and System controls with visible selection, + keyboard navigation and touch targets. Current-head CI and + deployed-stage E2E passed; the implementation awaits team approval. +

    +

    + #489 + · + Preview + · + Deployed E2E +

    +
    +
    +
    +

    Before / after

    +

    + Theme control on production and PR #489, captured at the same 1440px + viewport on 5 November. The new control is on the preview only. +

    + +
    +
    +

    Checks and previews

    +

    + Protected Storybook: + Main + · + Publisher preview #404 + · + Theme-picker preview #489. Forge sign-in is required. +

    +

    + Published these catalogue snapshots and added their links to PR + descriptions. The publisher and automatic link refresh are implemented + in + #404 + and + #509; both await merge approval. +

    +

    + Publisher deployed-stage E2E. PR #404 includes the sandbox-path fix for prefixed catalogues; Main + tracks the merged branch. +

    +

    + How it works: production deployment and E2E + · + Interactive Storybook scenarios and screenshot workflow + · + Theme-picker deployed-stage E2E. +

    +
    + +
    + + + + diff --git a/reports/hyper-2026-10/index.html b/reports/hyper-2026-10/index.html index 9c970cf..9e1bc66 100644 --- a/reports/hyper-2026-10/index.html +++ b/reports/hyper-2026-10/index.html @@ -1,113 +1,119 @@ - -Hyper — October 2026 Result Report -
    -
    Source access: Linked repository evidence may require project access. This report distinguishes merged code, historical verification and product release acceptance.
    -
    -
    11PRs merged into hyper-saas in October
    Metadata-confirmed, not an ecosystem total
    0.1.75Extension version/changelog cut
    Both-store publication not established
    Still openCanvas #823 and Inspector #831
    Candidate evidence, not shipped features
    -
    -

    What actually reached main

    These eleven PRs have October merged_at timestamps. Merge metadata takes precedence over stale “not merged” wording in PR descriptions. Counts are limited to this repository and window; no file, line or commit totals are inferred by adding overlapping PR diffs.

    UTC datePRIntegrated resultMerge SHA
    10-14#810Headless async toolkit and bounded, fail-closed package export.da611247
    10-16#825Extension 0.1.75 version and changelog cut.b0c3a512
    10-30#837Dependency updates and bounded MCP request handling.ecd0b8f1
    10-30#807API docs preserve ordinary names that resemble compiler symbols.f32c4cf9
    10-30#802Generated immutable commands, shared publication/history and full-entry budgets.659d9ef4
    10-30#826Operation authority prevents stale work from publishing another owner’s state or feedback.5acccf19
    10-30#803Validated immutable record adapter using the existing Runtime.f862a797
    10-30#832Whole-entry specialization, immutable save capture and keyed-row completion updates.b1723e89
    10-30#833Checked keyed-row patch boundary for actual text edits.6002c639
    10-30#834Certified cold JSON import without an extra whole-document clone.4568a6b3
    10-31#809Multi-file live examples, browser compilation and traceable benchmark tooling.7669cfbd

    Author accounts in this verified set: alex-mextner on eight PRs and smoothbricker on three. Account names are not silently mapped to people or used as a complete contribution census.

    -

    Product candidates: useful progress, still open

    -
    OPEN · NOT MERGED

    Canvas: keep selection and manual edits intact

    #823 at a4caec76 separates read-only selection observation from mutation authority, keeps newer selection from being overwritten by an earlier move, and preserves manual text around move/save. AI recovery remains read-only and starts only after an explicit Fix with AI click.

    The source-bound result manifest records byte-exact restore, selection retention and zero AI requests before the click versus one afterward. The PR records 188 focused tests, 13/13 native assertion sets and ten consecutive typing → move/write → typing → save scenarios. CI run 38942173036 independently reports success for this head. These are historical proofs, not a fresh VS Code run in this reporting pass.

    Remaining: integrate the stacked branch, reassess its current release readiness, and complete real host/SaaS, Undo/Redo and overall product acceptance. The linked typing/selection screenshot is an existing artifact; it was not visually re-inspected for this report.

    -
    OPEN · NOT MERGED

    Inspector: localize subscriptions, count the complete cost

    #831 moves 36 style values from root-panel state to section-local subscriptions. Its 17 October source-bound report measures the same controlled Inspector workflow at source e8dd27e4.

    MetricParentField-local candidate
    Root-panel calls per 1,000 edits1,01313
    Whole-layout calls per 1,000 edits1,0012
    Main-thread work per 1,000 edits, CPU ×11,314.97 ms799.52 ms
    Application + added library code3,282 lines3,191 lines
    Actual right-webview gzip373,130 B375,534 B

    Interpretation: the tested stress workflow does less broad UI work, but total code savings are small and the bundle grows. An equally localized native control is comparable; the equal-eight-write comparison does not establish a CPU advantage. This is not measured physical typing latency, developer productivity or live AST/HMR acceptance.

    -
    OPEN · NOT MERGED

    Live examples: actual completion controls and keyboard continuity

    #822 adds real issue-completion checkboxes, separate selection, focus restoration and duplicate-action protection. The PR describes Chromium/WebKit coverage, but its final full gate and deployed-lab acceptance are not established here. The latest metadata shows it still open at 20ef733c, now targeting main after #809 merged; older stacked-branch wording is not used as current status.

    -

    State-lib: a bounded application result

    #832 integrates complete-entry specialization and work elimination. Its research report reports completion-handler medians at 1,200 visible Boards rows of 63.2 → 1.0 ms in Chromium and 93 → 1 ms in WebKit. The comparison uses pinned application artifacts and a synthetic API. It does not cover the entire edit/move/Undo/Redo workflow or production traffic.

    The cost is retained: the complete state-lib entry is 42,166 gzip bytes versus 37,132 for the equally optimized baseline; small fixtures retain extra heap. Handler and next-frame timings are not field INP or completed paint. The historical measurements were not rerun after the 30 October replay. Its replay note lists focused compiler/Node/site checks and explicitly says eight Wasm contracts were not run.

    Engineering approach: preserve one Runtime; make operation ownership explicit; compare complete application entries and retain adverse results. Upstream library integration does not close the separate application-adoption and staging tasks.

    -

    Verification and release ledger

    Evidence is separated into repository state, historical test execution and delivery acceptance. No product test suite or benchmark was newly executed to prepare this report.

    -
    HISTORICAL HOSTED PASS

    #810: integrated toolkit evidence

    CI and Security Scan passed. The actual Tests job log was read in the prior evidence pass: 7,834 app passed, 7 skipped, 0 failed; 1,040 native passed; all 79 site gates passed.

    Those counts belong to tested merge-ref 1d526fb9 (head d4cca87 plus base 81d0b05), not all later main revisions. The PR records explicit owner acceptance for its bounded reviewed tree; it is not blanket acceptance of the month’s work.

    -
    HOSTED FAILURES VISIBLE

    #837 and late-October #809

    The refresh confirms CI run 41059658812 and six other returned workflows failed at #837 head 539fe4c. CI run 41236201667 and six other returned workflows also failed at #809 head ecd65533.

    #837 describes a local verification fallback. The precise hosted failure cause was not independently established from job annotations here. A merged branch or a PR’s local verification narrative is not labeled as passing hosted CI.

    -
    RELEASE CUT ≠ STORE PROOF

    0.1.75: matrix and publication limits

    #825 is merged. Its reported E2E matrix is 1,815 passed, 26 failed, 33 flaky, 1,228 skipped; this is not a fully green matrix. The PR attributes failures to pre-existing issues or flakes, and documents false-positive multi-select checks in the older version.

    Registry APIs/pages in the prior check did not yield usable proof of both stores’ actual 0.1.75 versions. Publish run, release SHA and both registry versions remain to be reconciled.

    -
    SEPARATE ADMISSION WORK

    Canvas, Inspector and application rollout

    Canvas #823 and Inspector #831 are open, even where saved tests or CI are green. Companion harness #169 also remained an independent open PR in the previous evidence snapshot.

    Fresh tree-specific readiness checks and human acceptance remain required before a new production release of the product. The report does not establish that those gates have been completed.

    -

    Next steps

    1. Establish the delivery baseline. Match 0.1.75’s release SHA, publish workflow and actual versions in both stores. Diagnose late-October hosted failures and tie any accepted local fallback to the exact final tree.
    2. Finish Canvas acceptance. Integrate and recheck the candidate, then demonstrate typing/selection/Undo/Redo and shared SaaS behavior against the intended release tree. Present evidence for owner acceptance before deployment.
    3. Complete state-lib admission. Resolve remaining whole-entry, adoption and staging criteria; repeat source-bound measurements after integration. Retain the native comparison and the bundle/heap regressions rather than claiming universal superiority.
    4. Close lab and E2E gaps. Verify #822’s final source and deployed-lab behavior, then address multi-select false positives and the separate ownership-safe E2E harness.
    -

    Coverage and boundaries

    Core evidence: GitHub PR metadata, selected source-bound reports/manifests and historical CI results from hyperide/hyper-saas. The 1 November refresh confirmed all eleven October merges and the highlighted candidate states. An October-updated-PR search for alex-mextner/hyper-canvas-draft returned no matches; this is not a claim of no commits or no work there.

    No unrelated bot projects, rig results or conloca results are included. No total LOC, file count, review count, productivity percentage or universal completion claim is invented. Evidence links may require repository access. The findings do not establish a new product deployment or blanket product acceptance.

    -
    \ No newline at end of file + + + + + + HyperIDE: October 2026 + + + + + +
    + +
    +

    + Work by Ultra / Mextner. October 2026 results; status checked 5 + November. Source links may require repository access. +

    +
    +

    Merged

    +
    +
    +

    Extension 0.1.75 release cut

    +

    + Updated the extension version and changelog. The release + preparation is merged into main. +

    +

    + #825 +

    +
    +
    +

    Dependency fixes

    +

    + Updated the extension and root dependencies, added dependency + regression tests, and bounded MCP request handling. +

    +

    + #837 +

    +
    +
    +

    Safer Git push

    +

    + Bound push credentials to the checked project, preserved its + transport settings, and kept authentication failures out of raw + logs. This was part of #810, alongside the toolkit and docs + changes in the StateLib report. +

    +

    + #810 +

    +
    +
    +
    +
    +

    StateLib

    +

    + The async toolkit, immutable records, operation ownership, + complete-entry compiler and cold-import changes are covered in the + separate StateLib report. +

    +
    +
    +

    Checks

    +

    + The + tests, types and extension build + and + security scan + passed for the merged #810 change. +

    +
    + +
    + + + + diff --git a/reports/shared/october-own.css b/reports/shared/october-own.css new file mode 100644 index 0000000..fc56be2 --- /dev/null +++ b/reports/shared/october-own.css @@ -0,0 +1,117 @@ +.report-section { + margin: 30px 0; +} +.report-section p, +.report-section li { + line-height: 1.65; + color: var(--text-dim); +} +.report-section p { + margin: 10px 0; +} +.report-section h2 { + margin-bottom: 14px; +} +.report-section h3 { + margin: 0 0 8px; + font-size: 1.08rem; +} +.report-section strong { + color: var(--text); +} +.results { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); + gap: 16px; +} +.result { + background: var(--card); + border: 1px solid var(--border); + border-radius: 10px; + padding: 20px; +} +.result p:last-child { + margin-bottom: 0; +} +.refs { + font-size: 0.85rem; +} +.byline { + color: var(--text-dim); + font-size: 0.85rem; + margin: 20px 0; +} +.status-label { + display: inline-block; + border: 1px solid var(--border); + border-radius: 5px; + font-size: 0.75rem; + padding: 4px 8px; + margin-bottom: 12px; +} +.gallery { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 16px; + margin-top: 18px; +} +.gallery figure { + margin: 0; + background: var(--card); + border: 1px solid var(--border); + border-radius: 8px; + overflow: hidden; +} +.gallery img { + display: block; + width: 100%; + height: auto; +} +.gallery figcaption { + padding: 12px 14px; + color: var(--text-dim); + font-size: 0.85rem; + line-height: 1.5; +} +.report-nav { + display: flex; + gap: 18px; + flex-wrap: wrap; + margin: 24px 0; +} +a { + overflow-wrap: anywhere; +} +.fade-in { + opacity: 1; + transform: none; +} +footer { + border-top: 1px solid var(--border); + margin-top: 36px; + padding: 22px 0 36px; + color: var(--text-dim); + font-size: 0.8rem; +} +@media (max-width: 650px) { + .gallery { + grid-template-columns: 1fr; + } + .container { + padding-left: 16px; + padding-right: 16px; + } + .result { + padding: 17px; + } +} +@media print { + .fade-in { + opacity: 1 !important; + transform: none !important; + } + .result, + figure { + break-inside: avoid; + } +} diff --git a/reports/state-lib-2026-10/images/caption-after.png b/reports/state-lib-2026-10/images/caption-after.png new file mode 100644 index 0000000..e3d8ff9 Binary files /dev/null and b/reports/state-lib-2026-10/images/caption-after.png differ diff --git a/reports/state-lib-2026-10/images/caption-before.png b/reports/state-lib-2026-10/images/caption-before.png new file mode 100644 index 0000000..3ec54b0 Binary files /dev/null and b/reports/state-lib-2026-10/images/caption-before.png differ diff --git a/reports/state-lib-2026-10/index.html b/reports/state-lib-2026-10/index.html new file mode 100644 index 0000000..79343d4 --- /dev/null +++ b/reports/state-lib-2026-10/index.html @@ -0,0 +1,201 @@ + + + + + + StateLib: October 2026 + + + + + +
    + +
    +

    + Work by Ultra / Mextner. October 2026 results; status checked 5 + November. Source links may require repository access. +

    +
    +

    Merged

    +
    +
    +

    Async toolkit and immutable records

    +

    + Added framework-neutral async state and validated immutable + records on the existing Runtime. Production and testing exports + are separate. +

    +

    + #810 + · + #803 +

    +
    +
    +

    Operation ownership

    +

    + Prevented superseded async work from publishing state or feedback + under a newer operation. +

    +

    + #826 +

    +
    +
    +

    Complete application entries

    +

    + Added fixed-entry compilation and output rollback. Immutable save + capture and keyed-row completion updates avoid redundant document + work. +

    +

    + #832 +

    +
    +
    +

    One less full-document copy

    +

    + Certified a JSON field while importing it, then adopted that exact + root. The normal copying replace API keeps its existing behavior. +

    +

    + #834 +

    +
    +
    +

    Documentation fixes

    +

    + Preserved ordinary API names in generated docs and fixed quoted + attributes leaking into diagram captions. +

    +

    + #807 + · + #810 +

    +
    +
    +
    +
    +

    Before / after

    +

    + Diagram caption rendering, captured for #810. The same fixture now + displays the label without leaking attribute text. +

    + +

    + Original browser captures from 14 October, retained with + #810. +

    +
    +
    +

    Checks

    +

    + Documentation browser tests + · + Runtime, types and build checks. Source and test details for compilation and import are attached to + #832 + and + #834. +

    +
    + +
    + + + + diff --git a/scripts/ci/check-own-results.py b/scripts/ci/check-own-results.py new file mode 100644 index 0000000..3386d40 --- /dev/null +++ b/scripts/ci/check-own-results.py @@ -0,0 +1,129 @@ +from pathlib import Path +from html.parser import HTMLParser +import hashlib, json, unittest + +ROOT = Path(__file__).resolve().parents[2] + + +class Links(HTMLParser): + def __init__(self, text): + super().__init__() + self.urls = [] + self.feed(text) + + def handle_starttag(self, tag, attrs): + if tag == "a": + self.urls.append(dict(attrs).get("href", "")) + + +class ReportContract(unittest.TestCase): + def setUp(self): + self.data = json.loads( + (ROOT / "reports/2026-10-own-results-evidence.json").read_text() + ) + + def test_only_owner_october_merges(self): + for rows in self.data["reports"].values(): + for r in rows: + self.assertEqual(r["author"], "alex-mextner") + self.assertEqual(r["state"], "MERGED") + self.assertTrue(r["mergedAt"].startswith("2026-10-")) + + def test_images_match_recorded_evidence(self): + for r in self.data["images"]: + b = (ROOT / r["path"]).read_bytes() + self.assertEqual(b[:8], b"\x89PNG\r\n\x1a\n") + self.assertEqual(hashlib.sha256(b).hexdigest(), r["sha256"]) + + def test_live_catalogue_links_not_just_pr_links(self): + urls = Links((ROOT / "reports/conloca-2026-10/index.html").read_text()).urls + base = "https://pages.hyperide.ai/alex-mextner/conloca-storybook-previews/" + for segment in ["main", "pr-404", "pr-489"]: + self.assertIn(base + segment + "/", urls) + + def test_new_workflows_not_presented_as_merged(self): + data = self.data["storybookPreviews"] + self.assertEqual(data["workflowStatus"], "implemented-awaiting-merge-approval") + self.assertEqual(data["authenticatedProductionBrowserVerified"], False) + for r in data["pullRequests"]: + self.assertEqual(r["author"], "alex-mextner") + self.assertEqual(r["state"], "OPEN") + self.assertFalse(r["isDraft"]) + + def test_all_ci_links_have_source_receipts(self): + receipts = {r["url"] for r in self.data.get("checks", [])} + for slug in self.data["reports"]: + for url in Links((ROOT / "reports" / slug / "index.html").read_text()).urls: + if "/actions/runs/" in url: + self.assertIn(url, receipts) + + def test_pr810_combined_scope_is_supported(self): + detail = self.data.get("sourceScopes", {}).get("hyperide/hyper-saas#810", {}) + self.assertIn("server/routes/git.ts", detail.get("files", [])) + self.assertIn( + "packages/state-lib/toolkit/src/async-resource.ts", detail.get("files", []) + ) + + def test_report_styles_have_one_scoped_source(self): + style = ROOT / "reports/shared/october-own.css" + self.assertTrue(style.is_file()) + for slug in self.data["reports"]: + text = (ROOT / "reports" / slug / "index.html").read_text() + self.assertIn("../shared/october-own.css", text) + self.assertNotIn("