Skip to content

feat: 1.0.1 — panel on all repos, Testkube Bot links, last run time and run history - #14

Merged
olensmar merged 10 commits into
mainfrom
feat/1.0.1-defaults-and-bot-link
Sep 29, 2026
Merged

olensmar merged 10 commits into
mainfrom
feat/1.0.1-defaults-and-bot-link

Conversation

@olensmar

@olensmar olensmar commented Sep 28, 2026 •

Copy link
Copy Markdown
Member

Summary

Version 1.0.1.

Panel visible on every repository by default

  • Active on repositories now defaults to */*, so right after installation the panel shows on every repository: results where there are any, and setup / install prompts elsewhere.
  • Users can narrow the list (e.g. my-org/*) or clear it to only show the panel where there are results. The options hint, README and DEVELOPMENT describe the new default.
  • Settings are stored in chrome.storage.sync, and defaults only apply to keys that were never saved: users who saved settings in 1.0.0 keep their stored (empty) list.

Testkube Bot link in the default content

  • No API token: the notice on repository pages now includes Install Testkube Bot → linking to https://github.com/marketplace/testkube-bot (omitted when the GitHub App integration is switched off). Pull request pages show no panel until a token is set.

  • No results / not connected (repo sidebar empty state, the not-connected section under results, and the PR panel):

    • Install Testkube Bot → (Marketplace) when no GitHub App installation covers the repo;
    • Connect Testkube Bot → (dashboard onboarding with the repo preselected) when the app is installed but the repo isn't connected yet.

    The worker reports this as appInstallation: installed, not-installed, or unknown when it could not be checked (then no bot link is shown). The two actions never appear together. This replaces the earlier fallback that linked not-installed repos to the onboarding flow without a repository. No bot link is shown when the GitHub App integration is switched off in the options or disabled on the Control Plane.

Direct installation link

  • Install Testkube Bot targets https://github.com/apps/<slug>/installations/new?suggested_target_id=<owner id>&repository_ids[]=<repo id>, with the ids read from GitHub's repository page meta tags, so the installation opens with the owner and repository preselected (src/lib/bot.ts).
  • The app slug is testkube-bot (TESTKUBE_BOT_APP_SLUG). The bot is awaiting approval, so the link resolves once the app is public.

Run times and run history

  • Each summary row shows the time of its most recent run, right-aligned (e.g. "Sep 26 2026, 1:10 PM", in the viewer's time zone).
  • The status popovers list the most recently run workflow first (never-run workflows last).
  • Each workflow in the status popovers shows how long ago it last ran ("10 minutes ago") instead of the status word; the exact time and status are on hover.
  • Below its paths, each workflow has a strip of its last 10 executions, oldest to newest, in the status icon colors: green passed, red failed, orange aborted, yellow running, grey otherwise. Each bar shows its status and time on hover; clicking the strip opens the workflow's executions list in the dashboard.
  • No extra requests: the per-workflow executions call the extension already makes now asks for 10 results (pageSize=10) instead of using only the first.

Panel title

  • The repo sidebar section and the PR panel are titled Testkube until an API token is configured, and Testkube Results afterwards (previously "Test Results" and "Testkube"). The loading placeholder uses the right title up front, and PR pages no longer flash a loading placeholder without a token.

Note: with */*, pull request pages on repos that are not connected also show the Testkube panel with the not-connected message and the bot link (the PR panel follows the same allowlist).

Test plan

  • npm run typecheck, npm run lint, npm run format:check, npm run build (built version 1.0.1)
  • Fresh install (or cleared settings), no token: panel on any repo says to set the token and shows Install Testkube Bot
  • With a token, repo without workflows and without the app: Install Testkube Bot + Open Testkube
  • Repo covered by an installation but not connected: Connect Testkube Bot instead of Install
  • Clearing Active on repositories hides the panel on repos without results, immediately in open tabs

🤖 Generated with Claude Code

… Bot (1.0.1)

- "Active on repositories" defaults to */*, so after installation the panel
  appears on every repository (with setup and install prompts where there
  are no results). Settings saved with 1.0.0 keep their stored value.
- The not-configured notice and the no-results empty states link to the
  Testkube Bot on the GitHub Marketplace. When a GitHub App installation
  already covers the repo, the panels offer "Connect Testkube Bot"
  (dashboard onboarding) instead, so the two actions never appear together.
  This replaces the earlier fallback that sent not-installed repos to the
  onboarding flow without a repository.
- Version 1.0.1; options hint, README and DEVELOPMENT updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[Medium risk] Adds run history display and bot install links to the extension UI.

The PR appears safe to merge based on the reviewed changes.

Summary

The PR makes the repository panel visible by default, adds installation and connection links, and shows recent execution times and history. The follow-up changes address the previously reviewed panel-visibility and installation-state concerns. No new actionable issue was established.

Reviews (2) · Last reviewed commit: "feat: List the most recently run workflo..."

Comment thread src/lib/storage.ts
Comment thread src/lib/storage.ts
Comment thread src/background/service-worker.ts Outdated
Comment thread src/content/widget.ts Outdated
olensmar and others added 6 commits September 28, 2026 15:15
- Changing "Active on repositories" now re-queries open tabs like the other
  settings, so clearing a pattern hides a panel that is already shown.
- Pull request pages show the setup notice (with the install link) when no
  API token is configured, instead of dropping the panel.
- Installation state is tri-state: a failed or impossible lookup is
  "unknown" and shows no bot link, instead of suggesting to install an app
  the repo may already have.
- The no-token notice skips the install link when the GitHub App
  integration is switched off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The setup notice stays on repository pages; pull request pages show
nothing until a token is set.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… with one

- Repo sidebar and PR panel titles follow the token: "Testkube" until an API
  token is configured, "Testkube Results" afterwards. The content script
  tracks the token so the loading placeholder already has the right title.
- No PR loading placeholder without a token, since the PR panel stays
  hidden then (it used to flash briefly).
- Docs refer to the "Testkube Results" section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The link now targets
github.com/apps/<slug>/installations/new?suggested_target_id=<owner id>&repository_ids[]=<repo id>,
with the owner and repository ids read from GitHub's repository page meta
tags (only when they describe the current repo). No signed state is needed:
the control plane handles a state-less install like a Marketplace one.

The production app slug is not set yet, so the link keeps falling back to
the Marketplace listing until TESTKUBE_BOT_APP_SLUG in src/lib/bot.ts is
filled in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The installation link now targets github.com/apps/testkube-bot directly.
The app is awaiting approval, so the link resolves once it is public.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The summary shows "Last run <time> ago" for the most recent execution
  across the listed workflows, with the exact time on hover.
- Each workflow in the status popovers gets a strip of its last 10
  executions (green passed, red failed/timed out/aborted, grey otherwise),
  oldest to newest; clicking it opens the workflow's executions list.
- Both come from the executions request the extension already makes per
  workflow, now asked for 10 results.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@olensmar olensmar changed the title feat: Show the panel on all repos by default and link to the Testkube Bot (1.0.1) feat: 1.0.1 — panel on all repos, Testkube Bot links, last run time and run history Sep 29, 2026
olensmar and others added 3 commits September 29, 2026 17:44
- Each summary row shows the time of its most recent run, right-aligned
  ("Sep 26 2026, 1:10 PM"), replacing the single "Last run" line.
- Popover rows show how long ago each workflow last ran ("10 minutes ago")
  instead of the status word; the exact time and status are on hover.
- The history strip sits below the paths, with wider bars in the status
  icon colors (orange for aborted, yellow for running).
- Relative times round their magnitude, so 90 minutes reads "2 hours ago".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The disc used a radius of 7 in the 16px viewBox, while GitHub's check and
x circles use 8, so it rendered noticeably smaller next to them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Workflows without a run go last; ties are ordered by name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@olensmar

Copy link
Copy Markdown
Member Author

@greptile

@olensmar
olensmar merged commit 49fc840 into main Sep 29, 2026
1 check passed
@olensmar
olensmar deleted the feat/1.0.1-defaults-and-bot-link branch September 29, 2026 16:03
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