oka_web 0.8.0
oka_web: ^0.8.0 copied to clipboard
Web shell station for oka (ADR-0016): per-store web/index.html as typed, drift-checked Dart, replaceable emitters, and GitHub Pages / itch.io deploy targets. Not a platform pipeline.
Changelog #
0.8.0 #
- Part of the 0.8.0 train: Dart SDK floors ^3.13.0 (extraneous
finalparameter modifiers dropped); no package-specific changes.
0.7.0 #
- Release train alignment with
oka0.7.0.
0.4.0 #
- Version alignment with the 0.4.0 oka release train; no functional changes in this package.
0.2.0 #
- Add browser profile diagnostics and persist profile paths/session names in Chrome leases for attribution, including temporary profiles.
Initial release (ADR-0016 — the web shell station). Publishes on the
release train together with oka_core 0.2.0, which introduces the
platform-agnostic Target.explainDetails extension point this package's
targets use — publish only after the train lands, never against hosted
oka_core 0.1.x.
- Typed shell values:
WebShellSpec,WebIconSpec,PwaManifestSpec/PwaManifestOverride,WebShellContribution+SimpleWebShellContribution(the store "what" seam), sealed head/body entry types with declarative phases (WebHeadPhase:preconnect→storeSdk→app) andrequiredSdkGlobalmetadata on script entries (the build-time counterpart of the runtime adapters'expectedSdkGlobal). - The emitter "how" seam:
ShellEmitterwith declaredownedPaths;GenerateShellEmitter(default — ownsweb/index.html+web/manifest.json, generated-content banners; Flutter template-version coupling contained in this one class) andInjectShellEmitter(marker-based injection for hand-maintainedindex.html; fails actionably when markers are absent; never rewrites unowned regions). - Targets:
web-shell(compose + emit, no Flutter invocation) andweb-build(an honest, named delegation toflutter build web— web is explicitly NOT aPlatformPipeline). - Drift gate: pure
checkShellDrift/ShellDriftReportcomparator over emitter-owned regions, wired as a post-emit idempotency check inEmitWebShellStep;WebScriptEntry.toString()rendersrequiredSdkGlobalsooka explainsurfaces it. - Deploy targets (
PublishTargets over the directory-artifact convention,artifactIsDirectoryasserted by the publish conformance suite; both dry-run by default):GhPagesDeployTarget(publish-gh-pages— git-worktree deploy with ambient git auth only, prompt-free git env, allow-empty commits disabled as code) andItchDeployTarget(publish-itch—butler push DIR USER/GAME:CHANNEL, API key surfaced only as a redactingCredentialRef; the value is never logged or stored).StageWebDirectoryStepstages the directory artifact (typed override → state →<project>/build/web). - Flagship example:
example/crazygames/— the third-party pattern pilot (a store package ships exactly this const shape alongside its runtime adapter), with SDK-script global reconciled against the runtime adapter'sexpectedSdkGlobal.