Skip to content

test(dogfood): ADR-0061 search-conformance ledger + HTTP proof (flip to Accepted); ADR-0028 → Deferred - #3065

Merged
os-zhuang merged 3 commits into
mainfrom
claude/auth-model-design-eval-xxgzcl
Jul 16, 2026
Merged

test(dogfood): ADR-0061 search-conformance ledger + HTTP proof (flip to Accepted); ADR-0028 → Deferred#3065
os-zhuang merged 3 commits into
mainfrom
claude/auth-model-design-eval-xxgzcl

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Summary

Executes two items from the follow-up plan approved after the round-2 ADR audit:

1. ADR-0061 — close its own acceptance bar, flip to Accepted (Tier 1)

The ADR's §Conformance says $search is "landed iff a driver executes it AND a dogfood proof asserts a multi-field match over the real HTTP API", plus a search-conformance ledger entry. The executor shipped long ago; the verification artifacts never did. Added:

  • search-conformance.ledger.ts — ADR-0060 ConformanceRow ledger: 4 enforced rows ($search executor, object.searchableFields + auto-default, $searchFields narrowing, select label→value mapping), each naming its enforcement site and the shared proof. Tier 2 (FTS) deliberately absent — a surface that doesn't exist in the spec can't be "declared but unenforced" (ADR-0049).
  • search-conformance.test.tscheckLedger with proofRequiredForEnforced: true, so a renamed/deleted proof file fails CI (closing the declared-but-unenforced loop).
  • showcase-search.dogfood.test.ts — the HTTP proof over the booted showcase stack, using the ADR's verbatim example: searching "retail" returns Northwind (matched via industry, proven positively with searchFields:['industry']); the seed's literally-named acme retail account serves as the cross-field OR control; plus select label mapping ("Retail"), $searchFields narrowing (name-only excludes Northwind), and terms-AND semantics. 4 tests + 2 ledger tests, all green locally.
  • ADR-0061 status → Accepted (Tier 1) with the evidence line; Tier 2 stays deferred with instructions for its future ledger row.

2. ADR-0028 — Proposed → Deferred

The round-2 audit found the target naming model entirely unbuilt (a platform-wide migration), while the literal-prefix current-state contract is enforced and collision-proof. Leaving it Proposed implies planned work; it isn't. Now Deferred with an explicit re-open trigger (real multi-package ecosystem naming pain).

Test plan

  • pnpm vitest run search-conformance showcase-search in packages/dogfood — 6/6 green (boots the real showcase kernel, seeds, signs in, queries over the injected Hono HTTP surface via apiAs).

🤖 Generated with Claude Code


Generated by Claude Code

claude added 2 commits July 16, 2026 14:00
…DR-0061 search-conformance ledger + HTTP dogfood proof
- 0028: formally Deferred — literal-prefix model works, no present pain;
re-open trigger recorded (real multi-package naming pain).
- 0061: close its own acceptance bar — search-conformance ledger (ADR-0060
checkLedger, proof-required) + showcase-search dogfood proof over the real
HTTP API: multi-field 'retail'->industry match (Northwind), select label
mapping, $searchFields narrowing, terms-AND semantics.
… evidence; flip ADR-0061 to Accepted
- showcase-search proof: use signIn token + apiAs (stack.api is unauthed);
prove the industry hit positively via searchFields:['industry'] instead of
assuming no account name contains 'retail' (the seed has 'acme retail' —
now used as the cross-field OR control).
- ADR-0061 -> Accepted (Tier 1): its own conformance bar is now met (ledger +
HTTP dogfood proof, 6 tests green).
@vercel

vercelBot commented Jul 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
specCanceledCanceledJul 16, 2026 2:43pm

Request Review

@github-actionsgithub-actionsBot added size/m documentation Improvements or additions to documentation tests labels Jul 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/dogfood.

2 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/permissions/authorization.mdx(via packages/dogfood)
  • content/docs/permissions/delegated-administration.mdx(via packages/dogfood)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

Comment threadpackages/dogfood/test/search-conformance.test.ts Fixed
@os-zhuang
os-zhuang marked this pull request as ready for review July 16, 2026 14:56
@os-zhuang
os-zhuang merged commit a1f6816 into mainJul 16, 2026
17 checks passed
@os-zhuang
os-zhuang deleted the claude/auth-model-design-eval-xxgzcl branch July 16, 2026 14:56
os-zhuang pushed a commit that referenced this pull request Jul 16, 2026
…aned search-conformance files
- build-probes.test.ts publish suite: spy promoteDraftForPublish +
runPublishSideEffects (the batch no longer calls publishMetaItem per
item, ADR-0067 D2). objectql suite back to 904/904.
- The #3037 packages/dogfood -> packages/qa/dogfood restructure merged
concurrently with #3065 and did not carry its three just-added files;
they were orphaned at the old path outside every workspace (silently
not running in CI). git mv them to packages/qa/dogfood/test — all 5
dogfood suites green at the new home (21 tests).
os-zhuang added a commit that referenced this pull request Jul 16, 2026
…mit cannot half-land (ADR-0067 D2, #3066) (#3074)
* feat(metadata-protocol/objectql): turn-atomic package publish (ADR-0067 D2, #3066)
Phase 1: every draft promotion + the sys_metadata_commit record run inside
ONE engine.transaction() — a mid-batch failure rolls back everything
(publishedCount 0; causal item carries its real error, the rest report
batch_aborted). publishMetaItem is split into promoteDraftForPublish
(guards + promote, metadata-only) and runPublishSideEffects so the batch
can transact promotions while deferring side effects.
Phase 2 (post-commit): registry refresh, DDL, seed batch apply,
materializers, ADR-0094 projections, events — best-effort, surfaced via
materializeApplied.failures instead of faking an unpublish (metadata is
live; boot reconciliation heals side-effect drift).
objectql: engine.transaction() now JOINS an already-open ambient
transaction instead of opening a nested driver transaction — a nested
begin deadlocks single-connection pools (SQLite knex) and escapes the
outer rollback. Locked by two new engine-ambient-transaction tests.
BREAKING (behavioral): consumers relying on partial batch publishes now
get all-or-nothing. Engines without transaction() keep the previous
sequential behavior (same fallback stance as the repo's withTxn).
Tests: publish contract suite rewritten to the two-phase seams (+4 new
cases incl. rollback/commit tracking and side-effect-failure surfacing);
commit-history suite updated; 29 green across the three suites.
* fix(tests): migrate build-probes spy to the phase-1 seam; rescue orphaned search-conformance files
- build-probes.test.ts publish suite: spy promoteDraftForPublish +
runPublishSideEffects (the batch no longer calls publishMetaItem per
item, ADR-0067 D2). objectql suite back to 904/904.
- The #3037 packages/dogfood -> packages/qa/dogfood restructure merged
concurrently with #3065 and did not carry its three just-added files;
they were orphaned at the old path outside every workspace (silently
not running in CI). git mv them to packages/qa/dogfood/test — all 5
dogfood suites green at the new home (21 tests).
* docs(adr-0067): flip to Accepted — Decision-2 turn-atomicity lands with this PR (#3066)
---------
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/mtests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@os-zhuang@github-advanced-security@claude