This document records what GoFrame currently tests, what is expected but not verified, and what remains unsupported. It is a public-preview readiness matrix, not a production support promise.
The current strongest evidence is Linux plus Chrome/Chromium. macOS currently has lightweight Intel-runner CI evidence for core Go/toolchain behavior, and Windows has lightweight CI evidence for the same layer. Firefox and Safari are not rejected platforms, but they are outside the current preview evidence. The browser smoke harness is Chrome DevTools Protocol based, so equivalent non-Chrome behavior is not claimed by the current pre-1.0 preview line.
Labels:
- CI-tested
- expected
- unverified
- unsupported
| Host | Status | Evidence |
|---|---|---|
| Linux amd64 | CI-tested | Core runs full correctness gates under the Go 1.26.6 minimum and stable Go 1.27.0; Go 1.26.6 also owns the TinyGo size and Chrome browser baselines. |
| macOS | CI-tested (minimal, Intel runner) | Core runs Go 1.26.6 on macos-15-intel: formatting, ordinary tests, vet, debug-tag tests, and selected GOX golden tests. TinyGo/browser smoke remain Linux-only checks. |
| Windows | CI-tested (minimal) | Core runs Go 1.26.6: formatting, ordinary tests, vet, debug-tag tests, and selected GOX golden tests. TinyGo/browser smoke remain Linux-only checks. |
Symlink safety tests skip when os.Symlink is unavailable or restricted.
| Compiler target | Status | Notes |
|---|---|---|
| Go/WASM | CI-tested for selected smoke fixtures | Current heavy browser baseline uses Go 1.26.6. It covers recover-capable runtime error and Error Boundary scenarios. Larger bundle size is expected. |
| TinyGo/WASM | CI-tested for packaging, size, and most browser smoke | Current heavy baseline and focused source-selection parity use Go 1.26.6 with TinyGo 0.42.0. TinyGo supports Go through 1.27; local Go 1.27.0 compatibility characterization passes, but the stable Core lane remains standard-Go evidence. Default package path uses -panic=trap. |
| Native Go runtime | CI-tested for pure tests | Pure runtime/compiler/tooling tests run with normal Go. Browser runtime requires js/wasm. |
The module requires Go 1.26.6 or newer. Go 1.26.6 and stable Go 1.27.0
are the supported full Core toolchains. Older Go versions are outside the
GoFrame preview support contract. The browser and size workflows use Go
1.26.6, TinyGo 0.42.0, and Node.js 24.18.1; the Go 1.27.0 lane is
standard-Go Core evidence and does not duplicate the heavy browser or size
workflows.
| Browser | Status | Evidence |
|---|---|---|
| Chrome/Chromium | CI-tested | Browser smoke and dashboard DOM pressure use Chrome/CDP. |
| Firefox | unverified | Runtime uses standard browser APIs, but current CI has no Firefox smoke or package-load evidence. |
| Safari/WebKit | unverified | Runtime uses standard browser APIs, but current CI has no Safari/WebKit smoke or package-load evidence. |
| Non-browser WASM hosts | unsupported | Current runtime assumes browser DOM APIs. |
Current non-Chrome boundary:
- browser smoke scripts launch Chrome/Chromium and talk to the Chrome DevTools Protocol over WebSocket;
- the repository does not currently include a Playwright, WebDriver, Marionette, or WebKit automation harness;
- the current pre-1.0 preview line does not claim equivalent Firefox or Safari behavior.
Required browser APIs:
- WebAssembly;
- DOM node creation and event listeners;
requestAnimationFrame;hashchange;fetchfor example-local resource transports;AbortControllerfor resource example cancellation;- localStorage for the Todo example.
| Capability | Go/WASM | TinyGo/WASM | Notes |
|---|---|---|---|
| rendering/state/effects/context | CI-tested | CI-tested | Main browser app path. |
| hash router/query helpers | CI-tested | CI-tested | Router smoke uses TinyGo; reference ErrorBoundary route uses Go. |
| resources | expected | CI-tested | Go toolchain tests cover resource example packages; lifecycle smoke remains Linux/Chrome-hosted TinyGo. |
| runtime panic containment | CI-tested | limited | Recover-based containment is asserted with Go/WASM. TinyGo trap builds may terminate instead. |
| scoped render Error Boundaries | CI-tested | compile-compatible but not containment proof | Use Go/WASM for intentional panic demos. |
| fixed-height virtualization | expected | CI-tested | DOM pressure and virtualized smoke use TinyGo. |
Status: Ready with limitations.
Supported deployment shape:
- static hosting of
goxc packageoutput; - hash-based routing, so app routes stay after
#and do not need server rewrites; - correct
application/wasmMIME type; - optional gzip/brotli sidecars from
goxc package --compress=gzip,br; - long-cache immutable headers for hashed assets when deployment infrastructure supports them.
Unsupported:
- production server;
- TLS/cache/compression negotiation automation;
- history-mode fallback configuration;
- SSR/hydration.