docs(6209): snippets, rule embeddings, notes, ledger ageing and references, routes, reporting, handshake, lesson kind, request deadlines, contract-around-change, family models
CI & Build / Python lint (push) Successful in 2s
CI & Build / Plugin hooks (push) Successful in 14s
CI & Build / TypeScript typecheck (push) Successful in 1m0s
CI & Build / integration (push) Successful in 1m14s
CI & Build / Python tests (push) Successful in 1m59s
CI & Build / Build & push image (push) Successful in 15s
CI & Build / Python lint (push) Successful in 2s
CI & Build / Plugin hooks (push) Successful in 14s
CI & Build / TypeScript typecheck (push) Successful in 1m0s
CI & Build / integration (push) Successful in 1m14s
CI & Build / Python tests (push) Successful in 1m59s
CI & Build / Build & push image (push) Successful in 15s
Twelve more test files drop issue, milestone, rule, note, lesson and snippet numbers and the dated or one-project figures that recorded how each property was found; the docstrings state the property and why it holds. The contract-around-the-change guard keeps the dict-key example as the failure a signature-watcher misses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,7 @@ from scribe.services import snippets as s
|
||||
|
||||
|
||||
def test_the_embedded_title_joins_the_trigger_the_stored_one_does_not_carry():
|
||||
"""Milestone 427: stored title = name; the trigger joins it at embed time,
|
||||
"""Stored title = name; the trigger joins it at embed time,
|
||||
idempotently, so an old composed title comes out the same."""
|
||||
from scribe.services.embeddings import document_title
|
||||
|
||||
@@ -167,7 +167,7 @@ def test_merge_snippet_fields_unions_locations_and_tags():
|
||||
# extra tags unioned, language + "snippet" markers excluded.
|
||||
assert extra == ["core", "helper"]
|
||||
|
||||
# Attribution (#2165): only what each source ACTUALLY added. src2's location
|
||||
# Attribution: only what each source ACTUALLY added. src2's location
|
||||
# is one the target already had, so it contributed nothing — un-merging it
|
||||
# must not strip a call site the survivor owns in its own right.
|
||||
assert contributions[0]["locations"] == [{"repo": "b", "path": "b.py", "symbol": "g"}]
|
||||
@@ -249,7 +249,7 @@ def test_data_and_body_round_trip_to_the_same_fields():
|
||||
name, when, sig, lang = ("debounce", "rate-limit a callback",
|
||||
"debounce(fn, ms)", "ts")
|
||||
locs = [{"repo": "web", "path": "src/util.ts", "symbol": "debounce"}]
|
||||
# compose_body takes no `name` — the name IS the title (milestone 427) — so
|
||||
# compose_body takes no `name` — the name IS the title — so
|
||||
# the two serializers get their own argument lists rather than a shared spread.
|
||||
title = name
|
||||
body = s.compose_body(code="const x = 1", language=lang, signature=sig,
|
||||
@@ -267,7 +267,7 @@ def test_data_and_body_round_trip_to_the_same_fields():
|
||||
assert from_body[key] == from_data[key], key
|
||||
|
||||
|
||||
# --- merge provenance (#2087) ------------------------------------------------
|
||||
# --- merge provenance -------------------------------------------------------
|
||||
|
||||
def test_normalize_merged_from_keeps_history_order_and_drops_junk():
|
||||
"""Order is history, not sorting — earlier merges stay first."""
|
||||
@@ -276,7 +276,7 @@ def test_normalize_merged_from_keeps_history_order_and_drops_junk():
|
||||
|
||||
|
||||
def test_normalize_merged_from_carries_per_source_attribution():
|
||||
"""The shape that makes un-merge exact (#2165): each entry holds what THAT
|
||||
"""The shape that makes un-merge exact: each entry holds what THAT
|
||||
source contributed, so reversing one can't strip what the survivor owns."""
|
||||
loc = {"repo": "a", "path": "a.py", "symbol": "f"}
|
||||
out = s._normalize_merged_from([{"id": 7, "locations": [loc], "tags": ["x"]}])
|
||||
|
||||
Reference in New Issue
Block a user