KB-68FF

6000x-input-contract — Auto-refresh + DIEU-35 re-verify

5 min read Revision 1
iu-core6000xauto-refreshdieu-35real-corpusreverify

07 — Auto-refresh durability + DIEU-35 real corpus re-verify

Branch: Auto-refresh + Directus / API smoke + DIEU-35 real corpus. Status: PASS (read-only; non-mutating SELECTs).

1. Auto-refresh id 18 still durable

SELECT id, actor, outcome, view_count_pre, table_count_pre,
       table_count_post, started_at
FROM iu_three_axis_envelope_refresh_log WHERE id=18;
 id | actor                | outcome         | vpre | tpre | tpost | started_at
----+----------------------+-----------------+------+------+-------+---------------------------
 18 | iu_lifecycle_trigger | skipped_in_sync |  163 |  163 |   163 | 2026-05-23 14:20:20.986+00

The id-18 row from 6000x is byte-identical to its 6000x snapshot (same actor, same outcome, same counts, same timestamp).

2. Refresh-status dashboard view

SELECT * FROM v_iu_three_axis_envelope_refresh_status;
 last_actor             | iu_lifecycle_trigger
 last_outcome           | skipped_in_sync
 last_started_at        | 2026-05-23 14:20:20.986+00
 last_table_count       | 163
 seconds_since_last     | 43610
 current_drift          | {"in_sync": true, "view_count": 163,
                          "table_count": 163,
                          "missing_in_view": 0,
                          "missing_in_table": 0,
                          "content_diff_count": 0}
 current_in_sync        | t
 current_view_count     | 163
 current_table_count    | 163
 cache_healthy          | t

seconds_since_last_refresh=43610 (~12h) is expected — no enabled lifecycle write between 6000x and now, so the auto-refresh trigger hasn't had reason to fire again. The gate stays false; the trigger remains armed; the cache is in sync.

3. Trigger error log — still empty

SELECT COUNT(*) FROM iu_three_axis_envelope_trigger_error_log;
-- 0

4. Healthcheck — 7/7 GREEN (live, this macro)

$ python3 -m cutter_agent.iu_core.healthcheck | jq .overall_ok,(.surfaces[]|"\(.surface): \(.reason)")
true
"three_axis_cache: in_sync"
"directus_collection: 163 rows / 1 read-permission"
"qdrant_collection: iu_core_iu_chunks (61 indexed)"
"auto_refresh_trigger: gate=false fires_24h=4"
"vector_boundary: 61 pts / 60 unique"
"write_gates: all 6 inert"
"operator_runtime: open_runs=0 failed_24h=0 active_leases=0"

fires_24h=4 matches the 4 cron-emitted healthcheck samples in §6 report 05 — the auto_refresh_trigger surface counts statement-level fires, and the 4 Mac-cron healthcheck runs each emitted the same fires_24h reading (trigger has not fired between samples; only the cron observed it).

5. DIEU-35 real corpus axes A / B / C — re-verified

Axis A — axis_a_doc_code envelope

SELECT axis_a_doc_code, COUNT(*), MIN(axis_c_depth), MAX(axis_c_depth)
FROM iu_three_axis_envelope WHERE axis_a_doc_code='DIEU-35'
GROUP BY axis_a_doc_code;
 axis_a_doc_code | count | min | max
-----------------+-------+-----+-----
 DIEU-35         |    36 |   0 |   2

Axis B — axis_b_tags dict keys (5000x defect-fix preserved)

SELECT jsonb_object_keys(axis_b_tags) AS key, COUNT(*)
FROM iu_three_axis_envelope WHERE axis_a_doc_code='DIEU-35'
GROUP BY jsonb_object_keys(axis_b_tags) ORDER BY key;
 key            | count
----------------+-------
 legal_document |    36
 section_type   |    36
 unit_kind      |    36

All three axis_b keys present on every DIEU-35 row — the 5000x dict-shape fix (jsonb={group:[tags]}, not array) still holds.

Axis C — depth distribution

SELECT axis_c_depth, COUNT(*)
FROM iu_three_axis_envelope WHERE axis_a_doc_code='DIEU-35'
GROUP BY axis_c_depth ORDER BY axis_c_depth;
 depth | count
-------+-------
     0 |    17
     1 |    16
     2 |     3

Total 36 — matches axis A row count exactly. Same distribution as 5500x + 6000x.

6. Directus read-only smoke

Implicit via healthcheck surface directus_collection:

detail: { permission_rows: 1, table_rows: 163 }
reason: "163 rows / 1 read-permission"

i.e. the live Directus permission id 1485 (action=read, collection=iu_three_axis_envelope, role=Administrator from 6000x) still serves the 163-row table behind it.

7. Constitutional close

  • No mutation in this branch (all SELECT queries).
  • All 6 IU Core write gates inert end of macro.
  • Auto-refresh trigger remains armed but unfired since 6000x (expected — no enabled lifecycle write happened).
  • Vector boundary intact (61 pts / 60 unique IUs — same as 6000x); Qdrant onboarding deferred under exact gap (see report 03).
  • DIEU-35 axes A/B/C numerically identical to 6000x — no schema drift, no data drift in the 36-IU corpus.
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-6000x-input-contract-qdrant-ops-closeout-open-goal/07-auto-refresh-and-real-corpus-reverify.md