Skip to content

Test 2 #41

Open
Promansis wants to merge 22 commits into
refactorfrom
main
Open

Test 2 #41
Promansis wants to merge 22 commits into
refactorfrom
main

Conversation

@Promansis

Copy link
Copy Markdown
Owner

Linked issue

Closes #

Why this change

What changed

Validation

  • pnpm check passes locally
  • Container (Docker / Podman) built and ran without issue
  • Ran the app, clicked through the changes manually
  • Checked edge cases (light + dark mode, mobile viewport, empty states, error paths)
  • Above manual verification completed (describe below)
  • Read and followed CONTRIBUTING.md

Manual verification notes

Docs and release impact

  • No docs changes needed
  • Updated docs (README / CONTRIBUTING / android/README / CHANGELOG) as needed
  • Version/release files updated (only if this PR includes a version bump)

UI evidence (if applicable)

cha1latte and others added 16 commits May 25, 2026 15:48
…ling-connections

Fix dangling connection deletes
…129-dangling-connections"

This reverts commit 8b6c246, reversing
changes made to 3663484.
…e-1129

Revert staging backport of issue 1129
…play-avatar-height

Fix roleplay panel avatars clipping on short messages
…272-roleplay-avatar-height"

This reverts commit 9bde102, reversing
changes made to c00743a.
…rom-staging

Revert issue 1272 from staging
…alpha-workflow

Register pre-alpha build workflow on default branch
@github-actions github-actions Bot added the ci label Jun 2, 2026
@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown

✅ Bunny Review Completed

Tip

Review posted. The specimen has left the observation table.

  • Commit: 65a0395 - Merge branch 'staging' into main

@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown

🐰 Bunny Review

Bunny Merge Signal: Review Incomplete

Caution

REVIEW INCOMPLETE
Bunny Review did not complete, so no model findings are available.

Findings Nitpicks Controls Reviewed Head Mode
0 0 1 fail, 1 warn 65a0395e full

Note

Mode: full
Head: 65a0395 - Merge branch 'staging' into main
Base: origin/refactor - Fix Bunny command repo lookup

🧭 Specimen Summary

  • Bunny Review could not complete because the model provider rejected the review request: AuthenticationError: Error code: 401 - {'error': {'code': '', 'message': 'Invalid token (request id: 202606071129117069338488268d9d6pd9nQip3)', 'type': 'new_api_error'}}

🔎 Isolated Defects

Caution

No model findings are available because Bunny Review failed before completing inspection.

🧹 Nitpicks

  • None recorded.

✅ Control Checks

Status Type Check Detail
⚠️ WARN CI Timing CI Status Expected CI controls were missing or incomplete when Bunny posted; verify the control path before merge.
❌ FAIL Review Limitation Review Failed Bunny Review could not complete because the model provider rejected the review request: AuthenticationError: Error code: 401 - {'error': {'code': '', 'message': 'Invalid token (request id: 202606071129117069338488268d9d6pd9nQip3)', 'type': 'new_api_error'}}

🧪 Observations

  • No model pass ran; the specimen remained unexamined.

🧰 CI Status

  • warning: required check Frontend, Architecture, and Organization did not appear before Bunny posted.
  • warning: required check Rust Capability Layer did not appear before Bunny posted.
  • warning: required check Browser Smoke and Performance did not appear before Bunny posted.
  • note: Bunny gates only required job conclusions from ci-checks.json; advisory reports such as continue-on-error dependency checks are not included in this status.

@github-actions github-actions 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.

Bunny Review inline findings

# This pull_request_target workflow is intentionally a dispatcher only.
# It must not checkout, install, or execute code from the pull request.
gh workflow run bunny-review.yml \
--repo "${{ github.repository }}" \

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[blocking] Dispatch targets an absent reviewer workflow

The dispatcher invokes bunny-review.yml, but the inspected repository context establishes no such workflow file and no matching workflow_dispatch contract. This specimen therefore reaches a dead control path: GitHub rejects the dispatch before review begins. The command dispatcher repeats the same target, so both entry points inherit the same failure mode.

Suggested fix: Add the trusted bunny-review.yml workflow on refactor with the declared inputs, or retarget both dispatchers to an existing workflow.

Prompt for AI Agents
Verify each Bunny finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate.

In `@.github/workflows/bunny-review-auto.yml` around line 33:
- Dispatch targets an absent reviewer workflow

The dispatcher invokes `bunny-review.yml`, but the inspected repository context establishes no such workflow file and no matching `workflow_dispatch` contract. This specimen therefore reaches a dead control path: GitHub rejects the dispatch before review begins. The command dispatcher repeats the same target, so both entry points inherit the same failure mode.

Suggested fix: Add the trusted `bunny-review.yml` workflow on `refactor` with the declared inputs, or retarget both dispatchers to an existing workflow.

pull-requests: read

jobs:
dispatch:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[medium] Slash dispatch is not bound to the PR base branch

The command gate verifies that the issue is a pull request, the comment starts with the command, and the commenter is trusted. It never inspects the pull request base branch, while the dispatch pins the reviewer workflow to refactor. A command on a PR targeting another branch can therefore misclassify the baseline and policy surface.

Suggested fix: Fetch the PR metadata in the command job and reject unless base.ref == TARGET_REF, or derive the dispatched ref from the PR base explicitly.

Prompt for AI Agents
Verify each Bunny finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate.

In `@.github/workflows/bunny-review-command.yml` around line 14:
- Slash dispatch is not bound to the PR base branch

The command gate verifies that the issue is a pull request, the comment starts with the command, and the commenter is trusted. It never inspects the pull request base branch, while the dispatch pins the reviewer workflow to `refactor`. A command on a PR targeting another branch can therefore misclassify the baseline and policy surface.

Suggested fix: Fetch the PR metadata in the command job and reject unless `base.ref == TARGET_REF`, or derive the dispatched ref from the PR base explicitly.

jobs:
dispatch:
if: >
github.event.issue.pull_request &&

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] Command prefix accepts malformed invocations

The trigger accepts any comment whose first bytes are /bunny-review. Inputs such as /bunny-reviewer or /bunny-review-full enter the dispatch path and collapse into auto mode. The command contract therefore admits unintended aliases.

Suggested fix: Require an exact command token, such as /bunny-review alone or /bunny-review followed by whitespace.

Prompt for AI Agents
Verify each Bunny finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate.

In `@.github/workflows/bunny-review-command.yml` around line 16:
- Command prefix accepts malformed invocations

The trigger accepts any comment whose first bytes are `/bunny-review`. Inputs such as `/bunny-reviewer` or `/bunny-review-full` enter the dispatch path and collapse into `auto` mode. The command contract therefore admits unintended aliases.

Suggested fix: Require an exact command token, such as `/bunny-review` alone or `/bunny-review` followed by whitespace.

@github-actions github-actions Bot added the docs label Jun 6, 2026

@github-actions github-actions 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.

Bunny Review inline findings

stats["context_searches"] += 1
try:
body = search_repo(pattern)
except Exception as exc:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔥 HIGH: Extra context escapes the redaction chamber

Location: .github/bunny-review/bunny_review.py:735

A splendid little privacy leak: the main review packet is passed through redact_for_model, but requested extra context is appended after raw file reads and repository searches. The path guard blocks only a narrow set of basenames, so env-shaped CI artifacts, credential-bearing config, or secret-looking values in ordinary files can still be delivered to the model. The apparatus constructs a mask, then removes it for the second experiment.

Tip

Suggested fix: Route every extra-context file body and search result through the same redaction and sensitive-path policy before insertion into the model-bound packet.

env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
BASE=$(gh pr view "$PR_NUM" --json baseRefName -q .baseRefName)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔥 HIGH: Trusted workflow trusts an unbounded PR base

Location: .github/workflows/bunny-review.yml:68

A charming breach in the quarantine: the dispatched reviewer resolves the PR base and then uses that branch as the source of executable review tooling. The outer dispatchers restrict bases to refactor and main, but the inner workflow_dispatch entry point repeats none of that discipline. A manual dispatch can therefore aim at a PR whose base branch supplies its own bunny_review.py, and the apparatus calls the scalpel trusted while letting the specimen choose it.

Tip

Suggested fix: Make the trusted workflow enforce the same exact base allowlist before any fetch, git show, or Python execution can touch branch-provided tooling.

check_runs = json.load(handle).get("check_runs", [])
control = {"expected": expected, "passing": [], "pending": [], "failed": [], "missing": []}
for name in expected:
matches = [check for check in check_runs if check.get("name") == name]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ MEDIUM: Stale duplicate check runs poison CI verdicts

Location: .github/workflows/bunny-review.yml:224

The CI collector treats every check run with a matching name as current evidence. GitHub can retain multiple check runs for the same commit and job name after reruns, so an obsolete failed run can sit beside the successful rerun and still be counted as failure. Bunny's final status can condemn a PR whose current required checks are green, an elegant little autopsy of the wrong corpse.

Tip

Suggested fix: Select the latest check run per expected name before classifying pass, pending, or failure.

if status != "completed":
control["pending"].append(name)
elif conclusion in {"success", "skipped"}:
control["passing"].append(name)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ MEDIUM: Skipped required checks are embalmed as success

Location: .github/workflows/bunny-review.yml:234

The CI gate declares checks marked required: always, then calmly files a skipped conclusion beside success. That is a delightful contradiction: a required validation job can avoid running and still feed Bunny a passing control record. The resulting status can advertise safety where no validation actually occurred.

Tip

Suggested fix: Treat skipped as missing or failed for required: always checks unless the check configuration explicitly grants a skip policy.

Promansis and others added 4 commits June 6, 2026 13:15
* Fix mobile composer text input collapse (Pasta-Devs#1136)

* Fix tracker aliases, avatars, HUD temps, and changelog (Pasta-Devs#1137)

Resolve tracker characters through active-chat names, aliases, title/comment aliases, and bracketed aliases so group chats can match card names that differ from tracker names.

Preserve uploaded NPC tracker avatars and portrait focus across agent refreshes, including first snapshot writes, without copying manual avatars onto real character-card IDs.

Reuse the shared temperature display helpers in the roleplay HUD so the tracker temperature unit setting applies there too.

Backfill changelog entries for recent Xel PRs and record the tracker hotfix under 1.6.1.

* Reduce chat startup and focus refetch lag

* Revert "Reduce chat startup and focus refetch lag"

This reverts commit e85da38.

* Register pre-alpha workflow on default branch

* Add Bunny review command bootstrap (Pasta-Devs#1821)

* Register Bunny auto review dispatcher on main (Pasta-Devs#1872)

* Enable Bunny dispatch for draft PRs (Pasta-Devs#2026)

* Update Bunny auto dispatch bootstrap (Pasta-Devs#2261)

* Enable Bunny review bootstrap on main (Pasta-Devs#2406)

* Fix Bunny main CI check names

---------

Co-authored-by: Xel <Xelvanas@gmail.com>
Co-authored-by: Spicy_Marinara <mgrabower97@gmail.com>
Co-authored-by: munimunigamer <munimunigamer@protonmail.com>
Co-authored-by: Promansis <damon.kyle.walling@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants