Clean up agent phases, invariants, and rename bots to timearena #487

Merged
PlasticDigits merged 2 commits from issue-323-timearena-cleanup into main 2026-06-14 07:11:00 +00:00
PlasticDigits commented 2026-06-14 05:39:12 +00:00 (Migrated from gitlab.com)

Summary

  • Agent phases: Removed stale Phase 14 “propose CI workflow” copy-paste prompt; Phase 14 now points at existing docs/testing/ci.md. Fixed Phase 7 retired link to missing rabbit-treasury.md.
  • Invariants: Added CI ↔ local parity table; pruned stale DoubPresaleVesting / vesting test inventory rows; updated INV-BOTS-245-TIMEARENA and INV-INDEXER-112.
  • Bots: Renamed Python package timecurve_bot → timearena_bot, CLI/PyPI timecurve-bot → timearena-bot, CI job bots-timecurve-test → bots-timearena-test; updated stack scripts and onboarding docs. Migration notes in bots/timearena/CHANGELOG.md.

Related: GitLab #323

Verification checklist

Acceptance item Command / check Result
No stale Phase 14 “propose workflow” prompt rg 'propose a minimal workflow' docs/agent-phases.md PASS (no matches)
Retired phases have no broken links bash scripts/check-doc-anchors.sh PASS — 66 anchors, no broken links
Invariants doc reflects current registry (no vesting in active matrix) Manual review + rg DoubPresaleVesting docs/testing/invariants-and-business-logic.md PASS — removed from business-logic table and contract test inventory; INV-REMOVAL-243 row retained
Bot package/import names consistent with bots/timearena/ rg timecurve_bot (repo-wide) PASS — only bots/timearena/CHANGELOG.md (migration note)
pytest passes in bots/timearena/ cd bots/timearena && pip install -e ".[dev]" && pytest tests -v PASS — 18 passed
CI bots job equivalent .github/workflows/unit-tests.yml bots-timearena-test job unchanged steps PASS (local pytest above)
Doc anchors bash scripts/check-doc-anchors.sh PASS

Test plan

  • cd bots/timearena && pytest
  • bash scripts/check-doc-anchors.sh

Note

Low Risk
Documentation and test naming only; no runtime, contract, or CI behavior changes beyond what the broader rename already established.

Overview
Small follow-on to the TimeArena bots rename (#323): renames the registry alias pytest to test_load_registry_time_arena_alias (behavior unchanged — legacy JSON key TimeCurve still resolves to time_arena).

Invariants / local matrix: docs/testing/invariants-and-business-logic.md now lists cd bots/timearena && pip install -e ".[dev]" && pytest tests -v (matches CI bots-timearena-test) and bash scripts/check-doc-anchors.sh alongside the existing contract, indexer, frontend, and simulations commands.

Reviewed by Cursor Bugbot for commit 30ba264470. Bugbot is set up for automated code reviews on this repo. Configure here.

## Summary - **Agent phases:** Removed stale Phase 14 “propose CI workflow” copy-paste prompt; Phase 14 now points at existing `docs/testing/ci.md`. Fixed Phase 7 retired link to missing `rabbit-treasury.md`. - **Invariants:** Added CI ↔ local parity table; pruned stale `DoubPresaleVesting` / vesting test inventory rows; updated `INV-BOTS-245-TIMEARENA` and `INV-INDEXER-112`. - **Bots:** Renamed Python package `timecurve_bot` → `timearena_bot`, CLI/PyPI `timecurve-bot` → `timearena-bot`, CI job `bots-timecurve-test` → `bots-timearena-test`; updated stack scripts and onboarding docs. Migration notes in `bots/timearena/CHANGELOG.md`. Related: GitLab #323 ## Verification checklist | Acceptance item | Command / check | Result | |-----------------|-----------------|--------| | No stale Phase 14 “propose workflow” prompt | `rg 'propose a minimal workflow' docs/agent-phases.md` | **PASS** (no matches) | | Retired phases have no broken links | `bash scripts/check-doc-anchors.sh` | **PASS** — 66 anchors, no broken links | | Invariants doc reflects current registry (no vesting in active matrix) | Manual review + `rg DoubPresaleVesting docs/testing/invariants-and-business-logic.md` | **PASS** — removed from business-logic table and contract test inventory; `INV-REMOVAL-243` row retained | | Bot package/import names consistent with `bots/timearena/` | `rg timecurve_bot` (repo-wide) | **PASS** — only `bots/timearena/CHANGELOG.md` (migration note) | | `pytest` passes in `bots/timearena/` | `cd bots/timearena && pip install -e ".[dev]" && pytest tests -v` | **PASS** — 18 passed | | CI bots job equivalent | `.github/workflows/unit-tests.yml` `bots-timearena-test` job unchanged steps | **PASS** (local pytest above) | | Doc anchors | `bash scripts/check-doc-anchors.sh` | **PASS** | ## Test plan - [x] `cd bots/timearena && pytest` - [x] `bash scripts/check-doc-anchors.sh` <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Documentation and test naming only; no runtime, contract, or CI behavior changes beyond what the broader rename already established. > > **Overview** > Small follow-on to the **TimeArena** bots rename ([#323](https://gitlab.com/PlasticDigits/yieldomega/-/issues/323)): renames the registry alias pytest to **`test_load_registry_time_arena_alias`** (behavior unchanged — legacy JSON key **`TimeCurve`** still resolves to **`time_arena`**). > > **Invariants / local matrix:** [`docs/testing/invariants-and-business-logic.md`](docs/testing/invariants-and-business-logic.md) now lists **`cd bots/timearena && pip install -e ".[dev]" && pytest tests -v`** (matches CI **`bots-timearena-test`**) and **`bash scripts/check-doc-anchors.sh`** alongside the existing contract, indexer, frontend, and simulations commands. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 30ba26447037e063050c3c51d7aad992a98d385e. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-14 05:39:22 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-14 05:39:31 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
PlasticDigits commented 2026-06-14 05:44:22 +00:00 (Migrated from gitlab.com)

Security review — MR !487

Commit reviewed: 4d67b22b2b090a376d9dcc03bc072d2b5b673f5d (base a0d325c5)

Scope: Package/CLI rename (timecurve_bot → timearena_bot, timecurve-bot → timearena-bot), CI job rename, stack script import-path updates, agent-phases/invariants/QA doc cleanup. No Solidity, indexer, or frontend application code changes.

Method: Full diff review; traced env/config → RPC/contract/subprocess paths in modified bot and shell files; checked for injection, authz, secret handling, and EVM client mis-binding regressions.

Outcome: FINDINGS: 0 medium+

Inline threads: None (no medium+ findings).

Summary

This MR is a mechanical rename and documentation alignment. Security-relevant behavior is unchanged:

  • Config / contract binding: load_config still resolves YIELDOMEGA_TIME_ARENA_ADDRESS with YIELDOMEGA_TIMECURVE_ADDRESS fallback; addresses are checksum-validated before use. Removing the timecurve_contract alias does not change ABI or binding — all call sites use timearena_contract.
  • Anvil funding guardrails: anvil_dev_bootstrap_funding_if_enabled and swarm startup still require allow_anvil_funding and chain_id == 31337.
  • Subprocess swarm: swarm_runner still spawns fixed python -m timearena_bot.cli <strategy> argv (no shell); private keys pass via env as before.
  • sync-bot-env-from-frontend.sh: Output path corrected to bots/timearena/.env.local; still writes with umask 077 and no new user-controlled shell interpolation.
  • Docs / invariants: DoubPresaleVesting table pruning and CI parity notes are documentation-only; no runtime security control removed.

Operational note (not a vulnerability): External integrations importing timecurve_bot or invoking the timecurve-bot CLI will break until migrated — availability/compatibility, not an authz or funds-at-risk issue in this diff.

Security review: no medium+ findings on this diff.

## Security review — MR !487 **Commit reviewed:** `4d67b22b2b090a376d9dcc03bc072d2b5b673f5d` (base `a0d325c5`) **Scope:** Package/CLI rename (`timecurve_bot` → `timearena_bot`, `timecurve-bot` → `timearena-bot`), CI job rename, stack script import-path updates, agent-phases/invariants/QA doc cleanup. No Solidity, indexer, or frontend application code changes. **Method:** Full diff review; traced env/config → RPC/contract/subprocess paths in modified bot and shell files; checked for injection, authz, secret handling, and EVM client mis-binding regressions. **Outcome:** `FINDINGS: 0` medium+ **Inline threads:** None (no medium+ findings). ### Summary This MR is a mechanical rename and documentation alignment. Security-relevant behavior is unchanged: - **Config / contract binding:** `load_config` still resolves `YIELDOMEGA_TIME_ARENA_ADDRESS` with `YIELDOMEGA_TIMECURVE_ADDRESS` fallback; addresses are checksum-validated before use. Removing the `timecurve_contract` alias does not change ABI or binding — all call sites use `timearena_contract`. - **Anvil funding guardrails:** `anvil_dev_bootstrap_funding_if_enabled` and swarm startup still require `allow_anvil_funding` and `chain_id == 31337`. - **Subprocess swarm:** `swarm_runner` still spawns fixed `python -m timearena_bot.cli <strategy>` argv (no shell); private keys pass via env as before. - **`sync-bot-env-from-frontend.sh`:** Output path corrected to `bots/timearena/.env.local`; still writes with `umask 077` and no new user-controlled shell interpolation. - **Docs / invariants:** DoubPresaleVesting table pruning and CI parity notes are documentation-only; no runtime security control removed. **Operational note (not a vulnerability):** External integrations importing `timecurve_bot` or invoking the `timecurve-bot` CLI will break until migrated — availability/compatibility, not an authz or funds-at-risk issue in this diff. Security review: **no medium+ findings** on this diff.
PlasticDigits commented 2026-06-14 06:54:59 +00:00 (Migrated from gitlab.com)

Resolved merge conflicts with main (commit 30ba2644).

Bots: Kept main's timearena_address field naming and updated TimeArena ABI; removed legacy timecurve.json.

Docs: Merged indexer invariant sections (#317, #319) from main; deduplicated CI parity table; kept Phase 14/7 cleanup and dropped stale "legacy CLI" QA copy.

Checks: bash scripts/check-doc-anchors.sh — PASS.

Resolved merge conflicts with `main` (commit 30ba2644). **Bots:** Kept `main`'s `timearena_address` field naming and updated TimeArena ABI; removed legacy `timecurve.json`. **Docs:** Merged indexer invariant sections (#317, #319) from `main`; deduplicated CI parity table; kept Phase 14/7 cleanup and dropped stale "legacy CLI" QA copy. **Checks:** `bash scripts/check-doc-anchors.sh` — PASS.
PlasticDigits commented 2026-06-14 06:55:32 +00:00 (Migrated from gitlab.com)

added 100 commits

  • 4d67b22b...862964db - 99 commits from branch main
  • 30ba2644 - Merge main into issue-323-timearena-cleanup and resolve conflicts.

Compare with previous version

added 100 commits <ul><li>4d67b22b...862964db - 99 commits from branch <code>main</code></li><li>30ba2644 - Merge main into issue-323-timearena-cleanup and resolve conflicts.</li></ul> [Compare with previous version](/PlasticDigits/yieldomega/-/merge_requests/117/diffs?diff_id=1850611431&start_sha=4d67b22b2b090a376d9dcc03bc072d2b5b673f5d)
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-14 06:55:57 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
PlasticDigits commented 2026-06-14 06:57:35 +00:00 (Migrated from gitlab.com)

Security review — MR !487

Commit reviewed: 30ba26447037e063050c3c51d7aad992a98d385e (base 862964db)

Scope: Post-merge delta only — pytest function rename in bots/timearena/tests/test_addresses.py (test_load_registry_timecurve_alias → test_load_registry_time_arena_alias; behavior unchanged) and two CI-parity command lines added to the local test matrix in docs/testing/invariants-and-business-logic.md. No Solidity, indexer, frontend, shell-script, or bot runtime code changes in this diff.

Method: Full diff review against 862964db..30ba2644; traced whether modified lines alter attacker-controlled input handling, authz, secret exposure, or EVM contract binding. Re-checked prior security review on 4d67b22 — larger rename scope already cleared; remaining delta is naming/docs only.

Outcome: FINDINGS: 0 medium+

Inline threads: None (no medium+ findings).

Summary

  • Test rename: Cosmetic only; still asserts legacy registry key TimeCurve resolves to time_arena. No change to addresses_from_registry or checksum validation paths.
  • Invariants doc: Adds documented local equivalents of existing CI jobs (pytest in bots/timearena/, check-doc-anchors.sh). Documentation-only; no executable logic or security control modified.

Security review: no medium+ findings on this diff.

## Security review — MR !487 **Commit reviewed:** `30ba26447037e063050c3c51d7aad992a98d385e` (base `862964db`) **Scope:** Post-merge delta only — pytest function rename in `bots/timearena/tests/test_addresses.py` (`test_load_registry_timecurve_alias` → `test_load_registry_time_arena_alias`; behavior unchanged) and two CI-parity command lines added to the local test matrix in `docs/testing/invariants-and-business-logic.md`. No Solidity, indexer, frontend, shell-script, or bot runtime code changes in this diff. **Method:** Full diff review against `862964db..30ba2644`; traced whether modified lines alter attacker-controlled input handling, authz, secret exposure, or EVM contract binding. Re-checked prior security review on `4d67b22` — larger rename scope already cleared; remaining delta is naming/docs only. **Outcome:** `FINDINGS: 0` medium+ **Inline threads:** None (no medium+ findings). ### Summary - **Test rename:** Cosmetic only; still asserts legacy registry key `TimeCurve` resolves to `time_arena`. No change to `addresses_from_registry` or checksum validation paths. - **Invariants doc:** Adds documented local equivalents of existing CI jobs (`pytest` in `bots/timearena/`, `check-doc-anchors.sh`). Documentation-only; no executable logic or security control modified. Security review: **no medium+ findings** on this diff.
PlasticDigits commented 2026-06-14 07:11:00 +00:00 (Migrated from gitlab.com)

mentioned in commit 1445c3b3ad

mentioned in commit 1445c3b3adcbd51de371eed4e372a8004a668b7c
PlasticDigits (Migrated from gitlab.com) merged commit 1445c3b3ad into main 2026-06-14 07:11:00 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/yieldomega!487
No description provided.