Skip to content

Commit 1f66823

Browse files
clucraftclaude
andcommitted
Release v1.0.5 - AI model selector, Gotify support, Ollama fixes
New Features: - AI model selector for Anthropic and OpenAI - Per-product AI extraction/verification disable toggles - Gotify self-hosted notification support with connection testing - AI stock status verification for variant products Fixes: - Ollama thinking mode (/nothink message, num_ctx: 16384) - AI now returns out_of_stock for pre-order/coming soon items Documentation: - Added recommended models: Claude Haiku 4.5 and Qwen3 - Added Gotify setup instructions - Updated API reference with new endpoints Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 84d088a commit 1f66823

File tree

4 files changed

+64
-5
lines changed

4 files changed

+64
-5
lines changed

CHANGELOG.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,42 @@ All notable changes to PriceGhost will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.0.5] - 2026-01-25
9+
10+
### Added
11+
12+
- **AI Model Selector** - Choose your preferred AI model in settings
13+
- Anthropic: Claude Haiku 4.5, Sonnet 4.5, Opus 4.5
14+
- OpenAI: GPT-4.1 Nano, Mini, and Full
15+
- Ollama: Any locally installed model
16+
- **Per-Product AI Controls** - Disable AI extraction and/or verification on individual products
17+
- Useful for products where AI interferes with manual price selection
18+
- Separate toggles for extraction (fallback) and verification
19+
- **Gotify Notification Support** - Self-hosted push notifications via Gotify
20+
- Test connection before saving to verify server URL and app token
21+
- Full notification support for price drops, target prices, and stock changes
22+
- **AI Stock Status Verification** - Separate AI call to verify stock status for variant products
23+
- When tracking a specific variant price, AI now verifies if that exact variant is in stock
24+
- Fixes false "in stock" status when other variants are available but tracked variant is not
25+
26+
### Fixed
27+
28+
- **Ollama Thinking Mode** - Fixed Qwen3 and DeepSeek models outputting `<think>` tags instead of JSON
29+
- Added `/nothink` message before prompts to disable thinking mode
30+
- Added `num_ctx: 16384` for proper context window (was truncating HTML at 4K)
31+
- Added fallback to strip `<think>` tags from responses
32+
- **AI Stock Status "Unknown"** - AI now correctly returns "out_of_stock" for pre-order/coming soon products
33+
- Previously returned "unknown" even when reasoning stated product was unavailable
34+
- Prompt now explicitly requires "out_of_stock" when product cannot be purchased
35+
36+
### Changed
37+
38+
- **Recommended AI Models** - Based on testing:
39+
- **Cloud**: Claude Haiku 4.5 (best accuracy for the cost)
40+
- **Local/Free**: Qwen3 (any size, with thinking mode disabled)
41+
42+
---
43+
844
## [1.0.4] - 2026-01-24
945

1046
### Added
@@ -162,6 +198,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
162198

163199
| Version | Date | Description |
164200
|---------|------|-------------|
201+
| 1.0.5 | 2026-01-25 | AI model selector, per-product AI controls, Gotify support, Ollama fixes |
165202
| 1.0.4 | 2026-01-24 | Multi-strategy price voting system with user selection for ambiguous prices |
166203
| 1.0.3 | 2026-01-24 | Notification history with bell icon, clear button, and full history page |
167204
| 1.0.2 | 2026-01-23 | Fixed stock status false positives for in-stock items |

README.md

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ The cost is minimal (fractions of a cent per API call with Claude Haiku/GPT-4o-m
119119
- **Discord** - Send alerts to any Discord channel via webhooks
120120
- **Pushover** - Native Pushover support for mobile push notifications
121121
- **ntfy.sh** - Simple, no-account push notifications to any device
122+
- **Gotify** - Self-hosted push notifications via your own Gotify server
122123
- **Per-channel toggles** - Enable/disable each notification channel independently
123124
- **Test notifications** - Send test alerts to verify your setup
124125

@@ -169,7 +170,7 @@ PriceGhost has **site-specific scrapers** optimized for:
169170
| **Backend** | Node.js, Express, TypeScript |
170171
| **Database** | PostgreSQL |
171172
| **Scraping** | Cheerio, Puppeteer (with stealth plugin) |
172-
| **AI Extraction** | Anthropic Claude, OpenAI GPT, Ollama (optional but recommended) |
173+
| **AI Extraction** | Anthropic Claude (Haiku 4.5 recommended), OpenAI GPT, Ollama Qwen3 (optional but recommended) |
173174
| **Charts** | Recharts |
174175
| **Auth** | JWT + bcrypt |
175176
| **Scheduling** | node-cron |
@@ -262,6 +263,12 @@ npm run dev
262263
3. Enter your topic name in Settings > Notifications
263264
4. No account or API key needed - it just works!
264265

266+
#### Gotify (Self-Hosted)
267+
1. Set up a [Gotify server](https://gotify.net/docs/install) on your own infrastructure
268+
2. Create an application in Gotify to get an App Token
269+
3. Enter your Gotify server URL and App Token in Settings > Notifications
270+
4. Use "Test Connection" to verify before saving
271+
265272
### AI Extraction Setup (Highly Recommended)
266273

267274
For dramatically improved compatibility with difficult sites:
@@ -271,9 +278,22 @@ For dramatically improved compatibility with difficult sites:
271278
3. Choose your provider:
272279
- **Anthropic (Claude)** - Get key from [console.anthropic.com](https://console.anthropic.com)
273280
- **OpenAI (GPT)** - Get key from [platform.openai.com](https://platform.openai.com/api-keys)
274-
- **Ollama (Local)** - Free, runs locally. Install from [ollama.ai](https://ollama.ai), then `ollama pull llama3.2`
281+
- **Ollama (Local)** - Free, runs locally. Install from [ollama.ai](https://ollama.ai)
275282
4. Enter your API key (or Ollama server URL for local)
276-
5. Use "Test Extraction" to verify it works
283+
5. Select your preferred model
284+
6. Use "Test Extraction" to verify it works
285+
286+
#### Recommended Models
287+
288+
Based on testing, these models work best with PriceGhost:
289+
290+
| Provider | Model | Notes |
291+
|----------|-------|-------|
292+
| **Anthropic** | Claude Haiku 4.5 | ⭐ Best overall - fast, accurate, cheap (~$0.001/check) |
293+
| **Ollama** | Qwen3 (any size) | ⭐ Best free option - run `ollama pull qwen3` |
294+
| OpenAI | GPT-4.1 Nano | Good alternative to Haiku |
295+
296+
**Note for Ollama users**: Qwen3 works well for price extraction and verification. Other models (llama3, mistral, deepseek) may struggle with structured JSON output or have thinking mode issues.
277297

278298
The AI automatically activates when standard scraping fails to extract a price, providing a reliable fallback.
279299

@@ -310,6 +330,8 @@ The AI automatically activates when standard scraping fails to extract a price,
310330
| POST | `/api/settings/notifications/test/discord` | Send test Discord notification |
311331
| POST | `/api/settings/notifications/test/pushover` | Send test Pushover notification |
312332
| POST | `/api/settings/notifications/test/ntfy` | Send test ntfy notification |
333+
| POST | `/api/settings/notifications/test/gotify` | Send test Gotify notification |
334+
| POST | `/api/settings/notifications/test-gotify` | Test Gotify connection before saving |
313335
| GET | `/api/settings/ai` | Get AI extraction settings |
314336
| PUT | `/api/settings/ai` | Update AI settings |
315337
| POST | `/api/settings/ai/test` | Test AI extraction on a URL |

backend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "priceghost-backend",
3-
"version": "1.0.2",
3+
"version": "1.0.5",
44
"description": "PriceGhost price tracking API",
55
"main": "dist/index.js",
66
"scripts": {

frontend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "priceghost-frontend",
33
"private": true,
4-
"version": "1.0.2",
4+
"version": "1.0.5",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

0 commit comments

Comments
 (0)