Skip to content

chore: one-off recovery for alert #901 (Wavey Gist API change) - #354

Closed
spalen0 wants to merge 1 commit into
mainfrom
logs-w
Closed

spalen0 wants to merge 1 commit into
mainfrom
logs-w

Conversation

@spalen0

@spalen0 spalen0 commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

Note

The actual Wavey Gist fix is already on main3027fe6 fix(wavey-gist): use new files-snapshot payload for create endpoint (PR #351) shipped the same payload migration this branch originally proposed. After rebasing onto main, this branch is now a single-file delta: a one-off recovery script for the alert that exposed the bug.

Recommend closing this PR if the recovery artifact isn't wanted in the repo, or merging as-is for the record. Happy to drop the script in a follow-up commit if preferred.

What this branch contains

scripts/post_wavey_gist_recovery.py — republishes alert #901's stored Telegram message as a follow-up gist and sends a Telegram pointer to the INFINIFI topic. Already executed once on 2026-09-10 20:36 UTC, so the script is now idempotent: it looks for an existing source='recovery' alert referencing the source id or tx hash and no-ops if one exists.

Background

Alert #901 (INFINIFI LongTimelock, 7-call batch wiring OutlandVault into InfiniFi core, tx 0xcfa148be…196e, created 2026-09-10 16:09 UTC) was the first batch to exercise the two-stage summary + detail path after Wavey Gist rolled out the breaking change. Of the last 200 alerts only that one had a non-empty detail, which is why the regression went unnoticed.

The LLM-generated detail text is never persisted separately (only held in memory while format_explanation_line runs), so the recovery gist surfaces the full stored Telegram message (AI summary + decoded calldata + tx link) plus a note explaining why this is a follow-up rather than republishing the original detail verbatim.

Recovery results (already executed)

Test plan

  • uv run pytest tests/test_wavey_gist.py tests/test_ai_explainer.py — all pass
  • uv run ruff format scripts/post_wavey_gist_recovery.py
  • uv run ruff check scripts/post_wavey_gist_recovery.py — clean
  • Verified idempotency: re-running with CACHE_DIR set against the production store correctly reports already_recovered=True and exits 0

The actual fix for the Wavey Gist 400 was already merged on main in
3027fe6 ("fix(wavey-gist): use new files-snapshot payload for create
endpoint"). This branch only carries the one-off recovery script that
republishes alert #901's stored message and posts a Telegram follow-up.

Alert #901 (INFINIFI LongTimelock, 7-call batch wiring OutlandVault
into InfiniFi core, tx 0xcfa148be…196e) was the first batch to exercise
the two-stage summary+detail path after Wavey Gist rolled out the
breaking change. The LLM-generated detail text is only held in memory
while format_explanation_line runs and isn't persisted separately, so
the recovery gist surfaces the full stored Telegram message (AI summary
+ decoded calldata + tx link) plus a note explaining the follow-up
rather than republishing the original detail verbatim.

scripts/post_wavey_gist_recovery.py:
- Looks up alert #901 from the local store
- Publishes a recovery gist (README.md payload, matching the new
  Wavey Gist contract)
- Sends a Telegram follow-up to the INFINIFI topic
- No-ops if a previous recovery run is already in the store (checks
  for source='recovery' alerts referencing the source id or tx hash)
  so re-running doesn't pile up duplicate gists and Telegram messages

Already executed once on 2026-09-10 20:36 UTC; alert #902 carries the
follow-up, gist hxR1ZMBSN2wQrdrZIzA7QWje. Safe to drop this file before
merge if the recovery artifact isn't wanted in the repo.
@spalen0 spalen0 changed the title fix: send Wavey Gist uploads in the new files-snapshot shape chore: one-off recovery for alert #901 (Wavey Gist API change) Sep 10, 2026
@spalen0

spalen0 commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator Author

Closing — the actual fix is already on main as 3027fe6 fix(wavey-gist): use new files-snapshot payload for create endpoint, so the only thing this branch adds is a one-off recovery script for alert #901 that's already been run. PR #351 is the real fix; this branch has no code change to merge.

Recovery was completed out-of-band before closing:

  • Recovery alert #902 (delivered to INFINIFI topic) with a link to the published gist.
  • The original LLM detail text was never persisted separately, so the recovery gist surfaces the full stored Telegram message (AI summary + decoded calldata + tx link) plus a follow-up note. Acceptable as a one-off; not worth a permanent script in the repo.

@spalen0 spalen0 closed this Sep 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant