Skip to content

Make API reference header state reliable - #95

Merged
SandroMaglione merged 1 commit into
mainfrom
codex/static-github-stars
Aug 12, 2026
Merged

Make API reference header state reliable#95
SandroMaglione merged 1 commit into
mainfrom
codex/static-github-stars

Conversation

@SandroMaglione

Copy link
Copy Markdown
Member

Summary

  • show the active theme mode (System, Light, or Dark) in the header control
  • fetch the repository star count during the GitHub Pages build
  • render the count directly into static HTML and remove the browser-side GitHub API request
  • validate the build input and document the Pages workflow contract

The previous theme label described the next action, which made light and dark appear inverted. The star badge depended on a cross-origin browser request that content blockers could suppress, leaving the badge hidden without an error.

Changeset

  • Added or updated for a library or package-metadata change
  • Not required because this PR does not change src/ or package.json

Validation

  • pnpm check
  • Relevant example checks, when examples changed
  • Reviewed the automated type-performance report, when the public TypeScript API or inference changed
  • Reviewed the automated runtime-performance report, when runtime behavior changed

@github-actions

Copy link
Copy Markdown
Contributor

Type performance

Measured with TypeScript 6.0.3 and skipLibCheck=true.

Scenario Base PR Difference
Effect only 55 55 0 (0.0%)
Import effect-machine 55 55 0 (0.0%)
Machine.defineStates (3 states) 2,965 2,965 0 (0.0%)
Machine.make (3 states, 2 events) 8,715 8,715 0 (0.0%)
machine.handle (3 states, 2 transitions) 23,492 23,492 0 (0.0%)
machine.handle (depth 8) 117,075 117,075 0 (0.0%)
machine.handle (depth 12) 129,713 129,713 0 (0.0%)
machine.handle (depth 16) 145,055 145,055 0 (0.0%)
machine.handle (depth 24) 183,851 183,851 0 (0.0%)
machine.handle (wide depth 16) 214,189 214,189 0 (0.0%)
machine.handle (parallel/history/choice) 132,667 132,667 0 (0.0%)
machine.handle (4 successive calls) 128,674 128,674 0 (0.0%)
machine exact input/output/error/services 110,584 110,584 0 (0.0%)
execution adapter readiness 127,854 127,854 0 (0.0%)

Marginal instantiations are measured against the matching setup without that API call:

Scenario Base PR Difference
Import effect-machine 0 0 0
Machine.defineStates (3 states) 2,910 2,910 0 (0.0%)
Machine.make (3 states, 2 events) 5,742 5,742 0 (0.0%)
machine.handle (3 states, 2 transitions) 14,777 14,777 0 (0.0%)
machine.handle (depth 8) 109,601 109,601 0 (0.0%)
machine.handle (depth 12) 121,039 121,039 0 (0.0%)
machine.handle (depth 16) 135,181 135,181 0 (0.0%)
machine.handle (depth 24) 171,577 171,577 0 (0.0%)
machine.handle (wide depth 16) 202,224 202,224 0 (0.0%)
machine.handle (parallel/history/choice) 114,331 114,331 0 (0.0%)
machine.handle (4 successive calls) 113,703 113,703 0 (0.0%)
machine exact input/output/error/services 100,670 100,670 0 (0.0%)
execution adapter readiness 102,092 102,092 0 (0.0%)
Check times (informational)
Scenario Base PR
Effect only 0.03s 0.03s
Import effect-machine 0.03s 0.03s
Machine.defineStates (3 states) 0.09s 0.09s
Machine.make (3 states, 2 events) 0.15s 0.15s
machine.handle (3 states, 2 transitions) 0.21s 0.22s
machine.handle (depth 8) 0.47s 0.47s
machine.handle (depth 12) 0.52s 0.51s
machine.handle (depth 16) 0.57s 0.56s
machine.handle (depth 24) 0.65s 0.64s
machine.handle (wide depth 16) 0.67s 0.69s
machine.handle (parallel/history/choice) 0.58s 0.56s
machine.handle (4 successive calls) 0.55s 0.55s
machine exact input/output/error/services 0.47s 0.48s
execution adapter readiness 0.52s 0.53s

Type instantiations are the comparison metric. Check time varies with runner load and is informational only.

@SandroMaglione
SandroMaglione merged commit e6ffcac into main Aug 12, 2026
9 checks passed
@SandroMaglione
SandroMaglione deleted the codex/static-github-stars branch August 12, 2026 04:18
@github-actions

Copy link
Copy Markdown
Contributor

Runtime performance

Median of 5 independent benchmark processes on AMD EPYC 9V74 80-Core Processor with Node v24.18.0.

Pull request baseline

Scenario Effect Machine XState 5 XState 6 alpha
Plan counter transitions 161,981 transitions/s 172,365 transitions/s 16,289 transitions/s
Drain burst with terminal fence 645,758 increments/s 485,187 increments/s 218,236 increments/s
Drain burst with a change observer 598,820 increments/s 479,162 increments/s 216,479 increments/s
Lookup and send to one child 532,020 increments/s 477,909 increments/s 213,163 increments/s
Start and stop a machine 211,104 machines/s 226,963 machines/s 169,233 machines/s
Start and stop a parent with one child 58,357 families/s 91,853 families/s 56,990 families/s
Plan transitions through a compound state 145,949 transitions/s
Plan transitions through parallel regions 115,051 transitions/s
Drain burst through a compound state 614,035 events/s 425,718 events/s 213,077 events/s
Drain burst through two parallel regions 567,831 events/s 325,108 events/s 171,688 events/s
Drain a compound-state burst with a change observer 568,620 events/s

Effect runtime reference points

Scenario Effect Machine Effect runtime primitives
Start and stop a raw generic process 35,623 processes/s
Start and stop a raw compiled process 89,310 processes/s
Start and interrupt a suspended fiber 203,335 fibers/s
Start and stop a queue worker 147,037 workers/s
Start and stop an actor shell 135,483 actors/s
Start and stop two actor shells 84,767 families/s
Update an owner-only mutable snapshot 400,962,311 updates/s
Update a synchronized snapshot 2,132,219 updates/s
Create, resolve, and await a terminal latch 2,135,684 latches/s
Memory profile Effect Machine XState 5 XState 6 alpha Effect runtime primitives
Idle machine 1.5 KiB 3.8 KiB 2.2 KiB
Raw generic managed process 12.7 KiB
Raw compiled process 2.8 KiB
Two independent idle machines 3.0 KiB 7.3 KiB 3.9 KiB
Idle parent with one child 4.8 KiB 5.5 KiB 4.0 KiB
Parent with observed child registry 9.0 KiB
Parent with observed invoked child snapshots 5.0 KiB
Suspended Effect fiber 0.6 KiB
Effect queue with waiting fiber 2.8 KiB
Effect mailbox actor shell 3.2 KiB
Two Effect actor shells 6.8 KiB

Effect Machine change from base

Metric Base Base variability PR PR variability Difference
Plan counter transitions 159,857 transitions/s 0.9% MAD 161,981 transitions/s 1.0% MAD +1.3%
Drain burst with terminal fence 632,889 increments/s 2.5% MAD 645,758 increments/s 5.6% MAD +2.0%
Drain burst with a change observer 581,738 increments/s 1.8% MAD 598,820 increments/s 1.8% MAD +2.9%
Lookup and send to one child 536,308 increments/s 1.0% MAD 532,020 increments/s 3.0% MAD -0.8%
Start and stop a machine 210,172 machines/s 0.4% MAD 211,104 machines/s 1.5% MAD +0.4%
Start and stop a parent with one child 60,372 families/s 0.8% MAD 58,357 families/s 2.5% MAD -3.3%
Plan transitions through a compound state 146,596 transitions/s 0.4% MAD 145,949 transitions/s 0.5% MAD -0.4%
Plan transitions through parallel regions 114,815 transitions/s 0.9% MAD 115,051 transitions/s 1.0% MAD +0.2%
Drain burst through a compound state 622,022 events/s 1.7% MAD 614,035 events/s 1.2% MAD -1.3%
Drain burst through two parallel regions 567,265 events/s 1.0% MAD 567,831 events/s 0.7% MAD +0.1%
Drain a compound-state burst with a change observer 575,250 events/s 0.6% MAD 568,620 events/s 0.8% MAD -1.2%
Idle machine heap per unit 1.5 KiB 0.0% MAD 1.5 KiB 0.0% MAD -0.0%
Raw generic managed process heap per unit 12.7 KiB 0.1% MAD 12.7 KiB 0.0% MAD -0.0%
Raw compiled process heap per unit 2.8 KiB 0.7% MAD 2.8 KiB 0.4% MAD +0.5%
Two independent idle machines heap per unit 2.9 KiB 0.0% MAD 3.0 KiB 0.0% MAD +0.2%
Idle parent with one child heap per unit 4.8 KiB 0.0% MAD 4.8 KiB 0.0% MAD 0.0%
Parent with observed child registry heap per unit 9.0 KiB 0.0% MAD 9.0 KiB 0.0% MAD -0.0%
Parent with observed invoked child snapshots heap per unit 5.0 KiB 0.0% MAD 5.0 KiB 0.0% MAD +0.2%

Effect runtime reference change from base

Metric Base Base variability PR PR variability Difference
Start and stop a raw generic process 35,307 processes/s 1.8% MAD 35,623 processes/s 2.5% MAD +0.9%
Start and stop a raw compiled process 90,114 processes/s 0.3% MAD 89,310 processes/s 0.5% MAD -0.9%
Start and interrupt a suspended fiber 202,143 fibers/s 0.4% MAD 203,335 fibers/s 0.2% MAD +0.6%
Start and stop a queue worker 148,810 workers/s 0.3% MAD 147,037 workers/s 1.2% MAD -1.2%
Start and stop an actor shell 136,407 actors/s 0.3% MAD 135,483 actors/s 1.0% MAD -0.7%
Start and stop two actor shells 85,925 families/s 1.1% MAD 84,767 families/s 1.6% MAD -1.3%
Update an owner-only mutable snapshot 400,962,309 updates/s 0.0% MAD 400,962,311 updates/s 0.0% MAD +0.0%
Update a synchronized snapshot 2,130,034 updates/s 1.3% MAD 2,132,219 updates/s 3.4% MAD +0.1%
Create, resolve, and await a terminal latch 2,129,671 latches/s 1.7% MAD 2,135,684 latches/s 0.9% MAD +0.3%
Versions and interpretation
  • Effect Machine: 0.5.1
  • XState 5: 5.32.5
  • XState 6 alpha: 6.0.0-alpha.31
  • Effect runtime primitives: 4.0.0-beta.107

Higher throughput is better; lower heap is better. Variability is the median absolute deviation across independent processes, relative to their median. Runtime measurements on shared GitHub-hosted hardware remain informational, so small differences should be confirmed across multiple workflow runs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant