Independent field-journal fixture
This second server-rendered host exercises the public engine facade, API client
and optional React controls without importing the reference host, copying its
component source or loading its CSS. The Go template owns a journal article,
observations, a permanent record, ordinary navigation and explicit control slots.
React mounts in fresh children of those slots and preserves their fallback links.
Run make test-react-integration from the repository root. Candy's registered
mix app must be healthy; it owns the local PostgreSQL dependency. The verification
script inspects candy ls --json, creates a uniquely named
wikimix_react_*_test database, builds a binary, registers a temporary supervised
Candy app and tests only its reported HTTPS URL. It stops/removes that app and
drops that exact database on completion. .artifacts/proof-*/summary.json records
checks, the canonical URL and exact local tarball hashes. Browser and package
artifacts remain available for subsequent inspection.
The fixture grants its fixed editor identity all actions and uses a deterministic
runner. It is a disposable integration fixture, not a production authentication
example. It reads/writes content only through public Go packages. The template
uses Goldmark's default safe HTML renderer; fixture content contains no logical
provenance links. The reference publication sanitizer/provenance contract has its
own database and response tests.
enhance.tsx is the host composition. It preserves the primary article and creates
a provider per slot. Its host-specific compaction button queues a job with a
null document-change notification, watches the run through useAgentRun, and
navigates only on done/compacted. No advanced control was added to the package.
plain.ts and rich.ts opt into the base or optional editor; both consume installed
public package exports. The verification script packs this repository's exact
candidate, installs into an isolated npm consumer with scripts disabled, proves
the base consumer has no Lexical dependency, then installs the optional rich peers.
The same fixture is intended for reference integration #43 and release proof #45.
Current proof uses local tarballs and the local Go module; external module/registry
resolution remains #45. The harness retains its browser dependency lock in
react/package-lock.json and installs Chromium with Playwright's supported command.