diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 7147ce0..1e4510e 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -17,6 +17,7 @@
## Checklist
- [ ] `npm run type-check` passes
+- [ ] `npm run lint` passes
- [ ] `npm test` passes
- [ ] `npm run test:e2e` passes (run before merging UI changes or cutting a release)
- [ ] No hardcoded colours — CSS variables only (`var(--accent)`, `var(--text-primary)`, etc.)
diff --git a/changelogs/v1.2.3.md b/changelogs/v1.2.3.md
new file mode 100644
index 0000000..29da4ed
--- /dev/null
+++ b/changelogs/v1.2.3.md
@@ -0,0 +1,44 @@
+# v1.2.3
+
+## What's new
+
+### Features
+
+- **Configurable temperature** — LLM sampling temperature is now a first-class setting in AI & Chat (0–1, step 0.05, presets 0.1 / 0.3 / 0.5 / 0.7). Previously hardcoded to 0.3 everywhere. Plan mode always overrides to 0.1 for deterministic codebase analysis regardless of this setting.
+
+- **Temperature wired end-to-end** — the setting is now forwarded through all three AI call paths: Pi agent (`pi-agent:prompt` and `pi-agent:approve-plan`), chat panel, and PRD modal. Previously only the Pi agent partially respected it.
+
+- **Max steps uncapped** — the max steps input now accepts values up to 1000, with an ∞ preset (maps to 1000) for complex multi-file tasks. Presets updated to 10 / 20 / 30 / 50 / ∞. The Pi agent loop now reads this value from settings rather than using the hardcoded constant of 30.
+
+- **Smarter coding agent tool set** — the Pi agent (`CAIRN_TOOL_NAMES`) gains access to seven previously missing tools: `get_neighbors` (N-hop graph traversal), `bulk_update_task_status`, `link_note_to_task`, `create_tag`, `get_idea_flow_rules`, `update_idea_flow_node`, and `layout_idea_flow`. The agent could previously create idea flow nodes and tasks but couldn't link, tag, or arrange them.
+
+- **AI & Chat settings reorganised** — "Enable AI features" is now "Enable inline AI" under a new "Visibility" group that also contains Agent view and AI Chat view toggles. All AI-related visibility is now in one place instead of being split between AI & Chat and General → Views.
+
+### Fixes
+
+- **MCP project selector showing icon name instead of icon** — the project dropdown in the MCP Settings "Project context" panel was rendering `p.icon` as a string inside an HTML `