* fix(release): don't require version field to start a line
writeManifestVersion anchored on ^ + multiline, requiring the version
field to open its own line. package.json always parses fine with
JSON.parse regardless of formatting, but the anchor made the rewrite
itself fragile - it hit the anchor-mismatch case on CI at least twice
(2026-08-18, 2026-08-24), aborting the v1.x publish workflow with a
false "no top-level version line" error.
Match the fleet's own canonical scripts/fleet/bump.mts, which drops
the anchor and matches the first "version": " occurrence anywhere in
the manifest.
* fix(release): match the fleet-canonical replacer exactly
Bring writeManifestVersion to byte-for-byte parity with the fleet's
scripts/fleet/bump.mts replaceVersion: require at least one character in
the existing version (an empty version is as broken as a missing one)
and use a replacer function instead of a $1${version}$2 template, which
would mis-substitute if the derived version ever contained a literal $.