Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
42a533a
Search: add AI Answers design specs for wpcom API and WP plugin
gibrown Apr 21, 2026
7ca819b
Search: revise AI Answers specs to use topic-based CPT model
gibrown Apr 21, 2026
86654e6
Search: update AI Answers admin UI to use top-level tab bar
gibrown Apr 21, 2026
da98edf
Search: add AI Answers plugin implementation plan
gibrown Apr 21, 2026
3696dcc
Search: add local testing setup checklist for AI Answers feature
gibrown Apr 21, 2026
1aa7163
Search: register jps_behavior and jps_topic CPTs
gibrown Apr 21, 2026
9e11046
Search: correct CPT slugs (jp_search_behavior, jetpack_search_topic) …
gibrown Apr 21, 2026
f8e5380
Search: simplify AI Answers feature flag — pass option as filter default
gibrown Apr 21, 2026
3bef8c7
Search: add is_enabled() test coverage and CPT teardown to AI_Answers…
gibrown Apr 22, 2026
8cdce08
Sync: add jp_search_behavior and jetpack_search_topic CPTs to Search …
gibrown Apr 22, 2026
86e42c2
Search: embed HMAC AI Answers token in JetpackInstantSearchOptions
gibrown Apr 22, 2026
ca87b4a
Search: clean up Tokens import and complete token test assertions
gibrown Apr 22, 2026
25c92bb
Search: add Stats-style tab bar to Search dashboard (Overview / Behav…
gibrown Apr 22, 2026
0371b78
Search: add @testing-library/user-event dev dependency for tab tests
gibrown Apr 22, 2026
d70328c
Search: rename tabs/index.scss to style.scss, add inactive tab aria-s…
gibrown Apr 22, 2026
b0a30fd
Search: implement Behavior tab for AI Answers behavior instructions
gibrown Apr 22, 2026
64784aa
Search: implement Topics tab for AI Answers topic management
gibrown Apr 22, 2026
5bd9328
Search: clear stale errors on save retry and topic reload
gibrown Apr 22, 2026
cdf02de
Search: add AI Answers panel component for instant-search overlay
gibrown Apr 22, 2026
6853762
Search: wire AI Answers SSE to instant-search overlay via fetchEventS…
gibrown Apr 22, 2026
3dae33d
Search: guard undefined data.text in SSE chunk handler
gibrown Apr 22, 2026
ddae07c
Search, Sync: add changelogs for AI Answers feature
gibrown Apr 22, 2026
109e2a0
Search/Sync: fix feature flag option read in Sync, add sanitize callb…
gibrown Apr 22, 2026
f801644
Search: rename plan docs (remove date prefix), slim down api-design, …
gibrown Apr 22, 2026
f2614de
Search: add plan eligibility section to AI Answers roadmap
gibrown Apr 22, 2026
d4a79b6
Search: update SSE request to JSON-RPC 2.0 format
gibrown Apr 22, 2026
a571fa1
Fix Jetpack Footer rendering error.
gibrown Apr 22, 2026
84388fd
Got AI agent request working
robfelty Apr 24, 2026
1d6668b
Got API call working. Updated styling for AI answer
robfelty Apr 24, 2026
13f9694
Fix test failure for citations in answers panel
gibrown Apr 27, 2026
51a6ab9
Fix up styling for the AI answers box and fix some rendering bugs.
gibrown Apr 28, 2026
a8cac34
Changed Behavior tab to Personality
robfelty Apr 28, 2026
cc10aa5
Fix styling and handling of errors.
gibrown Apr 28, 2026
82cffcf
Fixed guideline post type saving
robfelty Apr 28, 2026
0a00506
Add jetpack search guidelines postmeta to sync allowlist
robfelty Apr 29, 2026
fdbab44
Search admin: rename tabs and remove Topics from tab bar
gibrown Apr 28, 2026
0153b8f
Search admin: wire up renamed tab IDs in dashboard page
gibrown Apr 28, 2026
03ae440
Search admin: hard-delete Topics CPT and topics-tab component
gibrown Apr 28, 2026
c32db10
Search admin: register ai_answers_enabled in settings REST endpoint
gibrown Apr 28, 2026
a539164
Search admin: expose aiAnswersEnabled in overlay initial state
gibrown Apr 28, 2026
4fb7f30
Search admin: add isAiAnswersEnabled selector and fix settings error …
gibrown Apr 28, 2026
d767761
Search admin: add AiAnswersTab component with plan gate and upsell
gibrown Apr 28, 2026
17ec081
Search admin: fix AiAnswersTab code quality issues
gibrown Apr 28, 2026
8ae874f
Search admin: wire AiAnswersTab into dashboard, delete BehaviorTab
gibrown Apr 28, 2026
deca0c0
Search admin: gate getAiAnswer() on aiAnswersEnabled overlay option
gibrown Apr 28, 2026
2b12374
Updated styling
robfelty Apr 30, 2026
26e5385
Fixed enabling ai answers setting
robfelty May 1, 2026
d4551ef
Updates based on code review.
robfelty May 1, 2026
ea5ed3c
Search: fix tests after PR review refactor
gibrown May 1, 2026
d831642
Sync: update AI Answers CPT whitelist after Topics deletion
gibrown May 1, 2026
16e3fa5
Search: rename CLAUDE.md to AGENTS.md, add sync test reminder
gibrown May 1, 2026
e11b4bf
Using a two pronged approach for a brief summary and then a longer one
robfelty May 2, 2026
f4581f3
Avoiding js errors
robfelty May 4, 2026
fa4e710
Fixed i18n issues
robfelty May 4, 2026
7820802
fixed a possible undefined error for the dashboard on p2s
robfelty May 5, 2026
3bf1aa1
Hopefully fixed E2E tests
robfelty May 5, 2026
7796f93
more test fixes
robfelty May 5, 2026
2138954
Another fix to get search admin page working on p2
robfelty May 5, 2026
e046edd
Only make second request if asked
robfelty May 5, 2026
9260c41
fixed lockfile
robfelty May 5, 2026
20226f4
Added a little animation to the placeholder messages
robfelty May 5, 2026
6c1d176
Fix JS Search tests.
gibrown May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

54 changes: 54 additions & 0 deletions projects/packages/search/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Jetpack Search

## UI Components

**Always use existing design system components instead of writing custom ones.**

The Jetpack Search dashboard is actively migrating to standard WordPress components. When building UI, follow this priority order:

### Priority 1: `@wordpress/ui`
The primary component library for new Jetpack work. Use for:
- `Button`, `Link`
- `Notice.Root` / `Notice.Title` / `Notice.Description`
- Tabs, dialogs, and layout primitives

### Priority 2: `@wordpress/components`
Fallback for anything not yet in `@wordpress/ui`:
- `ToggleControl`, `TextareaControl`, `SelectControl`
- `Tabs`, `TabPanel`
- `Notice` (legacy)

### Priority 3: `@automattic/jetpack-components`
Jetpack-specific components (upsell cards, plan badges, etc.).

### Never reinvent
Do **not** create custom implementations of:
- Tab bars → use `@wordpress/components` `Tabs` or `@wordpress/ui`
- Buttons → use `@wordpress/ui` `Button`
- Notices/alerts → use `@wordpress/ui` `Notice`
- Toggles/checkboxes → use `@wordpress/components` `ToggleControl`

When unsure which component to use, the `@wordpress/design-system-mcp` MCP is configured for this project — use it to look up the right component before building a custom one.

## Data access

- `@automattic/jetpack-shared-extension-utils` → `getSiteFragment()` for site domain
- `@automattic/jetpack-script-data` → `isWpcomPlatformSite()` for WP.com detection
- Store selectors via `useSelect( select => select( STORE_ID ).selectorName(), [] )` — always include `[]` dependency array

## Testing

Always run all three suites when changing search code:

```bash
# JS tests (from projects/packages/search/)
pnpm test-scripts

# Search PHP tests
jetpack test php packages/search -v

# Sync PHP tests — search changes often affect the sync whitelist
jetpack test php packages/sync -v
```

- Mock external packages in tests; mock custom hooks (`hooks/use-*`) rather than their internals
4 changes: 4 additions & 0 deletions projects/packages/search/changelog/jps3-answers-plan
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: minor
Type: added

Search: AI Answers — topic-based customization CPTs, HMAC auth token, dashboard tabs, and streaming answers panel in the instant-search overlay.
Loading
Loading