Skip to content

feat: add Settings page, E2E catalog import tests, promote 1.0.0#28

Merged
aecyx merged 8 commits intomainfrom
copilot/develop-handoff-docs
Apr 20, 2026
Merged

feat: add Settings page, E2E catalog import tests, promote 1.0.0#28
aecyx merged 8 commits intomainfrom
copilot/develop-handoff-docs

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 20, 2026

Summary

Implements the three handoff tasks from docs/handoff/ (gitignored, reconstructed from closed PRs #25/#26/#27):

Settings page — The CHANGELOG claims a Settings page ships in 1.0.0-rc.1, but the frontend never had one. Backend commands (settings_get_ptcgapi_key, settings_set_ptcgapi_key) exist with no UI to call them.

  • src/lib/tauri.tsapi.settings.{getPtcgApiKey, setPtcgApiKey} typed wrappers
  • src/features/settings/SettingsPage.tsx — Data directory display + Pokémon TCG API key form (save/clear, keyring-degraded warning)
  • src/components/TopNav.tsx"settings" added to Route union and nav tabs
  • src/App.tsxSettingsPage wired into the route switch

E2E catalog import tests — The catalog import is the largest feature in 1.0.0 with zero E2E coverage.

  • e2e/catalog-import.spec.ts — start → progress → cancel → buttons re-enabled; restart after cancel; keyring-degraded banner smoke check
  • e2e/tauri.spec.ts — nav test updated from four tabs to five

1.0.0 release promotion — Certify-and-ship for stable release.

  • Version bump 1.0.0-rc.11.0.0 across package.json, Cargo.toml, tauri.conf.json, lock files
  • CHANGELOG.md promoted with new [1.0.0] section
  • docs/release/cosign-verification.md — full verification procedure
  • docs/release/1.0.0-runbook.md — tag-and-ship checklist
  • README.md — status → "Stable release", added cosign verification link

Type of change

  • Bug fix
  • New feature
  • Refactor / chore / tooling
  • Documentation
  • Build / CI

How was this tested?

npm run typecheck   # clean
npm run lint        # clean (zero warnings)
npm run format:check # clean
npm run build       # 32 modules, clean

CodeQL security scan: 0 alerts.

Screenshots / recordings

Checklist

  • I have read CONTRIBUTING.md.
  • The code follows the project's style (prettier + eslint for TS, rustfmt + clippy for Rust).
  • I added or updated tests where it made sense.
  • I updated documentation (README.md, docs/, code comments) where it made sense.
  • I did not introduce cloud-service dependencies or phone-home telemetry.
  • I did not include secrets, tokens, or personal data in commits.
  • The change preserves accessibility (keyboard navigable, labels on form controls, adequate contrast).
Original prompt

You need to read the contents inside of Binderbase/docs/handoff. you'll find there's 3 .md files there. this folder is gitignored. After reading the 3 files, start the development work from the content inside the files, then create your PR(s), and I'll review your PR(s).

Created from VS Code.

Copilot AI requested review from Copilot and removed request for Copilot April 20, 2026 02:42
Copilot AI requested review from Copilot and removed request for Copilot April 20, 2026 02:47
…1.0.0

- Add settings API wrappers to src/lib/tauri.ts
- Create src/features/settings/SettingsPage.tsx with PTCG API key management
- Add "settings" route to TopNav and wire into App.tsx
- Add e2e/catalog-import.spec.ts with start/progress/cancel/restart tests
- Update e2e/tauri.spec.ts for five-tab navigation
- Bump version 1.0.0-rc.1 → 1.0.0 in package.json, Cargo.toml, tauri.conf.json
- Promote CHANGELOG with 1.0.0 section
- Add docs/release/cosign-verification.md and 1.0.0-runbook.md
- Update README status to "Stable release"

Agent-Logs-Url: https://github.com/aecyx/Binderbase/sessions/bc495f7b-a19f-459e-a927-7dd95c601944

Co-authored-by: aecyx <68361343+aecyx@users.noreply.github.com>
Copilot AI requested review from Copilot and removed request for Copilot April 20, 2026 02:52
Copilot AI requested review from Copilot and removed request for Copilot April 20, 2026 02:53
Copilot AI changed the title [WIP] Start development work based on handoff documentation feat: add Settings page, E2E catalog import tests, promote 1.0.0 Apr 20, 2026
Copilot AI requested a review from aecyx April 20, 2026 02:55
@aecyx aecyx marked this pull request as ready for review April 20, 2026 02:59
Copilot AI review requested due to automatic review settings April 20, 2026 02:59
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR completes the 1.0.0 handoff work by adding a missing Settings UI for existing backend settings commands, introducing Playwright E2E coverage for the catalog import flow, and promoting the release from 1.0.0-rc.1 to 1.0.0 with supporting docs.

Changes:

  • Add a new Settings route/page (PTCG API key management + data directory display) and corresponding typed Tauri API wrappers.
  • Add Playwright E2E specs for catalog import (start/progress/cancel/restart) and update nav coverage for the new tab.
  • Promote versions and release documentation for the 1.0.0 stable release (README/CHANGELOG/runbooks/cosign procedure + version bumps).

Reviewed changes

Copilot reviewed 13 out of 15 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/lib/tauri.ts Adds typed api.settings wrappers for get/set PTCG API key.
src/features/settings/SettingsPage.tsx Implements Settings UI for data directory + API key management and keyring-degraded warning.
src/components/TopNav.tsx Adds settings route and tab to primary navigation.
src/App.tsx Wires Settings page into route switch.
e2e/catalog-import.spec.ts Adds CDP-based E2E coverage for catalog import start/progress/cancel/restart and keyring-degraded notice surface.
e2e/tauri.spec.ts Updates nav-tab expectation to include Settings.
package.json Promotes app version to 1.0.0.
package-lock.json Updates lockfile root package version to 1.0.0.
src-tauri/Cargo.toml Promotes Rust crate version to 1.0.0.
src-tauri/Cargo.lock Updates lockfile entry for binderbase to 1.0.0.
src-tauri/tauri.conf.json Promotes Tauri app version to 1.0.0.
CHANGELOG.md Adds [1.0.0] section and updates compare links.
README.md Updates status to “Stable release” and links cosign verification doc.
docs/release/cosign-verification.md Documents end-to-end cosign verification procedure for release artifacts.
docs/release/1.0.0-runbook.md Adds a tag-and-ship runbook for releasing v1.0.0.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/features/settings/SettingsPage.tsx Outdated
Comment thread e2e/catalog-import.spec.ts Outdated
Comment thread e2e/catalog-import.spec.ts Outdated
Comment thread e2e/catalog-import.spec.ts
Comment thread e2e/catalog-import.spec.ts Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 20, 2026 03:08
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
aecyx and others added 2 commits April 19, 2026 23:09
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@aecyx aecyx merged commit 7cc9c47 into main Apr 20, 2026
13 checks passed
@aecyx aecyx deleted the copilot/develop-handoff-docs branch April 20, 2026 03:13
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds the missing frontend Settings page and E2E coverage for the catalog import flow, and promotes the release metadata/docs from 1.0.0-rc.1 to 1.0.0 across the app.

Changes:

  • Add a Settings route/page to manage the Pokémon TCG API key and display the data directory.
  • Add Playwright E2E coverage for the catalog import cancel/restart flow and update nav expectations.
  • Promote release to 1.0.0 (version bumps) and add/refresh release documentation (cosign verification + runbook) plus README/CHANGELOG updates.

Reviewed changes

Copilot reviewed 13 out of 15 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
src/lib/tauri.ts Adds typed Tauri settings_get/set_ptcgapi_key invoke wrappers.
src/features/settings/SettingsPage.tsx New Settings UI for API key management + data directory display.
src/components/TopNav.tsx Adds settings to the Route union and navigation tabs.
src/App.tsx Wires the Settings page into the route switch.
src-tauri/tauri.conf.json Bumps Tauri app version to 1.0.0.
src-tauri/Cargo.toml Bumps Rust crate version to 1.0.0.
src-tauri/Cargo.lock Updates locked crate version metadata to 1.0.0.
package.json Bumps frontend package version to 1.0.0.
package-lock.json Updates lockfile version metadata to 1.0.0.
e2e/tauri.spec.ts Updates nav test to expect the Settings tab.
e2e/catalog-import.spec.ts New E2E spec covering catalog import start/progress/cancel/restart + banner smoke check.
docs/release/cosign-verification.md Adds a full cosign verification procedure document.
docs/release/1.0.0-runbook.md Adds a release runbook/checklist for tagging and publishing v1.0.0.
README.md Updates status to “Stable release” and links to the cosign verification doc.
CHANGELOG.md Adds a [1.0.0] section and updates compare links for the stable release.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +110 to +123
- The `--certificate-identity-regexp` pattern used across all documentation is:

```
^https://github\.com/aecyx/Binderbase/\.github/workflows/release\.yml@refs/tags/.*$
```

This matches the OIDC subject assigned by GitHub Actions to the release
workflow when triggered by a tag push. If the workflow file is renamed or
moved, this regex must be updated in:
- `.github/release-template.md`
- `README.md` (Verifying with cosign section)
- `docs/releases/v1.0.0-rc.1.md`
- This file

- `CI / Security audit`
- `CodeQL / Analyze`
- `cargo-deny / cargo-deny`
- `OSV-Scanner / OSV vulnerability scan`
Comment on lines +71 to +74
<div className="form-row">
<span>Location</span>
<code>{appInfo?.db_path ?? "…"}</code>
</div>
test.beforeAll(async () => {
const browser = await chromium.connectOverCDP("http://127.0.0.1:9223");
page = browser.contexts()[0].pages()[0];

Comment thread e2e/tauri.spec.ts
await expect(nav.getByRole("button", { name: "Collection" })).toBeVisible();
await expect(nav.getByRole("button", { name: "Prices" })).toBeVisible();
await expect(nav.getByRole("button", { name: "Import / Export" })).toBeVisible();
await expect(nav.getByRole("button", { name: "Settings" })).toBeVisible();
Comment on lines +11 to +16
- **cosign version:** v2.4+ (any v2/v3 compatible release)

## Pre-requisites

Install [cosign](https://docs.sigstore.dev/cosign/system_config/installation/)
v2+ and ensure `sha256sum` (Linux) or `shasum` (macOS) is available.
Comment on lines +91 to +97
```bash
cosign verify-blob \
--bundle <file>.bundle \
--insecure-ignore-tlog \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-identity-regexp ".*" \
<file> 2>&1 | grep -i subject
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.

3 participants