Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .gitleaks.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
'''SECURITY\.md''',
'''CONTRIBUTING\.md''',
'''CHANGELOG\.md''',
'''CLAUDE\.md''',
'''AGENTS\.md''',
'''\.github/copilot-instructions\.md''',
]

Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md → AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# PiPiMink — Project Context for Claude
# PiPiMink — Project Context for AI Coding Agents

## What this project is

Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

### Fixed

- Azure AI Foundry: provider and per-model config changes made in the Console UI now persist to `providers.json`. `SaveProviders` used an atomic temp-file + rename, which fails with `EBUSY` on single-file Docker bind mounts; it now falls back to an in-place write. `providers.json` and `.env` are bind-mounted read-write in the compose files so UI changes survive container rebuilds.
- Provider config changes now propagate to the running LLM client immediately. The client held a provider snapshot from startup; a mutex-guarded `SetProviders()` is now invoked from every provider mutation handler, so chat, routing, and benchmark use the current config instead of a stale map (previously tagging worked but chat/benchmark hit the wrong endpoint).
- Anthropic response parsing now scans all content blocks: extended-thinking models (e.g. Claude on Azure Foundry) emit a `thinking` block before the `text` block, which previously caused "missing/empty content" failures during tagging, chat, and benchmarking.
- Anthropic policy refusals (`stop_reason=refusal`) are now surfaced as a distinct, clear error instead of a misleading "empty content" message.
- `scripts/start-stack.sh` now rebuilds the app image (`up -d --build`) so code changes are actually deployed to the running container.
- Analytics latency time series query using incorrect `date_trunc` unit strings (`"1 hour"` → `"hour"`)

---
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ This project was built with the help of AI coding tools (Claude Code, GitHub Cop

- **Understand what you submit.** Review every line of AI-generated code before committing. You are responsible for the correctness, security, and maintainability of your contribution — not the AI.
- **Test thoroughly.** AI-generated code can look plausible while being subtly wrong. Run the full test suite (`go test ./...`) and verify edge cases manually.
- **Respect the architecture.** AI tools sometimes ignore existing patterns or invent unnecessary abstractions. Follow the conventions described in this guide and in `CLAUDE.md`.
- **Respect the architecture.** AI tools sometimes ignore existing patterns or invent unnecessary abstractions. Follow the conventions described in this guide and in `AGENTS.md`.
- **Do not blindly paste.** If you do not understand why a piece of generated code works, do not include it. Ask questions in the PR instead.
- **Disclose when helpful.** You are not required to label every AI-assisted line, but if a PR contains substantial AI-generated logic, a brief note in the PR description helps reviewers calibrate their review.

Expand Down
Loading