Coverage of the friction matrix

Where each of the 29 issues in the Agent Friction Matrix stands. "Built" means working code with tests in this repo. "Built, both sides" means the agent side (agent-index) and the site side (the AgentFriendly middleware) both work over real HTTP, so any Python site can adopt it today; what is left is for sites, networks or other agents to take it up.

# Issue Status Where What remains outside this repo
1 HTML noise eats tokens Built extract.py, agent-view
2 Search ranks for clicks, not answers Built Hybrid search in store.search and embed.py
3 Agents borrow the user's session Built, both sides Grants in identity.py, wallet in wallet.py, agent-index grant / revoke, verification in site.py Sites adopting grants; OAuth token-exchange issuance for sites that run OAuth
4 Context fills with repeated tool output Built cache.py reader diffs
5 JavaScript pages need a browser Built render.py
6 Forms driven by pixels or selectors Built, both sides Manifests and handlers in actions.py / site.py, call_action Sites publishing manifests
7 No scoped spending limits Built, both sides Mandates in payments.py, checked by the wallet and the merchant
8 Sites can't tell which agent acts for whom Built, both sides RFC 9421 signed grants, scope["agent"] Sites adopting grants
9 Bot detection blocks legitimate agents Built, both sides Web Bot Auth signing and key directories in httpsig.py Hosting the key directory; bot-management vendors listing the agent
10 Weak self-verification Built (partial) verify.py: numbers and names checked against the cited source Checking meaning, not just figures and names
11 Most sites have no action API Built, both sides AgentFriendly(handlers=...) serves the manifest's actions Sites adopting it
12 Over-exploration Built search before fetch
13 No freshness, canonical or spam signal Built provenance.py
14 Agents duplicate each other's work Built Shared cache and Fetcher.memo
15 Memory between sessions is ad hoc Built memory.py, agent-memory
16 OAuth scopes are coarse and long-lived Built, both sides One-site, one-hour grants; narrowest grant per request; signed revocation Same as #3
17 Checkout assumes a human with a card Built, both sides Mandate-signed checkout actions, ctx.charge Settling with real payment providers
18 Approval prompts are all or nothing Built approvals.py, enforced on every spend, send and delete
19 Long tasks have no checkpoints Built checkpoint.py, handoff
20 Handoffs pass free text Built checkpoint.py, handoff
21 robots.txt says nothing about terms Built, both sides sitepolicy.py; enforced by fetch, the crawler and the middleware Sites publishing policies
22 No discovery of who can do a task Built (shared index scale) Manifests from discover_actions and index_site stored in the index; find_action A public registry at web scale
23 Multi-step flows have no machine-readable steps Built, both sides Flows in actions.py, resumable on failure Sites publishing flows
24 Micropayments are impractical Built, both sides HTTP 402 with Agent-Price, auto-pay within policy Batched settlement with a payment provider
25 Pagination hides data Built next_url, crawl, scrolling in render.py
26 Errors are red text Built, both sides errors.py: structured errors on sites, any response normalized for agents
27 No shared trust or reputation layer Built (index) + spec + prototype (agents) Source accuracy in search; signed attestations in trust.py A public attestation log
28 No refund and receipt trail Built, both sides Durable hash-chained ledger, Agent-Receipts, refunds, receipt audit
29 No negotiation protocol Built, both sides /.well-known/agent-negotiate, negotiate tool, agreed price enforced at checkout Other agent frameworks speaking the protocol