Skip to content

Commit 70e10fa

Browse files
authored
Open-source redesign: v1.1.0 (#11)
43 commits, each independently green under typecheck, tests and build. Ships the design refresh, the pack picker, the override layer, the Hidden shortcuts group, the packs screen, the wait-for-the-user dispatch confirmation, and the docs to match.
2 parents 6493ef2 + f1fbf8d commit 70e10fa

137 files changed

Lines changed: 28018 additions & 4242 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.claude/settings.json‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
"Bash(pnpm test:*)",
55
"Bash(pnpm typecheck:*)",
66
"Bash(pnpm build:*)",
7-
"Bash(pnpm install:*)",
87
"Bash(npx vitest:*)",
98
"Bash(npx tsc:*)",
109
"Bash(git status:*)",
1110
"Bash(git diff:*)",
1211
"Bash(git log:*)",
1312
"Bash(git show:*)",
14-
"Bash(node scripts/gen-icons.mjs)"
13+
"Bash(node scripts/gen-icons.mjs)",
14+
"Bash(pnpm package:*)",
15+
"Bash(node scripts/package.mjs)"
1516
]
1617
}
1718
}

‎.editorconfig‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
indent_style = space
7+
indent_size = 2
8+
insert_final_newline = true
9+
trim_trailing_whitespace = true
10+
11+
[*.md]
12+
trim_trailing_whitespace = false

‎.gitattributes‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
* text=auto eol=lf
2+
*.png binary
3+
*.woff2 binary
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Bug report
2+
description: Something resolves to the wrong place, or not at all
3+
labels: [bug]
4+
body:
5+
- type: input
6+
id: browser
7+
attributes:
8+
label: Browser and version
9+
placeholder: e.g. Chrome 131, Brave 1.72
10+
validations:
11+
required: true
12+
- type: input
13+
id: version
14+
attributes:
15+
label: BunnyLol version
16+
description: Shown on chrome://extensions
17+
validations:
18+
required: true
19+
- type: input
20+
id: typed
21+
attributes:
22+
label: What you typed
23+
description: Exactly what you typed in the address bar
24+
validations:
25+
required: true
26+
- type: textarea
27+
id: expected_actual
28+
attributes:
29+
label: Expected vs. actual
30+
description: What you expected to happen, and what happened instead
31+
validations:
32+
required: true
33+
- type: input
34+
id: rule_status
35+
attributes:
36+
label: Rule status
37+
description: >-
38+
The rule-status text at the top of the options page, copied verbatim
39+
(e.g. "Intercepting 148 keywords · 2 exempted by you")
40+
validations:
41+
required: true
42+
- type: textarea
43+
id: console
44+
attributes:
45+
label: Service worker console
46+
description: >-
47+
Any errors from the service worker console (chrome://extensions ->
48+
Inspect views: service worker)
49+
validations:
50+
required: false
51+
- type: checkboxes
52+
id: checks
53+
attributes:
54+
label: Checks
55+
options:
56+
- label: >-
57+
I tried the escape prefix (`\` or `=`) and the behaviour still
58+
looks wrong.
59+
required: true

‎.github/ISSUE_TEMPLATE/config.yml‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security report
4+
url: https://github.com/ion05/bunnylol/security/advisories/new
5+
about: Report a vulnerability privately. Do not open a public issue.
6+
- name: Questions and usage help
7+
url: https://github.com/ion05/bunnylol#readme
8+
about: How shortcuts work, the escape prefix, and adding your own.
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: New builtin command
2+
description: Propose a new command for the default registry
3+
labels: [enhancement]
4+
body:
5+
- type: input
6+
id: service
7+
attributes:
8+
label: Service name
9+
validations:
10+
required: true
11+
- type: input
12+
id: aliases
13+
attributes:
14+
label: Proposed aliases
15+
description: >-
16+
Comma-separated. Aliases must be globally unique. A test enforces
17+
this.
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: collision
22+
attributes:
23+
label: Alias collisions
24+
description: >-
25+
Does any of the proposed aliases already exist in the builtin
26+
registry, or match a common personal shortcut? List any that do, or
27+
write "none" if you checked and found none.
28+
validations:
29+
required: true
30+
- type: input
31+
id: jump_url
32+
attributes:
33+
label: Jump URL
34+
description: Where the bare keyword goes with no arguments.
35+
validations:
36+
required: true
37+
- type: input
38+
id: search_url
39+
attributes:
40+
label: Search URL template
41+
description: Using `{q}` for the argument placeholder, if applicable.
42+
validations:
43+
required: false
44+
- type: input
45+
id: example
46+
attributes:
47+
label: Example invocation
48+
description: >-
49+
e.g. `catalog ma 26100` -> where it should land.
50+
validations:
51+
required: true
52+
- type: textarea
53+
id: handler
54+
attributes:
55+
label: Smart handler
56+
description: >-
57+
Do arguments need a smart handler instead of plain `{q}`
58+
substitution? If so, describe the shape of the input.
59+
validations:
60+
required: false
61+
- type: textarea
62+
id: why
63+
attributes:
64+
label: Why a builtin
65+
description: >-
66+
One sentence on why this belongs in the default set rather than
67+
being a personal custom shortcut.
68+
validations:
69+
required: true

‎.github/PULL_REQUEST_TEMPLATE.md‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## What this changes
2+
3+
## Which AGENTS.md invariant does this touch?
4+
<!-- Name the numbered invariant, or write "none". If a test from that list
5+
fails, do not change the test. -->
6+
7+
## Checks
8+
- [ ] `pnpm typecheck` passes
9+
- [ ] `pnpm test` passes
10+
- [ ] `pnpm build` passes
11+
- [ ] Loaded `dist/` unpacked and exercised the change in a real browser
12+
- [ ] No new dependencies (devDependencies included)
13+
- [ ] If routing/DNR changed: replayed a real Chrome-generated search URL
14+
through the built rules, not just `buildRules`
15+
- [ ] Colours/sizes come from `design/tokens.css`, no literal hex or
16+
`font-size: Npx` in the UI sheets, and never `color: var(--accent)`
17+
18+
## Stacked PRs
19+
<!-- Base branch, and the PR this one sits on top of, if any. -->

‎.github/workflows/ci.yml‎

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
check:
13+
name: typecheck + test + build
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
# No `version:` input on purpose: action-setup v4 reads
19+
# `packageManager` from package.json, so CI cannot drift from local.
20+
- uses: pnpm/action-setup@v4
21+
22+
- uses: actions/setup-node@v4
23+
with:
24+
node-version-file: .nvmrc
25+
cache: pnpm
26+
27+
- run: pnpm install --frozen-lockfile
28+
- run: pnpm typecheck
29+
- run: pnpm test
30+
- run: pnpm build
31+
32+
# `pnpm build` runs scripts/gen-icons.mjs, so a change to the generator or
33+
# to --accent repaints these. Committed PNGs that the generator no longer
34+
# produces are a silent drift no other step can see.
35+
- run: git diff --exit-code -- public/icons store
36+
37+
# The packer has no test, it writes a binary nothing else reads, so the
38+
# only cheap guard is that it still runs over a real build. `release/` is
39+
# gitignored, so this cannot dirty the diff above. Called directly rather
40+
# than through `pnpm package`, which would rebuild `dist/` a second time.
41+
- run: node scripts/package.mjs

‎.gitignore‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
node_modules/
22
dist/
3+
release/
34
*.log
45
.DS_Store
56
.context/
67

78
# Conductor machine-local settings (a shared .conductor/settings.toml stays tracked).
89
.conductor/settings.local.toml
10+
11+
# A 2.4 MB self-contained export that duplicates the artboards already in design/canvas/*.dc.html.
12+
design/canvas/bunnylol-redesign.html

‎.gitkeep‎

Whitespace-only changes.

0 commit comments

Comments
 (0)