phase: 119_name_signal_read_chips
All verification complete. Final report: **Phase 119 final verification pass — all criteria verified, one stale pin fixed.** - Verified implementation of all 6 tasks: D1 component name-hit rule (`name_hit` flag, titles never matched, retired length tie-break), D2 `BOR_NAME_HIT_BONUS` (0.005 default, 0 = byte-identical kill switch, negative fails startup, selection-layer only, `eval_retrieval` `suggested:` line), D3 suggested-folder lines (after `SUGGEST_INTRO`, before first block), D4 cite-discipline `SUGGEST_INTRO` sentence (PERSONA/LOW/`TOOLS_SECTION` byte-pins intact), D5 `done.sources` = read docs only (frontend no-op on empty confirmed), D6 mock `repeat your folder map` echo + new suite + telemetry. - Battery (replica restored per skill, fingerprint docs=1000/chunks=8866 verified, `eval_retrieval --from-file tests/fixtures/retrieval_battery.txt` re-run): **GATE PASS** — gitea README #4 in suggested top-5, forgejo 5/5 (README #1), gateway README in top-5 (#4), qwen3.8-27b quadlets top-5, Mongolia HIGH/fts=5 unchanged. - New E2E in isolation: `4 passed` ×2 (deterministic). All 27 modified E2E suites in isolation: 26 green; **1 stale pin fixed** — `test_source_chip_quality.py` durable-record order pin pre-dated the D1 re-rank (`aliases` stem sub-component name-hits `ssh_aliases.txt`, deterministically lifting `backups.md` over `kubernetes.md`; probe-verified 0.016277 vs 0.016036, 4/4 stable) — re-pinned with the phase-119 rationale; suite green ×2. - Gates: `uv run pytest --cov=app --cov-report=term-missing` → **2547 passed, app coverage 99%** (>90%); `uv run ruff check .` → All checks passed; `uv run pyright` → 0 errors. - Completion criteria: 1 ✅ (battery, recorded), 2 ✅ (folder lines; block/LOW byte-identical pins green), 3 ✅ (read-only chips, zero-read chips nothing, related row + durable record untouched — unit+E2E agree), 4 ✅ (all green), 5 → commit/phase-move left to the harness per pass rules (nothing committed). - Deviations: battery output + real-model telemetry recorded in `.agents/reports/119_name_signal_read_chips/task06_battery_and_e2e.md` and `TOOL_CALLING_TESTING.md` §11 (task files in `complete/` are immutable to this pass); gateway canonical doc at #4 vs overview's #3 was already documented at task 06 (containment gate met). - Next pending phase: **none** — `todo/` holds only phase 119.
This commit is contained in:
@@ -25,12 +25,14 @@ click is the idempotent share of the linked row):
|
||||
cookies) opening ``/shared/<token>`` sees the full conversation
|
||||
read-only through the same record shape: title = the auto-title,
|
||||
user + brain bubbles (the same deterministic answer text the admin
|
||||
session saw), the thinking block RESTORED COLLAPSED, the source
|
||||
chips as PLAIN TEXT (zero ``a.source-chip`` — guests cannot open
|
||||
documents, the documents API is admin-only), and ZERO interactive
|
||||
controls anywhere (no composer, no Save/Share pills, no Tune/Retry,
|
||||
no button chips); the nav's admin-only links stay hidden for a
|
||||
guest;
|
||||
session saw), the thinking block RESTORED COLLAPSED, ZERO source
|
||||
chips of any kind — the shared turn read nothing, so (phase 119,
|
||||
LOCKED A1) its ``done`` sources are empty and nothing re-renders as a
|
||||
chip; where chips exist they are always PLAIN TEXT (zero
|
||||
``a.source-chip`` — guests cannot open documents, the documents API
|
||||
is admin-only) — and ZERO interactive controls anywhere (no
|
||||
composer, no Save/Share pills, no Tune/Retry, no button chips); the
|
||||
nav's admin-only links stay hidden for a guest;
|
||||
* **Share from History + unshare** — the History row's Share column:
|
||||
"Create link" → Copy + Unshare; Unshare is the inline two-step
|
||||
(no native dialog); after Yes the cell returns to "Create link",
|
||||
@@ -345,17 +347,13 @@ def test_anonymous_shared_view(
|
||||
expect(think).to_have_count(1)
|
||||
expect(think.first).not_to_have_attribute("open")
|
||||
|
||||
# Source chips are PLAIN TEXT: the on-topic turn carries its
|
||||
# source chips (the suggested docs — the hybrid retrieval's
|
||||
# summary-seed tier, phase 118), but every one as a <span>:
|
||||
# zero <a.source-chip> anywhere (a guest cannot open documents;
|
||||
# the documents API is admin-only).
|
||||
assert (
|
||||
anon.locator(".msg.brain .source-chip").count() >= 1
|
||||
), "the grounded turn must carry its source chips"
|
||||
expect(
|
||||
anon.locator(".msg.brain .source-chip", has_text="kubernetes.md")
|
||||
).to_have_count(1)
|
||||
# Source chips: ZERO — the shared turn read nothing, so
|
||||
# (phase 119, LOCKED A1) its done sources are empty and the
|
||||
# shared page re-renders nothing (the retired phase-118 A4
|
||||
# suggested+read union is gone); and where chips DO exist they
|
||||
# are always plain text: zero <a.source-chip> anywhere (a
|
||||
# guest cannot open documents; the documents API is admin-only).
|
||||
expect(anon.locator(".msg.brain .source-chip")).to_have_count(0)
|
||||
expect(anon.locator("a.source-chip")).to_have_count(0)
|
||||
|
||||
# ZERO interactive controls anywhere in the conversation: no
|
||||
|
||||
Reference in New Issue
Block a user