Skip to content

feat(apple): reconcile tier-2 SwiftUI contract - #48

Open
altaywtf wants to merge 2 commits into
mainfrom
apple-contract/tier2-rulings
Open

feat(apple): reconcile tier-2 SwiftUI contract#48
altaywtf wants to merge 2 commits into
mainfrom
apple-contract/tier2-rulings

Conversation

@altaywtf

@altaywtf altaywtf commented Aug 29, 2026

Copy link
Copy Markdown
Member

Summary

Closes #44.

Versions the Apple Tier-2 contract at 0.2.0 and reconciles it with stock SwiftUI behavior measured during the putio-ios 3.0.0 conformance round.

The token graph and package manifest remain unchanged.

Changed

  1. Bless the stock Gauge(.accessoryCircularCapacity) geometry and system-derived track.
  2. Bind Idle, Queued, Downloading, Downloaded, and Failed.
  3. Remove app-owned track tokens from stock ProgressView and Gauge.
  4. Use one app tint for system-owned accents while preserving authored text roles.
  5. Keep glass on floating layers and bordered actions on content.
  6. Keep app-authored content in GT America and system chrome in SF.
  7. Specify the 24pt intrinsic Phosphor tab-glyph box.
  8. Make NavigationLink the sole owner of folder disclosure accessories.
  9. Add structural regression checks for the Apple contract.

Verification

  • pnpm verify
  • pnpm verify:full for token, guide, package, or deploy-affecting changes
    • 373/373 Playwright checks passed.
    • The 30-file package dry run passed at unchanged version 3.1.0.
    • The 532-token graph and generated artifacts remain unchanged.
  • Codex gpt-5.6-sol, high-reasoning Slopguard review: clean with 0 findings.

Review Notes

  • Screenshots or recordings for visual guide changes:

    Gauge and five states

    Apple stock Gauge and five download states

    iOS and iPadOS shell

    iOS and iPadOS native shell

    Files, disclosure, actions, and empty state

    iOS files surfaces

    watchOS and tvOS typography evidence

    watchOS shell

    tvOS shell

  • Package, deploy, or release impact: Conventional feat requests a semantic-release minor. No token payload or dependency delta. Do not hand-edit package.json.

  • Follow-up work: adopt the first published release containing these rulings in putio-ios #176. The two later tvOS conflicts remain separate rulings and are not changed here.

Copilot AI lite review requested due to automatic review settings August 29, 2026 21:40
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 29, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-29T22:33:42.826017Z 0198afa New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new verification adds brittle hard-coded contract metadata checks and the updated “system-owned” navigation chrome guidance is contradicted by remaining Phosphor back chevrons in the iOS preview cards.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Reconciles the Tier‑2 (tokens-only) Apple SwiftUI contract with the system preview cards by clarifying what remains system-owned (SF typography, control tracks, NavigationLink disclosures, etc.) vs what put.io supplies (tint, surfaces, app content typography, icons), and adds a verifier to keep the contract + previews in sync.

Changes:

  • Updates Apple platform contract wording (version bump to 0.2.0) to distinguish system-rendered chrome vs app-authored content and to refine control guidance (ProgressView/Gauge tracks, glass usage, NavigationLink disclosure, etc.).
  • Adjusts iOS/watchOS/tvOS preview cards + shared _apple.css to reflect those contract clarifications (system typography, system-chevron disclosures, progress/gauge preview helpers, action styling).
  • Extends pnpm verify design-system checks with checkAppleContract() to assert key invariants across the Apple contract and preview artifacts.
File summaries
File Description
system/preview/watchos-s00-shell.html Tightens Tier‑2 watchOS copy around system-owned rendering and app-provided tint/content.
system/preview/tvos-s00-shell.html Clarifies SF vs GT America usage on tvOS (system tab labels vs app content).
system/preview/ios-s02-transfers.html Updates transfers screen guidance to system-owned tracks + gauge sizing and preview helpers.
system/preview/ios-s01-files.html Switches folder disclosure to a system-chevron stand-in; updates empty-state action styling.
system/preview/ios-s00-shell.html Refines Tier‑2 iOS shell copy and spec language for system vs app typography.
system/preview/ios-e16-gauge.html Reworks Gauge element card to encode the five download states and new gauge track guidance.
system/preview/ios-e15-emptystate.html Updates empty-state action to a bordered-style stand-in and adjusts token callouts.
system/preview/ios-e12-sheet.html Updates sheet card token list and clarifies selection/checkmark tint behavior.
system/preview/ios-e11-navbar.html Updates navbar card copy/specs to reflect system-rendered SF titles/back labels and tint.
system/preview/ios-e10-tabbar.html Updates tab bar card copy/specs to reflect SF labels + glyph sizing guidance.
system/preview/ios-e09-progress.html Updates ProgressView card to treat the track as system-owned and tint as fill-only.
system/preview/ios-e05-glass-button.html Clarifies glass-vs-content button style boundaries and prominent glass constraints.
system/preview/ios-e03-segmented.html Adjusts segmented control spec text around label typography ownership.
system/preview/ios-e00-list-row.html Updates list-row card to reflect List+NavigationLink disclosure ownership and “don’t” guidance.
system/preview/_apple.css Introduces system-typography styling for system chrome + adds browser-only progress/gauge preview helpers.
scripts/verify-design-system.ts Adds checkAppleContract() to verify the Apple contract + previews stay consistent.
platforms/apple/DESIGN.md Bumps contract to v0.2.0; expands Tier‑2 guidance around typography ownership, control tracks, and glass constraints.
Review details

Suppressed comments (1)

system/preview/ios-s01-files.html:108

  • This screen still uses a Phosphor caret-left for the back chevron, but the updated Apple tier-2 contract states navigation chrome (including back chevrons/labels) is system-rendered SF. Using a system glyph stand-in here would keep the preview consistent with the contract.
            <div class="cuv-a ios-bordered-action">Search All Files</div>
  • Files reviewed: 17/17 changed files
  • Comments generated: 4
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread scripts/verify-design-system.ts Outdated
Comment thread system/preview/ios-e11-navbar.html Outdated
Comment thread system/preview/ios-s02-transfers.html
Comment thread system/preview/ios-s01-files.html

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cffc5987d3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread system/preview/_apple.css
Comment thread platforms/apple/DESIGN.md
Comment thread scripts/verify-design-system.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0198afab1c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

<div class="el-states rows">
<div class="el-state"><div class="demo"><div style="position:relative;width:393px;height:96px;background:var(--app-bg);border-radius:12px;overflow:hidden">
<div class="ios-tabfloat" style="bottom:16px"><div class="glass ios-tabbar"><div class="tab on"><i class="ph-fill ph-folder"></i><span>Files</span></div><div class="tab"><i class="ph ph-arrow-circle-down"></i><span>Transfers</span></div><div class="tab"><i class="ph ph-clock-counter-clockwise"></i><span>Activity</span></div><div class="tab"><i class="ph ph-user-circle"></i><span>Account</span></div></div><div class="glass ios-searchcap"><i class="ph-bold ph-magnifying-glass"></i></div></div>
<div class="ios-tabfloat" style="bottom:16px"><div class="glass ios-tabbar"><div class="tab on"><i class="ph-fill ph-folder"></i><span>Files</span></div><div class="tab"><i class="ph ph-arrow-circle-down"></i><span>Transfers</span></div><div class="tab"><i class="ph ph-clock-counter-clockwise"></i><span>Activity</span></div><div class="tab"><i class="ph ph-user-circle"></i><span>Account</span></div></div><div class="glass ios-searchcap"><span class="system-glyph system-search" aria-hidden="true">&#x1F50D;&#xFE0E;</span></div></div>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Replace text glyph stand-ins with deterministic icons

In the web-rendered Apple guide, the fresh follow-up replaces the Phosphor search icon with the raw U+1F50D emoji code point (and similarly uses font characters for back, clear, check, and disclosure controls). On Windows and Linux, the -apple-system stack falls through to platform-dependent fonts, so these 1:1 reference cards can display different glyph geometry or emoji rendering instead of Apple-like system chrome. Use deterministic inline SVG stand-ins while retaining the system-* ownership markers.

AGENTS.md reference: AGENTS.md:L46-L46

Useful? React with 👍 / 👎.

for (const [index, screen] of screens.entries()) {
const start = screen.index ?? 0;
const end = screens[index + 1]?.index ?? source.length;
const prominentCount = (source.slice(start, end).match(/class="(?:gbtn|gcap) prominent"/g) ?? []).length;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Parse class lists when enforcing the prominence limit

When a screen adds another class or merely reorders its classes, this regression check stops counting an otherwise valid prominent control because it only recognizes the exact substring class="gbtn prominent" or class="gcap prominent". For example, two controls written as class="glass gbtn prominent" pass verification even though both still match .gbtn.prominent and violate the new one-per-screen contract; parse each opening tag's class list, as the helpers below already do, before counting.

Useful? React with 👍 / 👎.

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.

Apple tier-2 contract: rulings and card fixes from the putio-ios 3.0.0 conformance round

2 participants