Skip to content

fix(notify,holdings): no sends from test branches, trigger input, holdings windows in code - #267

Merged
aaronjmars merged 2 commits into
mainfrom
fix/langfuse-review-3
Oct 16, 2026
Merged

aaronjmars merged 2 commits into
mainfrom
fix/langfuse-review-3

Conversation

@aaronjmars

@aaronjmars aaronjmars commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Instance part of aeonfun/aeon#1232 (Langfuse review 2026-10-16). This instance's narrowed workflow differs from canon, so it gets its own PR, like #1230's instance PRs.

  1. No real notifications from test branches. "Send pending notifications" now needs github.ref_name == github.event.repository.default_branch, like the health-issue step. Thursday's workflow_dispatch runs of holdings on verify/langfuse-models / verify/langfuse-slicing each delivered a real Telegram card ("Delivered 1/1"). Repo variable NOTIFY_ON_BRANCH=1 opts a test branch back in; skipped payloads sit in $RUNNER_TEMP and are dropped.
  2. trigger input, ahead of the sync. Adds the optional trigger input and the AEON_DISPATCH_TRIGGER env, same text as canon. Inert for now (the current langfuse-otel.sh does not read it). It lands first so that when aeon-update brings the Scheduler passing -f trigger=cron, this workflow already accepts it (the canon Scheduler also retries without it).
  3. holdings picks its own windows (instance-only skill). holdings.py reads the HOLDINGS_STATE: lines in memory/logs + memory/logs/archive and prints growth.<symbol>.{last,7d,30d} (null when no snapshot is inside the +/-2 / +/-4 day range); step 2 only renders it, never recomputes. Two runs 80 min apart on 10-15 sent "7d +246.04M (vs 10-05)" and "7d building" from the same snapshots; 10-05 was 10 days back, outside the skill's own rule. --no-history for a one-off var wallet. The notify card gets a one-line sources footer (the scorer gave the bare stat line a 2), and the % Supply miss renders n/a.

Arrives with the next aeon-update (not in this PR): the usage_details 1h/5m cache-write pricing in otel-span.sh, the fleet-scorecard price, the lean scorer (needs the new run-harness --no-tools), the trigger mapping, the Scheduler / chain-runner input, and the memory-flush byte budget.

Checked: actionlint, validate-config.js, test_workflow_harness_choices.sh and test_langfuse_otel.sh (same result as main), and holdings.py run live against memory/holdings.json (today: last vs 10-12, 7d null, 30d vs 09-14).


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

Instance copy of the aeon.yml hunks in aeonfun/aeon#1232. Send pending
notifications now needs the default branch (repo var NOTIFY_ON_BRANCH=1 opts a
test branch in); verify/* test dispatches of holdings sent real Telegram
messages. The optional trigger input and AEON_DISPATCH_TRIGGER env are inert
until the Scheduler / chain-runner / langfuse-otel.sh changes arrive with
aeon-update.
The model did the nearest-snapshot math by hand and broke its own +/-2 day
rule on an off-schedule run (sent 7d vs a 10-day-old snapshot). holdings.py now
reads the HOLDINGS_STATE lines (memory/logs and logs/archive) and prints
growth.<symbol>.{last,7d,30d} or null; step 2 only renders it. --no-history for
a one-off var wallet. The notify card gains a one-line sources footer, which the
scorer docked the bare stat line for.
@aaronjmars
aaronjmars merged commit 990830d into main Oct 16, 2026
13 checks passed
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