v1.2.1
- Generic AI integration (Admin > Integracje > "Integracja AI"), optional and off by default: an OpenAI-compatible /chat/completions client (Groq, OpenAI, or a self-hosted Ollama instance) configured by base URL, optional API key, model, and an SSL-verification toggle. Foundation for the two AI features below and anything else that wants an LLM call in the future. - BookStack automatic content tagging (AI): "Otaguj nową treść"/"Otaguj wszystko ponownie" buttons plus `php artisan bookstack:tag-content` (--dry-run/--force/--limit=N) tag every book/chapter/page with matching helpdesk subcategory names, idempotent by default. - BookStack search refinement: "Przeszukuj" is now three independent checkboxes (Książki/Strony/Rozdziały) instead of a single dropdown, plus a new "Szukaj po" setting (nazwa/tagi/oba) — tag matching uses the bare subcategory name, matching what auto-tagging writes. - AI-driven ticket triage + summary (Admin > Integracje > "Automatyzacja AI dla zgłoszeń", via new scheduled ai:run-ticket-automation): five toggles auto-assign/correct category+subcategory, rewrite an unclear subject, and set priority from content, once per ticket in the background; every change is logged in the ticket's history. Separately, an AI summary + suggested action for every ticket, shown to operators only, with an admin-editable prompt. - Operators can now reassign a ticket to any team, not just one they belong to. - The auto-refresh countdown badges (ticket view, operator queue) are now clickable — fetch immediately and reset the countdown. - All 7 "cyclical" intervals (3 browser refresh countdowns, the notification bell poll, and the 4 background scheduled commands) are now configurable from Admin > Konfiguracja instead of fixed in code. - Fixed: an operator viewing a ticket that's deleted or moved outside their team scope mid-session is now redirected to the operator queue instead of hitting an error. - Docs: README/ARCHITECTURE/CLAUDE/install/wiki updated for all of the above. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
59
CHANGELOG.md
59
CHANGELOG.md
@@ -3,6 +3,65 @@
|
||||
All notable changes to this project are documented in this file. Format loosely
|
||||
follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||
|
||||
## [1.2.1] - 2026-07-24
|
||||
|
||||
### Added
|
||||
|
||||
- **Generic AI integration** (Admin > Integracje > "Integracja AI"), optional
|
||||
and off by default — an OpenAI-compatible `/chat/completions` client (works
|
||||
against Groq, OpenAI itself, or a self-hosted Ollama instance) configured by
|
||||
base URL, optional API key, model name, and an SSL-verification toggle for
|
||||
self-signed local endpoints. Not tied to any one feature — it's the shared
|
||||
foundation for the two AI-driven features below, and for anything else that
|
||||
wants an LLM call in the future.
|
||||
- **BookStack automatic content tagging (AI)** — a "Otaguj nową treść"/"Otaguj
|
||||
wszystko ponownie (force)" button pair in the BookStack card, plus
|
||||
`php artisan bookstack:tag-content` (`--dry-run`/`--force`/`--limit=N`) for
|
||||
the command line. Uses the AI integration above to classify every
|
||||
book/chapter/page's title+content against the current list of helpdesk
|
||||
subcategories and tags matching ones by name — idempotent by default
|
||||
(skips already-tagged content), so re-running after adding a few pages is
|
||||
cheap. This is what gives the BookStack "search by tags" option below
|
||||
something to actually match against.
|
||||
- **BookStack search refinement** — "Przeszukuj" is now three independent
|
||||
checkboxes (Książki / Strony / Rozdziały) instead of a single dropdown with
|
||||
no chapter option, plus a new "Szukaj po" setting: słowa kluczowe w nazwie /
|
||||
tagi / oba. Tag matching uses the bare subcategory name (e.g. "Drukarki i
|
||||
skanery"), matching what the auto-tagging feature above writes.
|
||||
- **AI-driven ticket triage + summary** (Admin > Integracje >
|
||||
"Automatyzacja AI dla zgłoszeń", runs via a new scheduled
|
||||
`ai:run-ticket-automation`) — five independent toggles: assign a
|
||||
category/subcategory when a ticket has neither, pick a subcategory when it
|
||||
only has a category, recheck and possibly correct an already-categorized
|
||||
ticket, rewrite an unclear subject, and set a priority based on content.
|
||||
Runs once per ticket in the background (never synchronously at submission,
|
||||
so it adds no latency for a client), and every applied change leaves a
|
||||
specific line plus a "Automatyzacja: klasyfikacja AI" entry in the ticket's
|
||||
history, same convention as the existing SLA automation rules. Separately,
|
||||
an AI-generated summary + suggested next action for **every** ticket, shown
|
||||
only to operators in a new "Podsumowanie AI" sidebar card, refreshed
|
||||
whenever the thread gets a new message — its system prompt is admin-editable
|
||||
as a plain-text field with a "Resetuj" button back to the shipped default.
|
||||
- Operators can now reassign a ticket to **any** team, not just one they
|
||||
belong to (previously the dropdown only ever offered the operator's own
|
||||
teams).
|
||||
- The auto-refresh countdown badges (ticket view, operator queue) are now
|
||||
**clickable** — fetch immediately and reset the countdown, instead of only
|
||||
ever refreshing on their own fixed schedule.
|
||||
- **All 7 "cyclical" intervals** in the app are now configurable from
|
||||
Admin > Konfiguracja instead of fixed in code: the 3 browser auto-refresh
|
||||
countdowns (ticket view, operator queue), the notification bell's poll,
|
||||
and the 4 background scheduled commands (SLA breach check, SLA automation
|
||||
rules, IMAP fetch, AI ticket automation). Defaults match the previous
|
||||
hardcoded values, so nothing changes until an admin edits them.
|
||||
|
||||
### Fixed
|
||||
|
||||
- An operator viewing a ticket that gets deleted by someone else, or whose
|
||||
team changes to one outside the operator's own scope (including via their
|
||||
own reassignment above), is now redirected back to the operator queue
|
||||
instead of hitting an error mid-session.
|
||||
|
||||
## [1.2.0] - 2026-07-23
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user