docs(resource-value-verification): close design-review doc/comment gaps

Two retrospective design-review findings:

- design.md's System Flows sequence diagram showed the controller-layer
  resval check as an independently-launched client session, implying no
  dependency on the injecting worker staying connected. As-built (bug-1579),
  host-attrs resources reset to baseline the instant the worker disconnects,
  so the check actually runs nested inside the still-open worker session via
  xce_test's `!` shell-escape. Updated the diagram and prose to show this,
  and documented the still-open residual risk for custom host-attrs
  resource names in Error Handling.
- Added explicit "do not change this format" warning comments at both
  trace-log call sites (core_events.c's RESVALS_DELTA case, apiserver's
  OnResourceLocationUpdated) that xce-test-resources' log-grep depends on --
  an unrelated logging cleanup at either site would otherwise silently turn
  every future verification run into a false UNREACHABLE/timeout.

No behavior change in either source file -- comments only.
This commit is contained in:
Rongsong Shen 2026-08-19 11:00:57 +00:00
parent e52c68f471
commit 1bc65d2c47
No known key found for this signature in database
GPG key ID: 5BCDAAE0123E9FE2
3 changed files with 31 additions and 5 deletions

View file

@ -99,6 +99,16 @@ func (h *DefaultHandler) OnResourceLocationUpdated(res *models.ResourceDistribut
// field carrying whichever of StringValue/NumericValue/BooleanValue is
// live for res.ValueType, so a downstream grep sees exactly what was
// stored, not every possibly-zero field on the struct.
//
// DO NOT change the "resource-location stored" message string, or the
// resource/host/value field names below, without also updating
// query_apiserver_resvals() in
// .claude/skills/xce-test-resources/run-resource-verify.sh (design.md's
// own Revalidation Triggers list this exact pair) -- that script greps
// this exact message and parses zap's console-encoder trailing JSON
// block for these field names; an unrelated logging cleanup here
// silently turns every future verification run into a false
// UNREACHABLE/timeout, indistinguishable from a real regression.
var valueField zap.Field
switch res.ValueType {
case int(models.STRING):

View file

@ -835,6 +835,16 @@ int xce_core_push_events(xce_sched_core_t* core, xce_core_event_t* events,
* Debug/trace level only (tlog_debug3 via TRACE) -- no
* control-flow change, fires on every applied delta.
*
* DO NOT change the "resval applied host=... resource=...
* value=..." prefix (either branch below) without also
* updating query_scheduler_resvals() in
* .claude/skills/xce-test-resources/run-resource-verify.sh
* (design.md's own Revalidation Triggers list this exact
* pair) -- an unrelated logging cleanup that reflows this
* text silently turns every future verification run into a
* false UNREACHABLE/timeout, indistinguishable from a real
* propagation regression without investigation.
*
* bug-1573 fix (round-2 remediation): Value_u_which has 7
* tags (ivalue32/uvalue32/ivalue64/uvalue64/svalue/fvalue/
* bvalue -- controller.capnp.h) and Value_u_bvalue is a real,