docs: add v3.1.0 mod-niche PR categorization

This commit is contained in:
OpenPets Dev 2026-06-15 19:43:50 +00:00
parent f514960aed
commit 0f294016aa

View file

@ -0,0 +1,177 @@
# OpenPets v3.1.0 — Pull requests by mod niche
This document organizes the v3.1.0 follow-up work into the product niches that users experience. Each niche section lists the relevant branch, commits, files, and verification steps so that PRs can be reviewed in focused chunks.
Target branch for all PRs: `v3.1.0-integrated` (or `main` once the OP 16 integration lands).
---
## 1. Companion / Pet niche
**Branch:** `pr/companion-pet-polish`
**Scope:** On-pet behavior, bubble rendering, scale controls, and virtual-pet interactions.
### What changed
- **Pet window stability** — removed the post-drag resize jump, anchored resize around the pet's foot/center, and smoothed scale-handle dragging.
- **Scale presets + nudges** — added a preset dropdown (`XXXS``XXXL`) and `+`/`-` nudge buttons next to the scale slider in Settings > General.
- **Single-click petting** — enabled the care action when the pet is clicked once.
- **Virtual-pet context menu** — renamed the submenu to **Pet Status**, moved care actions to the top level, and reordered stat rows.
- **Speech-bubble clipping fix** — made bubble max-width/max-height relative to the scaled pet window so larger pets no longer clip long messages.
### Files
- `apps/desktop/src/pet-window.ts`
- `apps/desktop/pet-preload.cjs`
- `apps/desktop/src/renderer/src/main.tsx`
- `plugins/official/openpets.virtual-pet/index.js`
- `plugins/official/openpets.virtual-pet/locales/en.json`
- `plugins/official/openpets.virtual-pet/test.js`
### Commits
- `11ed7b3`, `be21907`, `ab62d9c`, `26d446f`, `f514960` (bubble/layout portion)
### Verification
- Drag the pet window and release — it should not jump.
- Resize the pet to `XL` or larger and send a long message — the bubble should stay fully visible.
- Right-click the pet — the context menu should show **Check On Pet**, then care actions, then **Pet Status**.
---
## 2. Chat / Prompt niche
**Branch:** `pr/chat-prompt-hardening`
**Scope:** The floating prompt window and its packaged-build reliability.
### What changed
- **Attachment flow** — hidden file input, base64 data-URL reading for non-text files, and attachment chips.
- **Composer layout** — auto-growing textarea that fills the resized window.
- **Keyboard behavior** — Enter sends, Ctrl/Cmd+Enter inserts a newline.
- **New chat** — opens the editor in message view after creating a conversation.
- **Signed-build repair** — escaped inline-script newlines so the packaged prompt window parses correctly; kept the proven `data:`-URL + sandboxed-preload loader.
- **Knowledge Store button** — added a toolbar button that stores attached files into the Knowledge Store.
### Files
- `apps/desktop/src/prompt-window.ts`
- `apps/desktop/prompt-window-preload.cjs`
- `apps/desktop/electron-builder.yml`
### Commits
- `c226280`, `bcb5577`, `9246fed`, `236a615`, `61da20d`, `f514960` (store-knowledge portion)
### Verification
- Open the prompt window in a packaged build and attach a file — no renderer `SyntaxError`.
- Confirm `window.openPetsPromptWindow` exists and typing enables the send button.
- Attach a file and click **Store in Knowledge** — the file should be indexed and searchable from Settings > Knowledge Store.
---
## 3. Knowledge / Memory niche
**Branch:** `pr/knowledge-memory`
**Scope:** Long-term memory capture, file-based knowledge, and retrieval for chat context.
### What changed
- **Memory hardening** — floating-chat capture is logged and fails safely; retrieval gains a recall-intent fallback.
- **Knowledge Store core** — Electron-free `KnowledgeStore` class with file indexing, text extraction, search scoring, and context building.
- **Knowledge Store UI** — new Settings tab for file upload, memory management, and search.
- **Chat integration** — relevant knowledge files are injected into the system instructions alongside memory context.
- **Prompt-window integration** — attachments can be stored directly into the Knowledge Store from the chat composer.
### Files
- `apps/desktop/src/openpets-memory.ts`
- `apps/desktop/src/knowledge-store-core.ts`
- `apps/desktop/src/knowledge-store.ts`
- `apps/desktop/src/openapi-chat.ts`
- `apps/desktop/src/windows.ts`
- `apps/desktop/src/prompt-window.ts`
- `apps/desktop/control-center-preload.cjs`
- `apps/desktop/prompt-window-preload.cjs`
- `apps/desktop/src/renderer/src/main.tsx`
- `apps/desktop/tests/knowledge-store.test.ts`
- `apps/desktop/scripts/run-tests.mjs`
### Commits
- Previous memory-hardening commit, `4aff369`, `d8650a9`, `f514960` (UI/integration portion)
### Verification
- `pnpm test` passes, including the new `knowledge-store.test.ts`.
- Store a `.txt` file in Settings > Knowledge Store and ask the assistant about its content in chat — the answer should reference it.
- Store an attachment from the prompt window and confirm it appears in Settings > Knowledge Store.
---
## 4. Productivity niche
**Branch:** `pr/productivity-plugins`
**Scope:** Focus, reminders, and launch-buddy plugins.
### What changed
- No new plugin code in this v3.1.0 follow-up batch.
- The underlying plugin runtime and catalog validation fixes from the OP 16 integration benefit all productivity plugins.
### Files
- `plugins/official/openpets.focus-buddy`
- `plugins/official/openpets.reminders`
- `plugins/official/openpets.launch-buddy`
### Verification
- Enable each plugin from the tray and confirm it registers its tools/actions without runtime errors.
---
## 5. Wellness niche
**Branch:** `pr/wellness-plugins`
**Scope:** Water reminder, mood check-in, and day-routine plugins.
### What changed
- No new plugin code in this v3.1.0 follow-up batch.
- Plugin runtime hardening and catalog validation apply here as well.
### Files
- `plugins/official/openpets.water-reminder`
- `plugins/official/openpets.mood-check-in`
- `plugins/official/openpets.day-routine`
### Verification
- Enable each plugin and verify its tray menu entries and scheduled prompts work.
---
## 6. Entertainment niche
**Branch:** `pr/entertainment-plugins`
**Scope:** Magic 8-ball and fortune-cookie plugins.
### What changed
- No new plugin code in this v3.1.0 follow-up batch.
- Plugin runtime hardening and catalog validation apply here as well.
### Files
- `plugins/official/openpets.magic-8-ball`
- `plugins/official/openpets.fortune-cookie`
### Verification
- Trigger each plugin and confirm it returns a response through the pet or chat.
---
## 7. Packaging / Release niche
**Branch:** `pr/packaging-release`
**Scope:** Windows installer, ASAR unpack, packaging contract, and PR documentation.
### What changed
- **asarUnpack** — added preload files so sandboxed packaged builds load the preload correctly.
- **Packaging contract** — updated assertions for the new responsive bubble CSS.
- **PR notes** — reorganized the v3.1.0 changes by mod niche.
- **Signed installer** — built on the Windows signing host and copied to the operator's Downloads folder.
### Files
- `apps/desktop/electron-builder.yml`
- `apps/desktop/src/check-packaging-contract.ts`
- `apps/desktop/scripts/run-tests.mjs`
- `docs/pull-requests/OPENPETS_3_1_0_FIXES_PULL_REQUESTS.md`
- `docs/pull-requests/OPENPETS_3_1_0_MOD_NICHE_PULL_REQUESTS.md`
### Verification
- `pnpm package:dir` passes the packaging contract.
- `pnpm package` produces a signed `OpenPets-3.1.0-win-x64-setup.exe` in the Windows Downloads folder.
---
## Cross-nicHe notes
- The Knowledge Store touches both the **Knowledge / Memory** niche and the **Chat / Prompt** niche because attachments can be stored from chat.
- The Settings UI (`main.tsx`) touches **Companion / Pet** (scale controls) and **Knowledge / Memory** (Knowledge Store tab). Reviewers may want to view the file diff once rather than per-niche.