The new commit-time docs-mirror guard carries the forbidden branch-tip
docs URL as a scan constant, and the repo-wide link-drift smoke test
flagged the guard's own source for containing it, failing Script smoke
tests on main. Assemble the constant from parts so the runtime value is
unchanged while the literal never appears in the file. Both the drift
test and the mirror check pass locally at head.
Docs under frontend-modern/public/docs are byte-for-byte copies of repo
docs, but the only guard was a CI vitest the git hooks never run. On
2026-09-01 two commits (f4886c2dfb, f313882a7b) each edited a mirrored
doc without its copy, passed the hooks, and broke main's Frontend job.
Add scripts/check_docs_mirror.py with an index-blob --staged mode wired
into the pre-commit hook: a commit that stages either side of an
out-of-sync pair (or an orphan shipped copy) fails with the exact sync
command, while pre-existing drift from other commits only warns. The
worktree mode runs as a named step in the public-docs workflow, with
unit tests in scripts/tests picked up by the existing runner. The
docsLinks vitest stays as the CI backstop.
Build-time generation of public/docs was considered and rejected: the
shipped set is a curated subset (61 of 421 docs), so generation still
needs a hand-maintained manifest while adding build, dev-server, and
test-order coupling.
Preserve the reviewed maintenance batch while incorporating the shipped CODE_SIGNING_POLICY mirror synchronization from origin/main.
Change-source: pulse-maintainer
f313882a7b added the container provenance pinning paragraph to docs/ only,
so the docsLinks drift guard failed the Frontend job on main, the same
shape as the UNIFIED_AGENT.md miss earlier today. Copy the updated doc
into the shipped public/docs mirror; the guard test passes (14/14).
Cached incomplete snapshots could retain an earlier no-writer observation when both the snapshot refresh and current task query failed. Reset task evidence before each live read so degraded visibility remains unknown and conservative.
Change-source: pulse-maintainer
Contract-Neutral: poll-scoped PBS task evidence cache correction; behavioral bug fix, no wire contract change
The dependency-floor smoke test asserted exact go list output, so the
maintainer lane's legitimate x/crypto v0.55.0 bump (which moved x/net to
v0.57.0) failed the Script smoke tests job on main even though both
versions clear the advisory floor. Compare versions with sort -V against
the advisory-safe minimum instead: upgrades pass, only a downgrade below
the floor fails. Verified the failing direction and the equal-version
case locally.
f4886c2dfb added the per-node cluster install note to docs/ only, and the
docsLinks drift guard rightly failed the Frontend job on main. Copy the
updated doc into the shipped public/docs mirror; the guard test passes.
Refs #1816
Refresh the retained browser proof receipt parent for canonical integration; intervening changes do not touch frontend runtime paths.
Change-source: pulse-maintainer
Two hand-added standalone Proxmox connections whose machines are both
natively named pve survived the state-layer identity fixes but still
collapsed in the presentation host coalesce: a provider node row carries
no machine identity of its own, so once the site agents connected, one
site's node row absorbed an agent row on the shared short hostname and
the other site's node row folded into it. Input ordering varies per
snapshot, so the surviving row alternated between sites on every
refresh, which is exactly the reported NODES 1 view with the VM count
flipping 11/18 and the Agent badge hopping rows on v6.4.1.
Add a provider-scope veto mirroring the state rule: node facets from
different connection instances only merge with same-machine proof (same
node identity, same non-empty cluster, or same endpoint host). In a
bucket holding two distinct provider scopes, an agent row now attaches
only to the node whose state-layer agent link names it, instead of the
first compatible row. The merged row also keeps the Proxmox node row's
display-name-aware name instead of the agent's bare reported hostname,
which is the original 'Node Name field not observed' complaint.
Validated: internal/unifiedresources, internal/monitoring, and
internal/api green on linux/amd64 with the change.
Refs #1753
The generated install command is host-generic, but nothing said so, and
cluster operators kept asking how to cover every member (#1816, #1618).
State it in the agent Quick Start next to the command generator pointer.
Refs #1816
The group-writable executable check wrote its fixture through os.WriteFile,
which filters the mode through the process umask, so under the runner's 022
umask the group-write bit never reached disk and validateTrustedExecutable
correctly trusted the file. Chmod the fixture to the asserted mode.
The Proxmox guest executor tests stamped their after observations one second
past the test-start clock, but actionStartedAt is stamped inside
ExecuteAction after handler setup, so a loaded runner overran the margin and
the independent observation was discarded as pre-action. Widen the
observation offset to a minute.
Both failures broke build-and-test on main (run 33454838531). Reproduced the
hostagent failure on Linux under umask 022 and verified both packages green
after the fix.