phase: 160_tool_budget_telemetry
All green. Final report: **Phase 160 completion pass — verified (final verification; all 5 tasks already in `complete/`)** - **Verified, no code defects found:** budget trailers (`TOOL_BUDGET_REMAINING/LAST/SPENT`), cap-path rejection + `ROUND_CAP_FALLBACK_ANSWER` + `ROUND_CAP_WRAPUP_INSTRUCTION`, `done.budget_exhausted` (ABSENT-when-false), `rounds=/cap_hit=` log fields, `agent_max_rounds=10` default, frontend Continue button + restore + shared-page exclusion, mock markers. - **Tests/lint:** `uv run pytest` 153/153 green (EXIT 0); `uv run pytest --cov=app --cov-report=term-missing` TOTAL **99%** (>90%); `uv run ruff check .` clean; `uv run pyright` 0 errors/0 warnings. - **Criteria:** ① decreasing trailer pinned by unit tests (9→…→spent) ✅ ② cap path ends readable, no tool lines after cap (E2E) ✅ ③ `budget_exhausted` true-only-on-cap, absent otherwise (integration) ✅ ④ Continue button → one fresh `continue` turn, fresh budget, record intact (E2E) ✅ ⑤ flag survives refresh; shared chat never renders it (`shared.js` has no `budget_exhausted` path) ✅ ⑥ `max_rounds=0` byte-identical single `tools=None` request; default still 10 ✅ ⑦ full suite/coverage/lint green ✅ ⑧ `test_tool_budget_telemetry.py` **7/7** in isolation; all 6 regression E2E suites green in isolation ✅ ⑨ commit + phase move = harness (I make no git history/index changes). - **Docs:** README.md — fixed: the "Continue researching" button and cap behavior were undocumented (added a Chat-section paragraph + an Agent-tools-section paragraph, incl. the phase-71 recorded-revision note); env-var table, commands, and architecture all verified consistent otherwise. AGENTS.md — verified consistent, no changes needed. - **Decisions:** no code changes required — phase was fully implemented; only README docs added. No live-infrastructure touched. - **Next pending phase:** `161_reasoning_bubble`.
This commit is contained in:
@@ -1027,6 +1027,39 @@ a.answer-image:hover { text-decoration: underline; } /* flat — the caption und
|
||||
.retry-btn svg { width: 14px; height: 14px; display: block; }
|
||||
.retry-btn:hover { background: var(--brand-soft); color: var(--ink); }
|
||||
|
||||
/* Phase 160 (task 04, TODO L4): the "Continue researching" button —
|
||||
the one-click continuation in the actions row
|
||||
(.msg-meta.msg-actions — phase 130) of a cap-reached brain bubble
|
||||
(the done frame's budget_exhausted, task 03). The exact visual
|
||||
family of .retry-btn (same pill size/spacing, the global
|
||||
:focus-visible ring, >=44px via min-height) so the meta actions
|
||||
read as a set — but neutral: ink-soft -> ink on hover (Tune keeps
|
||||
the brand pair). The forward glyph rides currentColor. No
|
||||
per-button auto margin (phase 130 — the row's justify right-aligns
|
||||
the cluster). No animation of its own, so the
|
||||
prefers-reduced-motion blocks need nothing for it (the family's
|
||||
parity — .retry-btn / .edit-btn have none either). Contrast: ink-soft on --bg ~8.6:1, ink
|
||||
~15:1, hover ink on --brand-soft ~15.7:1 — all AA. */
|
||||
.continue-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.35rem;
|
||||
min-height: 44px;
|
||||
padding: 0.35rem 0.8rem;
|
||||
border-radius: 999px;
|
||||
border: 1px solid var(--line);
|
||||
background: transparent;
|
||||
color: var(--ink-soft);
|
||||
font: inherit;
|
||||
font-weight: 600;
|
||||
font-size: 0.82rem;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
.continue-btn svg { width: 14px; height: 14px; display: block; }
|
||||
.continue-btn:hover { background: var(--brand-soft); color: var(--ink); }
|
||||
|
||||
/* Phase 159 (task 01, TODO L3): the "Edit" button — the
|
||||
* trim-and-re-ask action in the .msg-meta.msg-actions row (phase 130)
|
||||
* of the NEWEST user bubble (markLastEditable — the phase-49
|
||||
@@ -5817,6 +5850,7 @@ a.answer-image:hover { text-decoration: underline; } /* flat — the caption und
|
||||
.tune-btn { min-height: 44px; }
|
||||
.retry-btn { min-height: 44px; }
|
||||
.edit-btn { min-height: 44px; }
|
||||
.continue-btn { min-height: 44px; }
|
||||
/* Phase 27: the tuning page squeezes like the other cards — the row
|
||||
padding tightens; the icon+label actions keep their 44px floor and
|
||||
the note text ellipsizes (min-width: 0). */
|
||||
|
||||
Reference in New Issue
Block a user