Verify #323: fix route-solver docs drift after 4-hop GET cap #808

Merged
PlasticDigits merged 1 commit from cursor/gitlab-issue-verification-ba0a into main 2026-06-05 13:43:56 +00:00
PlasticDigits commented 2026-06-05 13:38:47 +00:00 (Migrated from gitlab.com)

Summary

Verification QA for #323 — Phase 2: raise GET_DEFAULT_MAX_HOPS 3→4.

Implementation shipped in !796 (merged). Dependency #319 (DB mirror pricing) is also on main.

This MR fixes docs/guardrails drift found during verification: the drift guard script still expected SOLVER_VERSION (renamed to SOLVER_VERSION_LCD / SOLVER_VERSION_DB in #319), and several docs still referenced the old 3-hop GET cap.

Acceptance checklist

Criterion Verification Result
GET_DEFAULT_MAX_HOPS = 4 + module docs grep GET_DEFAULT_MAX_HOPS indexer/src/api/route_solver.rs → 4; module doc line 3 says max 4 hops PASS
4-hop-only pair via default GET cargo test --test api_route_solve route_solve_get_default_hybrid_four_hops PASS
LCD_HYBRID_SIM_BUDGET = 1700 + pinned test cargo test --lib lcd_budget_is_documented_constant PASS
Reachability at max_hops = 4 cargo test --lib four_hop_only_route_within_budget_is_found unreachable_goal_at_four_hops_does_zero_enumeration PASS
No hybrid_cache_key change Code review — key shape unchanged PASS
Route tests green cargo test --test api_route_solve (23 tests), cargo test --lib route_paths (12 tests) PASS
Docs drift guard python3 scripts/check_route_solver_docs.py PASS (fixed in this MR)

Changes in this MR

  • scripts/check_route_solver_docs.py: expect SOLVER_VERSION_LCD / SOLVER_VERSION_DB instead of removed SOLVER_VERSION
  • docs/route-solver.md: mermaid, API matrix, glossary, constants table aligned to 4-hop GET cap and dual solver versions
  • skills/AGENTS_INDEXER_HYBRID_BEST_EXECUTION.md, skills/AGENTS_TESTING_MULTIHOP_HYBRID.md, docs/limit-orders.md: 3→4 hop references
  • ADR 0001 / 0002: amendment noting #323 hop-cap raise

Note

Low Risk
Documentation and doc-drift script only; no indexer or API runtime changes.

Overview
Documentation-only follow-up for #323 verification: brings route-solver docs, ADRs, agent skills, and the drift guard in line with indexer behavior already on main (4-hop default GET hybrid routing from !796).

scripts/check_route_solver_docs.py now validates SOLVER_VERSION_LCD / SOLVER_VERSION_DB (global_v1 / global_v2) instead of the removed SOLVER_VERSION constant from #319.

Docs replace stale 3-hop GET hybrid caps with 4 hops across ADR 0001, limit-orders.md, route-solver.md (mermaid, API matrix, constants), and hybrid best-execution / multihop testing skills. ADR 0002 adds an amendments section for #323 (hop cap, LCD_HYBRID_SIM_BUDGET = 1700). route-solver.md also documents dual solver_version labels and the updated LCD budget formula.

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

## Summary Verification QA for [#323](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/323) — **Phase 2: raise `GET_DEFAULT_MAX_HOPS` 3→4**. Implementation shipped in [!796](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/78) (merged). Dependency [#319](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/319) (DB mirror pricing) is also on `main`. This MR fixes **docs/guardrails drift** found during verification: the drift guard script still expected `SOLVER_VERSION` (renamed to `SOLVER_VERSION_LCD` / `SOLVER_VERSION_DB` in #319), and several docs still referenced the old 3-hop GET cap. ## Acceptance checklist | Criterion | Verification | Result | |-----------|--------------|--------| | `GET_DEFAULT_MAX_HOPS = 4` + module docs | `grep GET_DEFAULT_MAX_HOPS indexer/src/api/route_solver.rs` → `4`; module doc line 3 says max **4 hops** | **PASS** | | 4-hop-only pair via default GET | `cargo test --test api_route_solve route_solve_get_default_hybrid_four_hops` | **PASS** | | `LCD_HYBRID_SIM_BUDGET = 1700` + pinned test | `cargo test --lib lcd_budget_is_documented_constant` | **PASS** | | Reachability at `max_hops = 4` | `cargo test --lib four_hop_only_route_within_budget_is_found unreachable_goal_at_four_hops_does_zero_enumeration` | **PASS** | | No `hybrid_cache_key` change | Code review — key shape unchanged | **PASS** | | Route tests green | `cargo test --test api_route_solve` (23 tests), `cargo test --lib route_paths` (12 tests) | **PASS** | | Docs drift guard | `python3 scripts/check_route_solver_docs.py` | **PASS** (fixed in this MR) | ## Changes in this MR - `scripts/check_route_solver_docs.py`: expect `SOLVER_VERSION_LCD` / `SOLVER_VERSION_DB` instead of removed `SOLVER_VERSION` - `docs/route-solver.md`: mermaid, API matrix, glossary, constants table aligned to 4-hop GET cap and dual solver versions - `skills/AGENTS_INDEXER_HYBRID_BEST_EXECUTION.md`, `skills/AGENTS_TESTING_MULTIHOP_HYBRID.md`, `docs/limit-orders.md`: 3→4 hop references - ADR 0001 / 0002: amendment noting #323 hop-cap raise <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Documentation and doc-drift script only; no indexer or API runtime changes. > > **Overview** > Documentation-only follow-up for **#323** verification: brings route-solver docs, ADRs, agent skills, and the drift guard in line with indexer behavior already on `main` (4-hop default GET hybrid routing from !796). > > **`scripts/check_route_solver_docs.py`** now validates **`SOLVER_VERSION_LCD`** / **`SOLVER_VERSION_DB`** (`global_v1` / `global_v2`) instead of the removed **`SOLVER_VERSION`** constant from **#319**. > > **Docs** replace stale **3-hop** GET hybrid caps with **4 hops** across ADR 0001, `limit-orders.md`, `route-solver.md` (mermaid, API matrix, constants), and hybrid best-execution / multihop testing skills. **ADR 0002** adds an amendments section for **#323** (hop cap, **`LCD_HYBRID_SIM_BUDGET` = 1700**). **`route-solver.md`** also documents dual **`solver_version`** labels and the updated LCD budget formula. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 666d7f4c4bd7403d3b10f6195c3eed78e8e4faab. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
ghost1 commented 2026-06-05 13:38:55 +00:00 (Migrated from gitlab.com)

restored source branch cursor/gitlab-issue-verification-ba0a

restored source branch `cursor/gitlab-issue-verification-ba0a`
ghost1 commented 2026-06-05 13:38:55 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
PlasticDigits commented 2026-06-05 13:38:59 +00:00 (Migrated from gitlab.com)

mentioned in issue #323

mentioned in issue #323
ghost1 commented 2026-06-05 13:39:03 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
PlasticDigits commented 2026-06-05 13:39:49 +00:00 (Migrated from gitlab.com)

Security review (automated)

Commit reviewed: 666d7f4c4bd7403d3b10f6195c3eed78e8e4faab
Scope: 7 files — documentation/skills/ADR updates (3→4 hop GET cap, dual solver_version labels) plus scripts/check_route_solver_docs.py drift-guard alignment (SOLVER_VERSION_LCD / SOLVER_VERSION_DB). No runtime/indexer/contract code in this diff.

Method: Full diff vs main (9d7331c); traced attacker-controlled input for the only executable change (drift script — fixed repo paths, hardcoded const names, re.escape on identifiers, no network/subprocess/eval). Prior MR security threads: none.

Outcome: FINDINGS: 0 (no medium, high, or critical issues on this diff).

Security review: no medium+ findings on this diff.

Inline threads: none (no findings to anchor).

Notes (out of scope for this MR): The 4-hop GET cap and LCD sim budget are already on main from !796; this MR only corrects docs/guardrails. Resource-amplification from a higher hop cap is not introduced here.

## Security review (automated) **Commit reviewed:** `666d7f4c4bd7403d3b10f6195c3eed78e8e4faab` **Scope:** 7 files — documentation/skills/ADR updates (3→4 hop GET cap, dual `solver_version` labels) plus `scripts/check_route_solver_docs.py` drift-guard alignment (`SOLVER_VERSION_LCD` / `SOLVER_VERSION_DB`). No runtime/indexer/contract code in this diff. **Method:** Full diff vs `main` (`9d7331c`); traced attacker-controlled input for the only executable change (drift script — fixed repo paths, hardcoded const names, `re.escape` on identifiers, no network/subprocess/eval). Prior MR security threads: none. **Outcome:** **FINDINGS: 0** (no medium, high, or critical issues on this diff). Security review: no medium+ findings on this diff. **Inline threads:** none (no findings to anchor). **Notes (out of scope for this MR):** The 4-hop GET cap and LCD sim budget are already on `main` from !796; this MR only corrects docs/guardrails. Resource-amplification from a higher hop cap is not introduced here.
PlasticDigits (Migrated from gitlab.com) merged commit e41f61bb11 into main 2026-06-05 13:43:56 +00:00
PlasticDigits commented 2026-06-05 13:43:58 +00:00 (Migrated from gitlab.com)

mentioned in commit e41f61bb11

mentioned in commit e41f61bb11ba2175c304bbc3bd917aede0b83008
PlasticDigits commented 2026-06-08 08:43:13 +00:00 (Migrated from gitlab.com)

mentioned in commit 88b50f1519

mentioned in commit 88b50f1519abe021d3a8496485daf3c3e8ddc80f
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/cl8y-dex-terraclassic!808
No description provided.