Skip to content
Version: Current

Research index

This page is a dated research index. It is not canonical current product or operations guidance.

Research entries are evidence-first. Every claim should carry a label: Observed (a probe or page read on a named date), Secondary (reported by a third party), or Modelled (arithmetic on observed inputs). Dates matter. A fact from 2026-10-20 is not a fact forever.

Full documents live in the source repositories, not on this site.

Source: acumen/docs/research/provider-capabilities.md (2026-10-20).

Verdict: acumen is a strong router and a thin capability gateway. The router is real: class-based Thompson sampling with a cost term, prefix stickiness, failover and a ledger. The provider surface is not. An OpenAI-shaped seat is a verbatim pipe, while an Anthropic-shaped seat is a lossy translator.

Three conclusions:

  1. The most valuable work is not a new model door. It is cost truth. Key USD caps settle from usage.cost.usd, and only some vendors report it. A missing cache-write price silently falls back to the input price. Both distort the thing the router is meant to optimise.
  2. The clearest new product is FIM (fill-in-the-middle), the IDE autocomplete market, which has no door here at all.
  3. Search is the best margin-per-line feature. The price floor is roughly an order of magnitude below the frontier vendors, and the seat that offers it is not yet declared search-capable in the catalog.

The largest risk is silent under-billing on cache-heavy traffic, not a missing feature.

Source: acumen/docs/market/consumer-analysis.md (2026-10-20).

Bottom line: the consumer plane was built and had never had a consumer. At that date there was one system account, zero invites and zero sessions, so every funnel number was a model, not a measurement.

  • The ledger’s promise was undermined by its own data: grants shown as active referenced keys that no longer existed.
  • Activation could not be attributed, because the first authenticated request wrote a usage row with no key id.
  • The two shipped agent snippets were unverified against the doors they target.
  • Do not price inference. The observed take rate clustered at 5%, and live cost per request was small because most seats were subscription or free. The defensible price is for the control plane.

Source: harness-rescue/research/consumer-ux-audit-2026-10-20.md.

Verdict: the visual layer is good. Type, spacing, colour, 44 px targets, no external assets and an intact CSP. The friction is in what the screens do when something goes wrong, and in four places the surface stated something untrue.

The three headline failures:

  1. One-time reveals were not one-time-safe. Four handlers rendered their result directly, so a refresh or double-click could mint a second key, a second invite or a second recovery code, or consume the invite that was about to show the only copy.
  2. The two screens a person reaches when already in trouble, the failure page and the lost-code path, were the weakest in the surface.
  3. The page meant to help spot a stolen credential showed the wrong data: “last seen” never advanced past session creation, and every session read “this browser”.

The audit ranked 26 fixes, each sized S (under an hour), M (about half a day) or L (over a day). The top four: make every reveal a nonce-gated redirect, confirm the four destructive actions, fix the freeze copy, and stop offering the admin scope to non-operator accounts.

Source: harness-rescue/research/tenant-security-2026-10-20.md.

Decisions that survived scrutiny:

# Decision
D1 Tenant identity comes from the credential, never from the request
D2 Keep vk_ keys, not JWTs: the per-request lookup is what makes revocation immediate
D3 Budgets must be durable and fail closed; in-memory spend is telemetry
D4 Rotation needs a grace window and must not churn grant ids
D5 admin cannot remain one assignable scope on a consumer key form
D6 The exact cache is a tenant boundary; at that date it was global

Source: harness-rescue/research/observability-2026-10-20.md, plus the Sentry runbook.

# Decision Confidence
D1 Keep local Sentry for error tracking High
D2 Do not switch to the feature-complete profile on this host High
D3 Adopt Cloudflare native Workers Issues and Logs as the edge-local first line, and keep Sentry for correlation Medium-high
D4 Do not adopt Highlight; treat it as frozen code High
D5 GlitchTip is the named fallback, not a migration Medium
D6 Fix three operational gaps first: offsite backup with a tested restore, alerting on the monitor itself, and env drift on upgrade High

Source: harness-rescue/research/search-market-2026-10-20.md.

  • The incumbent free option for programmatic web search is closed to new customers and discontinued in 2027.
  • The price floor is roughly $0.75 per 1,000 successful requests, with query operators and inline content.
  • Two benchmarks measure two different jobs, coding-agent retrieval and general agentic search. Quoting one as the other is a known error.
  • The local free lane was broken, silently. SearXNG returned HTTP 200 with an empty results array and a list of unresponsive engines. A zero-result 200 does not look like a failure to a naive circuit breaker.

Source: harness-rescue/research/reseller-billing-2026-10-20.md.

Three separate planes, deliberately not merged: wholesale invoicing at launch, retail with tax and payouts later, and credits or API resale last. Entitlements belong to the product database; Stripe owns money movement.

Source: harness-rescue/research/customer-research-2026-10-20.md.

The market consolidated during the research window. The largest router was acquired, one observability vendor is in ownership limbo with no changelog entry in nearly a year, and another is mid-rewrite and says so in public.

The unmet need that recurs is budget enforcement: hard, provable spend caps. It is failing in the open, in issue trackers and in user complaints. The second is log retention, which is where free tiers actually end. Silent failure mid-stream is a recurring, specific grievance: a gateway closing its own response as if everything were fine.

The counter-case belongs in the same document. People pay a markup for operational relief: not keeping billing details in dozens of providers, not leaving prepaid balances stranded. They do not pay it for tokens.

Two facts worth repeating whenever a capability claim is made:

  • An Anthropic-shaped seat returns OpenAI-shaped responses through the messages door. An SDK that expects Anthropic content blocks will not work.
  • A Responses-door request with no eligible responses seat is a 503, not a chat fallback. Capability is per door, not per gateway.
  • Raw provider responses, customer data, DSNs, keys and event payloads. None of that belongs in a documentation repository.
  • Market claims without a date and a label. If a number cannot be dated, it does not go on a page.