From 181688498eecc4d9e4aff617ccf776f8b2cf5237 Mon Sep 17 00:00:00 2001 From: Rongsong Shen Date: Mon, 22 Jun 2026 03:54:56 +0000 Subject: [PATCH] =?UTF-8?q?chore(ha-term-safety):=20record=20env=20unblock?= =?UTF-8?q?=20=E2=80=94=20flake=20refreshed,=20controller=20suite=20green?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bug-918 resolved (c-capnproto flake repin); clean controller build passes full suite (Ok:1 Fail:0). Earlier wal_catchup failures were a stale incremental-build artifact, not fsync/regression. Validation gate reliable for remaining tasks. --- .kiro/specs/ha-term-safety/tasks.md | 2 + .wolf/buglog.json | 588 ++++++++++++++++++++++++++++ 2 files changed, 590 insertions(+) diff --git a/.kiro/specs/ha-term-safety/tasks.md b/.kiro/specs/ha-term-safety/tasks.md index 4eba71a..0e18d1f 100644 --- a/.kiro/specs/ha-term-safety/tasks.md +++ b/.kiro/specs/ha-term-safety/tasks.md @@ -142,3 +142,5 @@ - **5 STUB callbacks wired into s_real_cbs (ha.c) to satisfy raft_init's new non-NULL requirement — tasks 2.x MUST replace:** ha_cb_persist_entry_stub(→2.1), ha_cb_get_entry_term_stub(→2.2, returns 0), ha_cb_send_append_entries_stub(→2.3), ha_cb_truncate_from_stub(→2.4), ha_cb_commit_advanced_stub(→2.5). Freshness logOk is INERT until 1.3+2.2 (candidate last_log_term currently sourced from the unset G1 `persist.term`). - **ENV BLOCKER (critical):** fresh `nix develop` shells fail — flake pins `c-capnproto` to a mutable `main.tar.gz` whose hash drifted (expected sha256-9dzSc3w+yxYzsF/rZe3qIarKOpjt2zvIyjuS5FXngIM=, got sha256-9rTlcTia+s9ARGeTi+8auGvM0RkS+wZK7aIkzecaeSk=). Only the pre-cached main worktree builds; no worktree isolation / clean baseline possible until the flake input is repinned to an immutable commit/tag. - **Pre-existing controller-test failures (NOT this task):** test_repl_unit.c `test_wal_catchup_batch_*` fail with -EAGAIN + ASAN leaks under overlayfs `/tmp` (bug-850 fsync env artifact). The diff touches none of repl.c/persist.c/test_repl_unit.c/ha_apply_wal_catchup_entry; the append-only capnp change cannot affect the @3 entries-list decode. The controller suite needs a real-fsync filesystem for clean validation. + +- **CORRECTION (2026-06-22): env unblocked + iter-1 fully validated.** User refreshed the c-capnproto flake pin (bug-918 resolved). A CLEAN controller build now passes the full controller suite green (Ok:1 Fail:0, ~13s). The earlier `test_wal_catchup_*` failures were a STALE incremental-build artifact (iter-1 capnp schema compiled against the drifted toolchain) — NOT an overlayfs fsync issue and NOT a source regression. Validation gate for tasks 2.x+ is reliable: `/xce-build controller` (clean) or incremental `meson compile -C xce.build xce_controller controller_unit_test && meson test -C xce.build "controller test"`. diff --git a/.wolf/buglog.json b/.wolf/buglog.json index 25bad43..bba2af6 100644 --- a/.wolf/buglog.json +++ b/.wolf/buglog.json @@ -14537,6 +14537,594 @@ "related_bugs": [], "occurrences": 2, "last_seen": "2026-06-21T13:06:07.689Z" + }, + { + "id": "bug-884", + "timestamp": "2026-06-21T15:20:00Z", + "error_message": "test_persistence_constants:FAIL Expected TRUE Was FALSE (DEFAULT_SYNC_TIMEOUT_MS==50)", + "file": "src/lib/testsuite/test_config.c", + "root_cause": "commit ca1d9ae raised DEFAULT_SYNC_TIMEOUT_MS 50->500 in config.h but did not update the test assertion; pre-existing red on HEAD, unrelated to raft", + "fix": "synced assertion to ==500 (commit 7b6cbb8)", + "tags": [ + "test", + "config", + "stale-assertion", + "ha-commit-engine" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T15:20:00Z" + }, + { + "id": "bug-885", + "timestamp": "2026-06-21T15:21:59.689Z", + "error_message": "Missing guard clause", + "file": "src/lib/raft/raft_sim.c", + "root_cause": "No early return/throw for edge case: index < 1 || index > RAFT_SIM_MAX_LOG", + "fix": "Added guard clause: if (index < 1 || index > RAFT_SIM_MAX_LOG)", + "tags": [ + "auto-detected", + "guard-clause", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T15:21:59.689Z" + }, + { + "id": "bug-886", + "timestamp": "2026-06-21T15:41:42.176Z", + "error_message": "Wrong reference: test_raft_init_zero_peers_returns_einval should be test_raft_init_oversize_peers_returns_einval", + "file": "src/lib/testsuite/test_raft.c", + "root_cause": "Used \"test_raft_init_zero_peers_returns_einval\" instead of \"test_raft_init_oversize_peers_returns_einval\"", + "fix": "Changed test_raft_init_zero_peers_returns_einval \u2192 test_raft_init_oversize_peers_returns_einval", + "tags": [ + "auto-detected", + "wrong-reference", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T15:41:42.176Z" + }, + { + "id": "bug-887", + "timestamp": "2026-06-21T15:45:29.785Z", + "error_message": "Missing guard clause", + "file": "src/lib/raft/raft.c", + "root_cause": "No early return/throw for edge case: s->role != RAFT_LEADER", + "fix": "Added guard clause: if (s->role != RAFT_LEADER)", + "tags": [ + "auto-detected", + "guard-clause", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T15:45:29.785Z" + }, + { + "id": "bug-888", + "timestamp": "2026-06-21T15:52:45.272Z", + "error_message": "Missing guard clause", + "file": "src/lib/testsuite/test_raft.c", + "root_cause": "No early return/throw for edge case: index >= 1 && index <= RAFT_SIM_MAX_LOG", + "fix": "Added guard clause: if (index >= 1 && index <= RAFT_SIM_MAX_LOG)", + "tags": [ + "auto-detected", + "guard-clause", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T15:52:45.272Z" + }, + { + "id": "bug-889", + "timestamp": "2026-06-21T15:53:14.276Z", + "error_message": "Missing guard clause", + "file": "src/lib/raft/raft.c", + "root_cause": "No early return/throw for edge case: s->cbs->on_trace", + "fix": "Added guard clause: if (s->cbs->on_trace)", + "tags": [ + "auto-detected", + "guard-clause", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T15:53:14.276Z" + }, + { + "id": "bug-890", + "timestamp": "2026-06-21T15:59:59.295Z", + "error_message": "Missing guard clause", + "file": "src/lib/raft/raft.c", + "root_cause": "No early return/throw for edge case: rc != 0", + "fix": "Added guard clause: if (rc != 0)", + "tags": [ + "auto-detected", + "guard-clause", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T15:59:59.295Z" + }, + { + "id": "bug-891", + "timestamp": "2026-06-21T16:06:37.923Z", + "error_message": "Missing guard clause", + "file": "src/lib/raft/raft.c", + "root_cause": "No early return/throw for edge case: s->cbs->on_trace", + "fix": "Added guard clause: if (s->cbs->on_trace)", + "tags": [ + "auto-detected", + "guard-clause", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T16:06:37.923Z" + }, + { + "id": "bug-892", + "timestamp": "2026-06-21T16:15:51.060Z", + "error_message": "Significant refactor of ", + "file": "src/lib/raft/raft.c", + "root_cause": "4 lines replaced/restructured", + "fix": "Rewrote 6\u219211 lines (4 removed)", + "tags": [ + "auto-detected", + "refactor", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T16:15:51.060Z" + }, + { + "id": "bug-893", + "timestamp": "2026-06-21T16:16:47.908Z", + "error_message": "Wrong reference: g_te_spy should be g_pe_spy", + "file": "src/lib/testsuite/test_raft.c", + "root_cause": "Used \"g_te_spy\" instead of \"g_pe_spy\"", + "fix": "Changed g_te_spy \u2192 g_pe_spy", + "tags": [ + "auto-detected", + "wrong-reference", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T16:16:47.908Z" + }, + { + "id": "bug-894", + "timestamp": "2026-06-21T16:20:39.535Z", + "error_message": "Missing guard clause", + "file": "src/lib/raft/raft.c", + "root_cause": "No early return/throw for edge case: s->cbs->on_trace", + "fix": "Added guard clause: if (s->cbs->on_trace)", + "tags": [ + "auto-detected", + "guard-clause", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T16:20:39.535Z" + }, + { + "id": "bug-895", + "timestamp": "2026-06-21T16:29:35.778Z", + "error_message": "Missing guard clause", + "file": "src/lib/raft/raft_sim.c", + "root_cause": "No early return/throw for edge case: c->nodes[src].partition || c->nodes[dst].partition", + "fix": "Added guard clause: if (c->nodes[src].partition || c->nodes[dst])", + "tags": [ + "auto-detected", + "guard-clause", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T16:29:35.778Z" + }, + { + "id": "bug-896", + "timestamp": "2026-06-21T16:29:52.264Z", + "error_message": "Significant refactor of ", + "file": "src/lib/raft/raft_sim.c", + "root_cause": "2 lines replaced/restructured", + "fix": "Rewrote 8\u219211 lines (2 removed)", + "tags": [ + "auto-detected", + "refactor", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T16:29:52.264Z" + }, + { + "id": "bug-897", + "timestamp": "2026-06-21T16:36:42.796Z", + "error_message": "Significant refactor of ", + "file": "src/lib/raft/raft_sim.c", + "root_cause": "4 lines replaced/restructured", + "fix": "Rewrote 4\u21926 lines (4 removed)", + "tags": [ + "auto-detected", + "refactor", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T16:36:42.796Z" + }, + { + "id": "bug-898", + "timestamp": "2026-06-21T16:36:58.149Z", + "error_message": "Significant refactor of ", + "file": "src/lib/testsuite/test_raft.c", + "root_cause": "2 lines replaced/restructured", + "fix": "Rewrote 3\u21925 lines (2 removed)", + "tags": [ + "auto-detected", + "refactor", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T16:36:58.149Z" + }, + { + "id": "bug-899", + "timestamp": "2026-06-21T16:42:30.241Z", + "error_message": "Missing guard clause", + "file": "src/lib/raft/raft_sim.c", + "root_cause": "No early return/throw for edge case: node_idx >= 0 && node_idx < c->n", + "fix": "Added guard clause: if (node_idx >= 0 && node_idx < c->n)", + "tags": [ + "auto-detected", + "guard-clause", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T16:42:30.241Z" + }, + { + "id": "bug-900", + "timestamp": "2026-06-21T16:51:25.960Z", + "error_message": "Missing error handling in unknown", + "file": "src/lib/testsuite/test_raft.c", + "root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught", + "fix": "Added try/catch block | Also: RUN_TEST(test_sim_9_1_replication_and_partition_catch_up);; RUN_TEST(test_sim_9_2_divergent_suffix_truncation);", + "tags": [ + "auto-detected", + "error-handling", + "c" + ], + "related_bugs": [], + "occurrences": 2, + "last_seen": "2026-06-21T16:51:35.044Z" + }, + { + "id": "bug-901", + "timestamp": "2026-06-21T16:54:46.287Z", + "error_message": "Significant refactor of ", + "file": "src/lib/testsuite/test_raft.c", + "root_cause": "4 lines replaced/restructured", + "fix": "Rewrote 13\u219216 lines (4 removed)", + "tags": [ + "auto-detected", + "refactor", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T16:54:46.287Z" + }, + { + "id": "bug-902", + "timestamp": "2026-06-21T17:03:59.688Z", + "error_message": "Significant refactor of ", + "file": "src/lib/testsuite/test_raft.c", + "root_cause": "5 lines replaced/restructured", + "fix": "Rewrote 15\u219230 lines (5 removed)", + "tags": [ + "auto-detected", + "refactor", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T17:03:59.688Z" + }, + { + "id": "bug-903", + "timestamp": "2026-06-21T17:04:17.830Z", + "error_message": "Wrong operator: <= should be >=", + "file": "src/lib/testsuite/test_raft.c", + "root_cause": "Used \"<=\" instead of \">=\"", + "fix": "Changed operator <= \u2192 >=", + "tags": [ + "auto-detected", + "operator-fix", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T17:04:17.830Z" + }, + { + "id": "bug-904", + "timestamp": "2026-06-21T21:44:26.804Z", + "error_message": "Missing guard clause", + "file": "src/lib/raft/raft_sim.c", + "root_cause": "No early return/throw for edge case: node_idx < 0 || node_idx >= c->n", + "fix": "Added guard clause: if (node_idx < 0 || node_idx >= c->n)", + "tags": [ + "auto-detected", + "guard-clause", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T21:44:26.804Z" + }, + { + "id": "bug-905", + "timestamp": "2026-06-21T21:49:10.796Z", + "error_message": "Incorrect value in code", + "file": ".kiro/specs/raft-log-replication/tasks.md", + "root_cause": "Had `initial_log_len`", + "fix": "Changed to `raft_sim_restart_node`", + "tags": [ + "auto-detected", + "wrong-value", + "md" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T21:49:10.796Z" + }, + { + "id": "bug-906", + "timestamp": "2026-06-21T23:00:19.687Z", + "error_message": "Significant refactor of ", + "file": "src/lib/raft/raft_sim.c", + "root_cause": "3 lines replaced/restructured", + "fix": "Rewrote 14\u219219 lines (3 removed)", + "tags": [ + "auto-detected", + "refactor", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T23:00:19.687Z" + }, + { + "id": "bug-907", + "timestamp": "2026-06-21T23:14:37.837Z", + "error_message": "Missing guard clause", + "file": "src/lib/raft/raft.c", + "root_cause": "No early return/throw for edge case: s->role != RAFT_LEADER", + "fix": "Added guard clause: if (s->role != RAFT_LEADER)", + "tags": [ + "auto-detected", + "guard-clause", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T23:14:37.837Z" + }, + { + "id": "bug-908", + "timestamp": "2026-06-21T23:14:55.547Z", + "error_message": "Missing guard clause", + "file": "src/lib/raft/raft_sim.c", + "root_cause": "No early return/throw for edge case: node_idx >= 0 && node_idx < c->n", + "fix": "Added guard clause: if (node_idx >= 0 && node_idx < c->n)", + "tags": [ + "auto-detected", + "guard-clause", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T23:14:55.547Z" + }, + { + "id": "bug-909", + "timestamp": "2026-06-21T23:30:04.636Z", + "error_message": "Missing guard clause", + "file": "src/lib/testsuite/test_raft.c", + "root_cause": "No early return/throw for edge case: g_mock.get_entry_term_log_len != 0 &&\n index == g_moc", + "fix": "Added guard clause: if (g_mock.get_entry_term_log_len != 0 &&\n )", + "tags": [ + "auto-detected", + "guard-clause", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T23:30:04.636Z" + }, + { + "id": "bug-910", + "timestamp": "2026-06-21T23:31:46.582Z", + "error_message": "Significant refactor of ", + "file": "src/lib/raft/raft.h", + "root_cause": "2 lines replaced/restructured", + "fix": "Rewrote 9\u219226 lines (2 removed) | Also: * Denies if cand_term < s->term; otherwise returns; * from_idx, cand_term) (granting when the gate is ", + "tags": [ + "auto-detected", + "refactor", + "h" + ], + "related_bugs": [], + "occurrences": 2, + "last_seen": "2026-06-21T23:31:55.967Z" + }, + { + "id": "bug-911", + "timestamp": "2026-06-21T23:32:38.225Z", + "error_message": "Wrong condition in logic", + "file": "src/lib/raft/raft.c", + "root_cause": "Condition was: if (s->cbs->on_vote_eligible != NULL)", + "fix": "Changed to: if (!raft_log_ok(s, cand_last_log_term, cand_last_log_)", + "tags": [ + "auto-detected", + "logic-fix", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-21T23:32:38.225Z" + }, + { + "id": "bug-912", + "timestamp": "2026-06-22T00:13:17.311Z", + "error_message": "Significant refactor of ", + "file": "src/lib/raft/raft.c", + "root_cause": "2 lines replaced/restructured", + "fix": "Rewrote 3\u21924 lines (2 removed)", + "tags": [ + "auto-detected", + "refactor", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-22T00:13:17.311Z" + }, + { + "id": "bug-913", + "timestamp": "2026-06-22T00:19:56.768Z", + "error_message": "Wrong reference: TEST_ASSERT_NOT_EQUAL_INT should be TEST_ASSERT_NOT_EQUAL", + "file": "src/lib/testsuite/test_raft.c", + "root_cause": "Used \"TEST_ASSERT_NOT_EQUAL_INT\" instead of \"TEST_ASSERT_NOT_EQUAL\"", + "fix": "Changed TEST_ASSERT_NOT_EQUAL_INT \u2192 TEST_ASSERT_NOT_EQUAL", + "tags": [ + "auto-detected", + "wrong-reference", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-22T00:19:56.768Z" + }, + { + "id": "bug-914", + "timestamp": "2026-06-22T01:24:34.541Z", + "error_message": "Incorrect value in code", + "file": ".kiro/specs/ha-term-safety/spec.json", + "root_cause": "Had \"design-generated\"", + "fix": "Changed to \"tasks-generated\"", + "tags": [ + "auto-detected", + "wrong-value", + "json" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-22T01:24:34.541Z" + }, + { + "id": "bug-915", + "timestamp": "2026-06-22T01:24:46.936Z", + "error_message": "Significant refactor of ", + "file": ".kiro/specs/ha-term-safety/spec.json", + "root_cause": "2 lines replaced/restructured", + "fix": "Rewrote 7\u21928 lines (2 removed)", + "tags": [ + "auto-detected", + "refactor", + "json" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-22T01:24:46.936Z" + }, + { + "id": "bug-916", + "timestamp": "2026-06-22T02:56:16.383Z", + "error_message": "Significant refactor of ", + "file": "src/controller/testsuite/test_ha_prevote.c", + "root_cause": "2 lines replaced/restructured", + "fix": "Rewrote 9\u219215 lines (2 removed)", + "tags": [ + "auto-detected", + "refactor", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-22T02:56:16.383Z" + }, + { + "id": "bug-917", + "timestamp": "2026-06-22T02:57:27.792Z", + "error_message": "Missing error handling in unknown", + "file": "src/controller/testsuite/test_e2e_capnp.c", + "root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught", + "fix": "Added try/catch block", + "tags": [ + "auto-detected", + "error-handling", + "c" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-22T02:57:27.792Z" + }, + { + "id": "bug-855", + "timestamp": "2026-06-22T03:10:06.653962Z", + "error_message": "controller_unit_test: 6 test_wal_catchup_* tests FAIL (Expected ... Was -11/-EAGAIN or wrong applied_lsn) on the raft_tla checkpoint branch", + "file": "src/controller/testsuite/test_config_repl.c (tests) / src/controller/persist.c:705 (guard)", + "root_cause": "PRE-EXISTING on checkpoint 20e59d0, NOT caused by ha-term-safety 1.1/1.2. The bug-850 contiguity guard (persist.c:705 rejects lsn>current_lsn with -EAGAIN) is committed at HEAD, but the test_wal_catchup_* tests feed forward-gap LSNs (30, 42) into a FRESH persist (current_lsn~=1) and still expect them to apply -> guard returns -EAGAIN -> applied_lsn does not advance. ha-term-safety changes touch only vote/schema/typemap/stubs; git diff --stat shows ZERO changes to persist.c/config_repl.c/test_config_repl.c. Also a separate run TIMED OUT 300s (the bug-850 DNR /tmp fsync-EIO + commit-WAIT signature; environment artifact on overlayfs).", + "fix": "NOT FIXED here (out of task boundary). The test/guard mismatch predates this task; route to whoever owns bug-850 / ha-convergence-recovery. ha-term-safety 1.1/1.2 surface is fully green (vote+prevote+2 new capnp round-trip tests PASS); controller compiles+links again.", + "tags": [ + "pre-existing", + "controller-test", + "bug-850", + "contiguity-guard", + "EAGAIN", + "wal-catchup", + "not-a-regression", + "ha-term-safety" + ], + "related_bugs": [ + "bug-850", + "bug-851" + ], + "occurrences": 1, + "last_seen": "2026-06-22T03:10:06.653990Z" + }, + { + "id": "bug-918", + "timestamp": "2026-06-22T03:30:00Z", + "error_message": "nix develop fails: hash mismatch for c-capnproto fixed-output derivation (expected sha256-9dzSc3w+yxYzsF/rZe3qIarKOpjt2zvIyjuS5FXngIM=, got sha256-9rTlcTia+s9ARGeTi+8auGvM0RkS+wZK7aIkzecaeSk=)", + "file": "src/flake.nix", + "root_cause": "flake pins c-capnproto to the MUTABLE github archive/main.tar.gz; upstream main branch advanced so the tarball content/hash drifted, breaking the fixed-output derivation. Only pre-cached nix stores still build.", + "fix": "RESOLVED: user refreshed src/flake.lock; fresh nix develop builds (capnproto 1.2.0). A clean controller rebuild made the full controller test suite green (Ok:1 Fail:0, 12.7s) \u2014 the earlier wal_catchup -EAGAIN/decode failures were a STALE incremental-build artifact (schema compiled against the drifted toolchain), not fsync or a source regression.", + "tags": [ + "nix", + "flake", + "c-capnproto", + "env", + "build", + "worktree-isolation" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-06-22T03:45:00Z" } ] } \ No newline at end of file