Skip to content

Implement the 2026-10-auth-1 in-repo slice (issue #35) - #39

Merged
turinglambdaai merged 3 commits into
mainfrom
commercial-canary
Oct 23, 2026
Merged

turinglambdaai merged 3 commits into
mainfrom
commercial-canary

Conversation

@turinglambdaai

Copy link
Copy Markdown
Owner

Closes the in-repo slice of #35 (claimed there with starting SHA; actual base f0d825c).

What lands

Free scope (the mandated gate removal)

  • pcap-export and Wireshark retained replay no longer require an entitlement — raw-data access is free, verified over the real RVT1 wire with no credential in the test home.
  • report-export becomes the gated paid evidence surface (report action): PRICING's paid scope lists evidence-backed reports, the old UI copy already claimed Pro, but no gate existed. Refusal is need-pro with zero work done (asserted: no file written).

Update eligibility by release time (the boundary fix)

  • Eligibility = the candidate's authenticated published_at (the signed feed has carried it all along) vs the entitlement's updates_through. The current date is no longer an input — previously, the day after expiry even the last in-window release became undownloadable.
  • Fixed UTC boundary tests: cutoff−1s ✓, exactly at cutoff ✓, cutoff+1s ✗; date-only cutoffs extend to that day's end; missing instant fails closed; an install whose window is entirely past still upgrades to Pro and keeps every right (staging gates, never use).

Docs

  • update-contract.md: release-instant semantics + AppImage correction (distribution format, not update shape). Landing page: AppImage install card matching the shipped assets. PRICING (en/zh): the free-scope implementation-status caveat is now a statement of fact.

0.4.0: version single source aligned, CHANGELOG entry.

Validation

…ted report, release-instant eligibility)

Raw capture export (pcap-export, Wireshark retained replay) leaves the
legacy Pro gate — the free scope's raw-data access, asserted over the
wire with no entitlement. The engineering report becomes the gated paid
evidence surface (the old UI copy claimed Pro, but no gate existed);
gate-check's export action becomes report.

Update eligibility moves to the authorization decision's rule: the
candidate release's authenticated published_at against the entitlement's
updates_through, never the current date. A release inside the window
stays stageable forever, an expired window never invalidates the
installed tier, a date-only cutoff extends to that day's end, and a
candidate without a readable instant fails closed. Fixed UTC boundary
tests cover cutoff-1s / at-cutoff / cutoff+1s and the past-window
install keeps its tier and rights.
…with the decision

The update contract documents the release-instant eligibility and
corrects the AppImage note (a distribution format, not an update
shape); the landing page gains the AppImage install card its release
assets already ship; PRICING's free-scope paragraph now states the
0.4.0 implementation status instead of the pending-move caveat.
@turinglambdaai
turinglambdaai merged commit 4516599 into main Oct 23, 2026
2 checks passed
@turinglambdaai
turinglambdaai deleted the commercial-canary branch October 23, 2026 04:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant