New features, improvements, and fixes in each release.
1.14.3
July 16, 2026
Added
•Employee names in Assessments, Development plans and Exam results now show the person's current position, with a clear chip when they are no longer active
•Draft Talent Market cards can now be cancelled right from the card page
Changed
•Every date field in Assessments, Development, Exams and Talent Market uses the same calendar picker instead of the browser's built-in date input
Fixed
•Starting to score a Pre-interview round works again for the first evaluator; a second evaluator still gets a clear "single evaluator" message
•Development plan grade choices now follow the selected specialization: pick a specialization first, then choose among the grades configured for it
•Deactivating a built-in dictionary item now truly hides it everywhere: pickers, AI suggestions, the Specializations page and the public API all respect it
•Renaming a position updates it everywhere employees are shown — no more stale titles on cards and lists
•Specialization and grade pickers offer only active dictionary items, while a previously saved item keeps its name and stays selectable
•Completed and cancelled Talent Market cards are fully frozen — no more edits, candidate changes or appointments after the fact
•The exam pass mark you configure is what actually decides pass or fail; changing the mark re-grades finished participants
•Exam question images show at their natural size while taking the exam and appear in the submitted results
•Cancelling or completing an exam now settles its surveys: unfinished ones close, submitted results stay visible
•Declined evaluator invitations stay declined — the link cannot be reopened or extended
•Candidate pages opened from a vacancy keep that vacancy's context in assessments and AI insights
•Active hiring funnel stages are consistently highlighted across the vacancy page
•Restarting the demo resumes your existing sandbox instead of starting a new one
•Deleting a dictionary item that is still in use is blocked with a clear message in more places: Talent Market cards, vacancies and recommended grades
•Editing a vacancy's competence profile can no longer accidentally overwrite someone else's newer changes
•Saved assessment calibration keeps questionnaires closed, and calibrated totals keep their badge when calibration is reopened
•Billing charges only for what was actually created in mass assessments and Talent Market bulk-add — duplicates and over-cap items are free
•The Prices page lists only actions you can actually trigger from the dashboard
1.14.2
July 13, 2026
Changed
•Exam pass marks are no longer set in stone: a pencil icon next to the pass mark opens an Edit dialog, and it works on active exams too — only finished exams stay frozen
•The Send exam button no longer goes grey when the deadline has passed — clicking it now tells you exactly what is wrong, the same way Assessments and Development plans do
•Creating an exam is calmer: the Title field no longer glows red before you have typed anything
Fixed
•Deleting a competence type that is still used by competences is now blocked with a clear message instead of silently leaving those competences untyped
•The "no longer considered" Talent Market email no longer offers an Open card button that led nowhere — removed candidates have no access to the card
•Talent Market ranking now values experience properly: a candidate who meets or exceeds the required experience ranks above one who merely reacted first — reaction time only breaks exact ties
•Vacancy Requirements, Responsibilities and Conditions no longer come back empty after saving a draft
•Resumes built as DOCX tables now import correctly instead of failing with "Nothing to import"
•Resume parsing now carries each job's start date, end date and description onto the candidate card
•Downloading a resume from the candidate page now gives you the original PDF or DOCX file
•Each hiring funnel stage now shows in its configured color on the vacancy page, and the Manage funnel stages drawer no longer needs a horizontal scrollbar
1.14.1
July 12, 2026
Fixed
•The demo, sign-up and save-access buttons no longer get stuck on "Verifying..." when an ad blocker interferes with browser verification — you now get a clear explanation and a retry
1.14.0
July 12, 2026
Added
•External evaluators now get their own evaluation page — no account needed: the invite link opens the candidate's resume and interview questions next to the full competence sheet, scores save as they go, and a warning flags unassessed critical competences before submit
•Recruitment grew section tabs: Vacancies, Candidates, Reports, Audit and Settings are one click away from any recruitment page
•Vacancies now carry a hiring manager — pick one when creating or editing a vacancy (the creator is suggested by default), and see them right on the vacancy page
Changed
•AI vacancy profile generation now asks before overwriting: results land in a Review for save step where you keep, edit or drop each competence — nothing touches the saved profile until you apply it
•The vacancy competence block is fully editable in place: change a competence's criticality, add new competences with indicators and interview questions, and create whole groups and subgroups without leaving the page
•The vacancy list shows Position and Division columns, the owner's full name, and archived vacancies under the All statuses filter
•Evaluator invitations now wait until the vacancy has a competence profile, and the Invite button explains what is missing
•Assessment calibration is now priced at 5 credits per run
Fixed
•Evaluator invite statuses now track the real journey — pending, opened, in progress, submitted — and stale invites show as expired
•The invitation email now names the candidate being evaluated, includes your personal message, and links straight to the evaluation page
•The invite evaluators window keeps its buttons in view, clears cleanly, and checks email addresses before sending
•Candidate names in the vacancy assessment matrix no longer show as Unknown for resume-sourced candidates, and each name links to the candidate card
•Assessment surveys are billed once per participant on completion — saving answers along the way is free
1.13.19
July 10, 2026
Added
•Employees can now take their exams: a Take this exam panel opens right from the Exams list with single-choice, multiple-choice and essay questions, answers saved as you go, and a resume-where-you-left-off draft if you close midway
•Submitted exams show the earned score in the list, and a results view highlights which answers were right and wrong — managers with access to the employee can open the same review
•Exams complete themselves: the whole exam flips to Completed automatically once the last participant submits their results
•Taking an exam is billed once per completed attempt — answering and re-answering questions along the way is free
Fixed
•The manager assessment sheet on the candidate card now scores indicators individually (with the competence overall computed from them), shows each competence's criticality chip, and unlocks Mark as complete only after every critical competence is assessed
•Every evaluator now gets their own assessment sheet — fast scoring across several competences no longer loses saves
1.13.18
July 9, 2026
Added
•Interviews now live on the candidate card: schedule rounds, watch transcription and AI-analysis status at a glance, and jump into any interview's detail page
•Upload several interview recordings at once — one interview per file, with per-file progress; AVI recordings are now accepted alongside mp3, wav, m4a, mp4, webm and mov
•Auto-processing for interview uploads: recordings can be transcribed and sent through the AI analysis automatically as soon as they pass the safety scan — no manual clicks between upload and insights
•Interview questions moved onto the candidate card: per-vacancy question sets, a Generate next set button once a round is transcribed, and questions already answered in the interview are ticked off automatically after the AI analysis
•Notifications when a question set is ready (or fails), linking straight to the candidate — plus a workspace setting that shows hiring managers the questions above the resume
Fixed
•A candidate's signed recording consent now carries over to interviews created later — no more repeated signature requests
1.13.17
July 9, 2026
Fixed
•AI generation in Recruitment no longer fails on rich vacancies: large responses (vacancy profiles, resume parsing, question sets, interview analyses) were cut off mid-answer and surfaced as a cryptic error — the output budget is now four times larger, and profile generation automatically retries with a compact profile when even that is not enough
1.13.16
July 7, 2026
Fixed
•Assigning employees to an exam now offers Division, Position and Specialization filters with a Select all that respects the active filters — matching the Mass assessment picker
•The Position filter in the Mass assessment and Exams employee pickers works again
•The manager assessment scoring sheet no longer claims the vacancy profile has no competences
•Public share, consent and invite links are now rate-limited per endpoint, protecting them against token guessing
•Demo data seeding works reliably on fresh installations
1.13.15
July 6, 2026
1.13.14
July 6, 2026
Fixed
•Normalized AI candidate scores now map correctly onto your company's assessment scale, and the divergence indicator compares scores on the same scale — no more false divergence flags
•Header counters on the Vacancies and Talent Market lists show the true total instead of only the currently loaded page
•Dismissing a failed AI profile generation banner no longer affects a generation started in another tab
1.13.13
July 5, 2026
Added
•Create Vacancy now builds on your library — pick a Position, then Specializations, Grades and Division from dependent selects, and Competences & indicators pre-fill from the matching role matrix
•AI candidate scores can be viewed raw or normalized onto your company's own assessment scale, with a unified verdict across resume-only and full analysis modes
•Dictionaries gain Source and Status filters, a sort index column, filtered item counters, and per-company activation of built-in items
Changed
•Competences & indicators on the vacancy page are now edited inline — the dialog is reserved for AI generation
•Long vacancy descriptions collapse behind Show more across all Overview fields
•Item counters on Development, Talent Market, Exams and Recruitment lists now respect active filters
•Changing or resetting a password now signs out every other session, and sign-in endpoints are protected against brute-force attempts
Fixed
•Viewing the Analytics page no longer consumes credits — only explicit exports are charged
•Adding a new interview round asks for confirmation before it lands
•Failed vacancy profile generation shows the error inline with a Dismiss button instead of silently disappearing
1.13.12
June 24, 2026
1.13.11
June 24, 2026
1.13.10
June 22, 2026
1.13.9
June 22, 2026
1.13.8
June 20, 2026
1.13.7
June 20, 2026
1.13.6
June 20, 2026
1.13.5
June 20, 2026
1.13.4
June 20, 2026
1.13.3
June 20, 2026
1.13.2
June 19, 2026
1.13.1
June 19, 2026
1.13.0
June 18, 2026
Added
•AI Insights on the candidate card flags a stale analysis the moment a fresh CV is uploaded — a "Resume updated — re-analyze" banner re-runs resume-only (20 credits) and archives the prior run on success, so recruiters never act on a verdict that no longer reflects the candidate's resume
•Resume-only AI Insights now ships clickable citation chips — each per-competence quote links straight to the matching block in the parsed-resume editor (auto-expanded, scrolled into view, ring-highlighted) so a recruiter can verify the AI's claim in one click
•AI analysis in-flight card renders all six pipeline stages with live progress (resume-only greys out two stages it skips), polls every three seconds and exposes a Cancel button — cancelling before the first LLM call refunds 100 % of the credits
•Candidate card AI Insights gains a split-button: primary fires Resume only (20 credits), the chevron dropdown adds Resume + interview (40 credits) with a tooltip explaining when the full-mode option is unavailable
•Consolidated XLSX recruitment report rebuilt around a 4-sheet layout — Summary ranking with computed recommendation, Competence Matrix with divergence highlight, per-candidate Detail sheet, and an Incomplete-data sheet; the report wizard now exposes a Hiring-Manager audience that swaps raw process findings for a neutral reframe
•Vacancy candidates table gains per-row Manager % / AI % match, a new Divergence column with an amber badge linking to Canvas pre-filtered to that candidate, a tooltip preview of the top-5 divergent competences, and a By Manager / By AI / Custom sort control that persists per recruiter
•Recruitment Canvas gains a full Versions panel — vacancy-scoped audit timeline with evaluator / candidate / date / "only divergence-triggering" filters and a Revert button on Manager scores, plus a conflict modal when two recruiters edit the same row in parallel
•New Assessments tab on the vacancy page — Compact matrix with side-by-side Manager / AI cells, click-to-footer evaluator breakdown, per-candidate AI vs Manager %-match, and a per-tenant divergence threshold setting
•Resume-only AI analysis lands on the candidate card with a top-up upgrade to full (+20 credits within 30 days), bulk fan-out from the vacancy candidates table, an analysis history modal, and [resume only] / [full] sub-badges so recruiters never confuse a pre-screen with a full assessment
•Development plans cap at three active per employee — a fourth Create now returns a clear "limit reached" error instead of silently piling on plans
•Talent Market lets employees React on Published cards, notifies the managing recruiter, and surfaces a Reacted chip on the list and preview
•Talent Market Candidates block now shows the last-match timestamp with a one-click refresh for managers
•Assessment Results block is now visible only to the assessee on a Done assessment — peers and subordinates no longer see verdicts on assessments they merely participated in
•Mass Exam list gains a title-search + multi-status filter bar matching the Development plans page
•Mass Exam questions can be edited and removed in place while the exam is still in Draft
•Mass Exam Title, Description and Deadline can be edited inline on the detail page until the exam reaches a terminal status
•Employee profile Goals KPI tile now explains the formula in a (i) tooltip — average completion across open Development plans
•Development plan Progress Timeline captures a version snapshot when the plan moves to On review, and tooltips now render the human status label instead of a code
•Development plan email notifications cover the full lifecycle now — reviewer on submit, owner on return, both parties on completion, both parties on post-launch cancellation
•Talent Market removals on a Published card now email the dropped employee ("You are not considered more: [Title]"); removals on Draft cards remain silent
•Sign up to HRPulsar through a moderated request — verify your email, the team approves your tenant in Slack, and a one-shot magic-link logs you in with no password gymnastics
•Try HRPulsar before signing up — the public sandbox now opens straight onto a populated workspace (8 divisions, 22 competences, 40 employees, 7 assessment cycles, 4 mass exams, recruitment funnel with vacancies and AI-analyzed candidates) so every section lands on real content
•HRPulsar can be demoed locally — a self-hosted demo stack via `make demo` runs on isolated ports so a partner can spin up a populated tenant without touching production
•Sandbox visitors who like what they see can save their email straight from the demo banner — it becomes a moderated signup request the team reviews in Slack
•Personal data redaction now covers credit card, IBAN, US SSN, UK NIN, Spanish DNI and Italian Codice Fiscale on top of the existing identifiers
Changed
•Recruitment onboarding wizard is now a non-blocking sticky banner across `/recruitment/*` — recruiters can keep working while the stepper rides along and a Skip-tour button retires it for good
•Competence matrix single-grade view swaps the narrow table for a list layout with colored level chips, a salary pill in the section header, and a 32×32 delete column — easier to scan, faster to edit
•Talent Market match drawer now opens through a dedicated chevron icon, labels the spec row "Current position" when an employee qualifies through their present role, colours per-competence chips by the card threshold, and walks an employee viewer through a clean read-only view that hides every write affordance
•Talent Market Appoint candidate now requires a confirm-dialog click so a stray button press cannot pin a candidate; appointment and cancellation emails skip the manager copy when the appointee manages their own division
•Date picker across the platform — digit-only yyyy-mm-dd input mask, header buttons that switch the calendar to month or year pickers, and weeks now start on Sunday
•AI vacancy profile generation runs in the background with an ETA banner and a Cancel button — recruiters can leave the page and come back; the matrix modal lets them keep / drop per-competence rows, edit groups, competences, indicators and questions inline, and the AI prompt now incorporates Requirements / Responsibilities / Conditions plus any uploaded attachments and asks for ≥3 indicators and ≥3 interview questions per competence
•Vacancy detail Overview now shows Requirements / Responsibilities / Conditions blocks and edits them inline so the brief stays editable end-to-end
•Mass Exam lifecycle is unified across list, detail and Change-status — Draft → Sent → In progress → Completed with matching chips and per-status action buttons; the list groups active first then completed then cancelled
•Talent Market Candidates table and Add/Change picker now render the shared employee summary line — position under the name, status chip when the employee is not active — so an "on leave" candidate is visible everywhere their name appears
Fixed
•Recruitment AI analysis now keys assessments by the vacancy profile competence slug so the Compact matrix is populated for every interview-analyzed candidate; every analyze path bumps the interview version for consistent edit-conflict detection
•Invitations: Send invitation requires Division + Position before submit, and accepting a Manager invitation with a pre-selected division installs the new user as that division's manager
•Division edit: assigning Manager / Deputy Manager surfaces a "promoted to manager" toast so the auto-upgrade is visible without leaving the page
•Recruitment: Create vacancy redirects to the saved row immediately and runs profile generation in background — no more frozen Saving spinner
•Recruitment: Delete vacancy confirms with a single button instead of the type-the-title input — the type-to-confirm pattern was overkill for the action
•Recruitment Stage select on the candidates table now renders the stage name instead of the raw UUID; candidates can be removed from a vacancy directly in the list and the candidate-detail Back button returns to the vacancy that opened it
•Division detail and Add-employee dialog selectors now show the human title for Position, Grade and User instead of leaking UUIDs into the trigger label
•Compensation tab now accepts the Manager role on employees within the manager's division subtree (view / add / edit / delete) and returns a clear scope-violation error outside it
•Employee profile KPI tiles read correctly — Status "since" tracks the last status mutation, Tenure / "joined" anchors on first auth, the Assessments tile spells out N open, and Goals progress only counts non-terminal Development plans
•Development plan Return action now requires every item to carry at least one material (matching Send) and rejects past-deadline attempts with a clear server-side error
•Development plan Send button stays enabled past the deadline — the backend "Deadline is in the past" error now shows in a snackbar instead of being silently disabled in the UI
•Development plan Change-status modal: hovering the disabled In progress option exposes a tooltip explaining manual transition is not allowed
•Development plan materials seeded from a (specialization, grade) link now include only materials at or below the target skill level per competence — no more overshooting prep content
•Assessment Evaluation criteria sheet reopens with the previously saved Passing score for recommended grade instead of resetting to 75; the disabled In progress option shows a tooltip; the Change status trigger renders the picked status label
•Assessment Detailed results "Percent for Skill level" now reflects calibrated Totals, and Cancel calibration refreshes the block without a full page reload
•Mass Exam Change status menu now sends the correct field and hides itself on terminal Completed / Cancelled exams
•Mass Exam Send action rejects a deadline in the past with a clear error; the Details block highlights the deadline date in red once it passes
•Mass Exam Title is required on Create; the legacy "End date" label is now "Deadline" and a pencil control on the detail page edits it inline
•Mass Exam choice questions require ≥2 options and ≥1 correct (single choice exactly one) — the Add question button stays disabled until those hold, the Type field shows the human label, and single choice options behave like radios
•Mass Exam Pass Mark is now one-per-test — duplicates are rejected, a delete control replaces Add once one is configured, and removing it restores the empty placeholder
•Mass Exam Assign employees opens a searchable multi-select; the Results table links to the employee profile when the viewer can see it; assigned employees see the sent exam in their own /exams list
•Dictionaries: deleting a Specialization or Grade now blocks with a clear 409 (and the confirm dialog enumerates the references) when assessments, assessment groups, Development plans or exam pass marks point at it, instead of returning a generic database error
1.12.2
June 9, 2026
Fixed
•Recruiters can now open the Manager assessments section straight from a candidate card — create rounds, score competencies, and invite external evaluators without leaving the page
1.12.1
June 9, 2026
1.12.0
June 9, 2026
Added
•New canonical Recruitment flow — Add candidate modal with manual entry or bulk upload (up to 50 resumes × 10 MB per batch), live duplicate-email detection so an active candidate's email can't slip in twice, an Import preview that shows which files will create new records vs link to an existing one, and the candidate is dropped on the first non-terminal stage of the chosen vacancy
•Vacancy candidates table rebuilt around the canonical schema — 10-column layout with inline stage select, manager / AI score divergence flag, AI verdict popover with key strength / key risk / mitigation, and rows sorted with terminals at the bottom and highest manager score first
•Inline parsed-resume editor on the candidate card — each section (Summary, Skills, Experience, Education, Languages, Certificates) edits in place with optimistic concurrency so two recruiters can't silently overwrite each other
•Per-vacancy stage funnel — drag-and-drop Manage stages drawer (rename, reorder, pick the stage type, restore-default) with a guard that refuses to delete a stage that still has candidates on it
•Soft-deleted candidates can re-import the same email once their old record is archived — no more permanent dedup lock on a former candidate's address
Changed
•GDPR erase now also drops the underlying resume / interview media blobs from object storage so a Forget-Me request leaves nothing presignable, and blanks the canonical Candidate row alongside the linked Person
Fixed
•Candidate list shows externally-sourced candidates (CVs bulk-uploaded without a Person record behind them) and global search matches against both the canonical full name / email and the linked Person fields
•Stage moves on the vacancy candidates table refuse to silently clobber each other — two recruiters touching the same row get a clear conflict instead of a last-writer-wins outcome
•Bulk-upload modal poll no longer leaks another recruiter's in-flight batch into your vacancy's progress view
•Vacancy funnel save refuses an all-terminal funnel or a payload with duplicate stage codes — the form returns a precise error instead of persisting an unworkable lineup
1.11.1
June 5, 2026
Fixed
•The `/blog` page and its image proxy no longer hang when the upstream blog source is unreachable — every fetch tops out at 5 seconds and falls back to an empty section instead of blocking the page
1.11.0
June 5, 2026
Added
•Talent Market now emails everyone who needs to know — publish goes out as "Matched" or "Not matched" so candidates see at a glance whether they qualify, candidates added to a Published card get the same notice, an appointment notifies both the employee and their manager, Completed and Cancelled card states reach the matched / not-matched bucket, and every link drops you straight onto the card (signing in mid-click preserves the destination)
•Shared employee summary line — the same Name + grayed Current position + status chip rendering now appears wherever an employee is referenced outside their profile (Assessment lists, Development plans, Talent Market matches), so a status like "on leave" is visible everywhere their name is
•Custom English date picker replaces every native date input across the Employee profile and Add-employee dialogs — `yyyy-mm-dd` everywhere, per-dialog min / max bounds, no more browser-locale surprises
•Deleting a specialization now lists every position and grade chain currently pointing at it (by name) and locks the destructive button until those references are detached — no more silent cascades
Changed
•Talent Market Candidates table splits the legacy nominated bucket into Matched / Not matched so recruiters can scan a card and see which rows actually fit; auto-pool stamps Matched, manual picks compute their status from the current matcher, Appointed is preserved
•Talent Market Experience match falls back to the employee's current Position when no qualifying past experience exists — the Match cell shows a greyed "has experience" and the breakdown drawer labels the spec row "Current position"; longer tenured matches still win and min-experience floors still apply
•Talent Market visibility for Employees is scoped to cards they're a candidate on (Draft only when appointed); every write affordance — pencils, Match%, Add / Change candidate, Appoint, spec / competence editors, status transitions — is hidden, "(it's me)" follows the viewer's own row, and the match drawer arrow only appears for self
•Talent Market Appoint candidate requires a confirm-dialog click so a stray button press can't pin a candidate, and Required competencies render as inline wrap-to-fit chips so the card-detail page stays compact
•Talent Market match cell now opens the breakdown drawer through a dedicated chevron icon (chips are no longer the click target) and the icon stays active for the row whose drawer is open; the drawer's Required-competences row colours the level percent green / yellow / red the same way the employee Competences tab does and surfaces a separate Match / Below chip against the card threshold
•Match cell chips colour Competencies and Experience independently against their own thresholds — "no assessments" and "no experience" are now muted instead of red, and the copy switches to "no assessments" when the card has no Required specializations
•Development Plans pick up Assessment-style status names ("On review", "Done"), auto-promote from Sent to In progress on the owner's first item tick (manual transition is disabled in the Change Status dialog with a tooltip), tighten Returned so it can only go to Submit-for-review or Cancel, and the list + employee Development tab now sort active rows first by Created, then Done by completion date, then Cancelled by cancellation date
•Development Plan specialization and grade are editable only in Draft — pencils sit next to each value, the bottom Change button is gone, and the dialog mirrors the Jira flow ("Development specialization & grade" / "All items will be replaced with the new specialization & grade set"); saving rebuilds items + materials from the new (spec, grade) link
•Assessment lifecycle: manual Sent → In progress is no longer allowed — the auto-flip from the first submitted answer is the only path. Details page hides the In progress button on Sent, the Change status / Change status (all) modals grey the option with a "Manual transition is not allowed" tooltip, and the backend rejects single + bulk attempts with a dedicated reason
•Employee profile Experience tab enforces Company / Position / Start / End on Previous employment (past-only, Start ≤ End) and Start ≤ End on Current employment
•Employee profile Education tab requires Institution / Degree / Field of Study / Start, requires Title + past-only Completed date on Courses, and the Courses dialog now picks Competences developed via the same group-tree picker used by Assessments
Fixed
•Compensation payouts above the previous ~$21.4M ceiling (INT32_MAX cents) save instead of returning a 500 — payouts in JPY / IDR / COP or annual share grants now fit
•Editing a compensation record no longer 500s with a half-saved row — the audit event stores date fields as ISO strings into JSONB instead of raw `datetime.date`
•Compensation Add / Edit rejects an end date that lands before the effective date (422 + inline error) instead of saving an invalid range
•Talent Market Required Competencies are rebuilt from the union of current Required Specializations on edit (grade change) and removal — not just on initial add
•Talent Market card detail drops the duplicated "Cancelled: yyyy-mm-dd" row (the Status badge already names the terminal state), keeps the "Completed: yyyy-mm-dd" row, and renders "No description" on terminal cards while keeping the italic "No description yet" + pencil on active cards
•Talent Market Publish refuses cards whose End date has already slipped — the Draft → Published transition surfaces "End date is in the past" instead of failing the request later
•Development plans refuse to launch when the deadline already elapsed (Draft → Sent returns "Deadline is in the past" with a tooltip on the Send button), Review → Returned applies the same gate, the progress percent recomputes when admins add items after launch (no more stale ratios), passed items + their materials are read-only with the API returning 403 on bypass attempts, and item order is stable — new items always land at the bottom regardless of the value the client sent
•Assessment lifecycle emails (Evaluate yourself / Evaluate your employee / Evaluate employee / Your assessment has completed / Your employee assessment has completed) now deep-link to the assessment page instead of the generic list, and the auth middleware appends `?next=` for unauthenticated visitors so the login form bounces back to the link after sign-in; cancellation also reaches pending peer / subordinate / external reviewers, and those reviewers now receive their own "Evaluation cancelled" copy instead of the manager template
•Detailed results calibration pre-fills the Total Select with the auto-computed answer, the trigger renders option titles instead of UUIDs, the Results table collapses Avg Score + Calibrated into a single calibration-aware Avg Score column, the per-level popup follows the calibration override, and Save only sends Totals that actually moved off baseline
•Evaluation criteria sheet reopens at the default `Passing score for recommended grade` (75) on every open instead of rehydrating the stored value — the chart still consumes the DB value, only the edit form resets
•Mass Assessment action menu "Sent" with every child past-deadline now shows the "Deadline is in the past" toast instead of a generic "No assessments updated"
•AI competence generation: the Refine request panel is no longer hidden behind the Indicators list's sticky counter and the Expand-to-detailed-form toggle no longer trips the "This page couldn't load" reconciler crash — the panel lives in its own DOM subtree below the suggestions list
•AI generation banner, per-target session badges, the competence-drawer status, and background task progress all keep polling regardless of WebSocket connectivity so finished / cancelled sessions update without requiring a page refresh
•Assessments list filters (search + Type + Status) are now applied server-side and reset paging to page 1, so the "X of N" counter and pager follow the filtered slice
•Assessments filter dropdown and Change status / Change status (all) modals display readable status names ("In progress", "On review", …) instead of raw codes
•Division detail page no longer crashes when opening the Add-employee dialog — the positions fetch unwraps the paginated envelope
•Specialization matrix save returns the freshly persisted snapshot — bulk upsert now mutates the relationship so the editor no longer renders an empty matrix until a refresh
•Recommended grade chart hides grades whose required skill level sits above what the assessment actually covers — a Middle-targeted run no longer paints a phantom Senior bar fed only by Basic + Intermediate answers
•Employee Competences tab keeps the latest lower-level assessment visible under Other competences when the employee's position is bumped above the assessed level — a Junior → Middle promotion no longer hides the existing Basic result
•The `/blog` HTML now goes through DOMPurify with an explicit allowed-URI scheme list, and the Confluence attachment proxy parses the requested path with a strict origin + pathname recheck — extra defence in depth on a public page that renders external content
•Login redirect rejects backslash-prefixed `next=` paths that some browsers normalise into a protocol-relative URL
1.10.0
June 3, 2026
Added
•Schedule interviews from a candidate card and attach the recording: chunked uploads up to 500 MB survive a refresh, audio / video / text-transcript all work, the in-app player has speed control, and an antivirus pass runs on every file before it becomes playable
•Each candidate now gets a tailored interview question set generated by AI from the vacancy competency profile: per-round regeneration skips what you've already covered and probes the blind spots, edit any question by hand or pull a fresh one from an indicator, export to PDF in three layouts (Compact / Full / Cards); sample mode keeps the feature usable when the balance is low
•Build your own evaluation scales (2–10 weighted levels) once per tenant, then bind a scale to each vacancy — the scale snapshots at the first score so live edits never rewrite a closed evaluation
•Run a structured manager evaluation per round (pre-interview, interview-N, final) with multiple evaluators scoring in parallel: divergence between sheets is highlighted, indicator scores roll up into the overall, autosave protects the draft, and the Manager score in the candidate table follows the last completed round
•Invite external evaluators by email — they open a dedicated link, accept consent, fill in the same form, and submit; tokens are SHA-256-hashed in the database, per-IP rate limits and a brute-force deny-list protect the public page, and expired or revoked links surface a friendly error page
•Division detail Employees block picks up Position and Grade filters that AND-combine with the existing Specialization plates: active filters become removable chips, the header carries an "X of Y" counter, and Clear all appears once 2+ filters are active
•Add an employee straight from a division: pick an existing person (with a cross-division confirm) or create a new one with the division pre-locked — no detour through the Employees list
•AI competence generation modal now lists every specialization + division with linked ones pre-checked, marked, and tooltip-explained; the result preview puts existing items side-by-side with new suggestions and blocks Save when nothing new came back
Changed
•Vacancy page collapses into a single inline-edit layout (Overview + Competences & indicators + Candidates) with Position-linked Specialization and Grade multi-select and a foldable Description
•Employee tables across positions, divisions, and specializations now share a single 7-column row (Name → Position → Specialization → Grade → Division → Status → Hire date) with sticky headers, tooltip-on-overflow, and a wider drill-down modal so nothing wraps
•Assigning or removing a division manager / deputy keeps the user role in sync: losing the last division you manage auto-downgrades you to Employee (Admin and Platform Admin are preserved)
•Generating positions with AI now drops you into the specialization AI-generate page with the position name in a banner and grade locked; an active-session badge lights up the position and specialization rows so you can find an in-flight matrix at a glance
•Generate learning materials with AI gets a full context picker: indicators per level, the full specializations + divisions lists with linked-row highlighting and search once the list crosses 15 rows, sibling competences, a company-description toggle, and a live materials/context summary
•AI matrix Divisions picker shows every tenant division with linked ones pre-checked, an "(N selected, K linked)" counter, plus search and Show-linked-only once there are 15+ rows
•Competence detail page is rebuilt with shared level colour tokens (Basic / Intermediate / Advanced / Expert) across Indicators and Materials, per-level counters and a "N materials for M indicators" gap warning, jump-to-section nav, a more visible Generate-with-AI button, suspicious-text warnings, click-to-edit Weight with a tooltip, and a Context badge with Reset on the Materials-by-context panel
Fixed
•Vacancy edit with Library refs no longer crashes on save (UUIDs are stringified before write)
•Hitting AI Generate while another session is in flight now opens a clear decision dialog (Open active / Cancel and try again) instead of silently bouncing you elsewhere
•The Generate button on Competences shows a Checking session… state while it asks the server, rechecks before opening the confirm dialog, and the drawer keeps polling for ~30s after Start so it catches sessions that land a beat late — no more empty "no active session" panel
1.9.5
May 31, 2026
Added
•Inline edit Match% on Draft Talent Market cards: a pencil affordance flips the value (50–100) without leaving the page; locks once you Publish
•Click any Match cell in the Talent Market Candidates list (or the Add/Change picker) to open a per-candidate breakdown drawer with one row per Required Competence and per Required Specialization
•Vacancies now carry a full lifecycle: kebab menu on every row + on the detail page, Edit / Archive / Restore / Delete dialogs, an Archived filter on the list, and a 412/428 guard against concurrent edits
•Assessment lifecycle notifications land in both email and the in-app bell: per-role Evaluate-yourself / Evaluate-your-employee / Evaluate-employee on Sent (and on a late-add), `Your assessment has completed` on Done, and matching cancellation copy on Sent / In Progress / On Review cancellations
•Detailed results gains a per-indicator Total calibration: reviewers pin a Total directly on each indicator and the per-competence percent / level inherit the override; a `calibrated` chip surfaces every pinned row; participants are locked out of edits while calibration is open
•Create / Edit Vacancy adds optional Library refs — multi-select pickers for Positions, Specializations and Divisions — that seed the vacancy competence matrix from your company grade ladders
•Vacancies accept manual Requirements / Responsibilities / Conditions text plus per-vacancy file attachments (PDF / DOCX / PPTX / XLSX / TXT / MD / CSV / JSON / images / ZIP / EPUB, 25 MB / 10 files); the Profile tab carries an upload widget that feeds the AI prompt
•Vacancy → Candidates gains a Quick candidates section: separate Recruiter and AI scores, a Δ-marker when they diverge, source / experience / current position fields, and an inline Add candidate dialog — no full Person flow needed
•Vacancy competence list — manual library picks, library inheritance, or AI-proposed — with a replace-set save flow
Changed
•Talent Market card detail hides the Dates row in Details on Completed / Cancelled cards — the terminal-date row right below already carries the timestamp
•Required Specializations block on Talent Market cards is now plural and asks for an explicit confirmation when you add a second spec, edit an existing one, or delete one — because Required Competencies are recomputed on save
•Talent Market Match cell renders real Competencies % and Experience years with green / orange / red / "no experience" colour rules, and the pool plus candidate list rank qualifying-first then comp-only then exp-only
•Recommended grade chart appears at On Review (was Done only), supports Employees' current positions and Specialization-All-grades, and per-grade match % is the mean of competence percents across the levels up to the required one
•Detailed results hides skill levels above each competence's required level so only the indicators actually evaluated render
•Criteria sheet drops the Passing score block when criteria is Individual competences, labels it `Passing score for recommended grade` for Target / Current positions, and the (i) tooltip + formula toggle are gone
•Active assessment cap per assessee lowers from 5 to 3; Mass assessment does a partial creation when only some employees are at the cap and rejects the launch as a conflict when every employee is full
•Draft → Sent transition with an elapsed deadline returns 409 instead of 400 — the request itself is valid, the stored deadline is the conflict
•Grouped Assessments list sorts active rows first by Created, then Done by Completed, then Cancelled by Cancelled date — matching the single-list ordering
•The Draft → Sent button label now reads `send` (imperative) instead of `sent`
Fixed
•Talent Market matcher projects assessment results to the required skill level using the per-level breakdown when a Done assessment ran at a higher level
•AI vacancy profile generation runs inline (no fire-and-forget Celery dependency) so the UI returns the saved profile or a real error
•AI profile generation tracks an active session and the vacancy detail page polls it — a returning user sees `Generating…` or `Last generation failed` without re-clicking
•Vacancy save no longer surfaces a spurious `If-Match required` toast (the cross-origin browser couldn't read the ETag; we now expose it)
•Delete vacancy from the list now refreshes the rows in place instead of leaving the deleted row visible until reload
1.9.3
May 23, 2026
Added
•AI matrix generation gets a new preflight context picker — positions linked to the specialization, tenant divisions, the company description, and existing matrix competences render as chips with × controls so you can trim what the LLM sees before generating
•Generate learning materials with AI from any competence: pick the skill levels, optional specializations, and how many ideas per level, then review the LLM's proposal and bulk-save the entries you keep
•Add multiple indicators at once on every skill-level block of a competence — one line per indicator, saved in a single transactional bulk insert
•Development Plans list grows the same filter bar as Assessments — title search plus a multi-select Status with a Clear button
•Specialization-All-grades assessments now render a per-grade match bar chart in the Results block from On Review onwards; the top-scoring grade(s) are highlighted as recommended
•Talent Market card Details block surfaces status transition commands per status: Draft → Publish, Published → Complete or Cancel; terminal statuses show nothing; Publish now also requires at least one candidate
•Detailed Results block on the assessment page surfaces every competence's required level, per-skill-level percent breakdown, and per-indicator role answers with author-tagged comments and a Total row
•Surveys now open in a side sheet with vertical answer options and a per-indicator comment field; answers autosave on every change and rehydrate when you reopen the sheet
Changed
•Date pickers and date display switch to English locale with `yyyy-mm-dd` format across the app
•AI competence library: group-level AI generation now offers an "Augment existing items in the group" toggle — keep fresh-only behaviour off, or extend existing subgroups with new competences and existing competences with new indicators (matched nodes render locked in the review tree)
•Assessment detail page swaps the Deadline label for "Completed dd.mm.yyyy" or "Cancelled dd.mm.yyyy" on terminal assessments, and renders an overdue Deadline in red on active assessments
•Talent Market list view always shows the action menu (no hover gate), hides it on Completed / Cancelled cards, collapses to Change-status + Delete with capitalised labels; the detail page gains pencil-icon inline edit for Title / Description / Dates on non-terminal cards
•Position detail page's Competences & indicators block renders as a compact two-level tree (group → competence with the required level badge); indicators sit behind a per-competence expander instead of a flat list
•Headcount drilldown modal on the Positions page widens and scrolls inside so every column stays legible
•Employee Experience tab's first block renamed Current Employment, captures Division/Position/Start with defaults from the card, and renders an elapsed-duration badge (days / months / years)
•Employee Competences tab rebuilt as two blocks — Current position competences (tree from the grade-specialization, % from the latest qualifying Done assessment) and Other competences — replacing the opaque radar chart
Fixed
•AI-generated learning materials now consume credits — the LLM round-trip is no longer free on Enterprise plans
•Competence overview on the employee page no longer fires per-assessment SQL: a single batch query handles every Done assessment regardless of count
•Stuck AI competence-generation sessions are auto-reaped after 15 minutes so an OOM-killed worker can never block a user from starting another generation
•LLM refinement input is stripped and sanitised against role-tag injections and "ignore previous"-style triggers before reaching the model
•AI competence generation "active session already exists" 409 now carries the live session id and scope, a global banner surfaces in-flight sessions from every page, and worker crashes flip the row to `error` instead of leaving it stuck as `running`
•PDP item checkboxes now toggle both ways for the plan owner in Sent / In progress / Returned, and for the division-manager reviewer (implicit reviewer when no reviewer is set) while the plan is Under review
•Talent Market Candidates block now auto-fills from the card's requirements — the last Done assessment per Required Competence at the matching skill level, average percent versus the card-level Match %, plus a Required Specialization position check
•Talent Market Candidates block renders the employee name as a link to the profile instead of the raw UUID
•Division detail page now lists assigned employees and the Edit dialog renders Manager / Deputy names instead of raw UUIDs
•Preliminary assessment results now recompute when a new respondent submits after On Review so Avg Score reflects the freshest answers while calibration overrides keep Percent and Level
•Manage grades dialog on the Specialization page now toggles already-attached grades (untick to detach) and is also reachable from the Company → Specializations row menu
•Specialization matrix with a single grade now uses the full table width, the indicator dialog groups levels with bullet markers and per-level scroll, competence titles open in a new tab, and tooltips snap in at 100 ms
•Add-competences dialog on the specialization matrix gains per-branch chevrons plus Expand all / Collapse all controls so deep trees stay manageable
1.9.2
May 22, 2026
Added
•Talent Cards now carry a card-level **Match %** (50–100) that drives the Required Competences matcher threshold across the card — editable until you publish, locked afterwards
•Specializations can be deleted from the Company → Specializations list and the specialization detail page; the existing guards against linked positions and grade chains still protect you from cascading damage
•Bulk-add competences to a group: pick multiple rows at once from a tenant-group dropdown and attach them in one go
•Assessment Results table shows each competence's required skill level inline; a new **Results by level** popup breaks the percentage down by Basic / Intermediate / Advanced
•PDP plans in terminal statuses now show the closing date — "Completed at" / "Cancelled at" — instead of the original deadline, in both the list preview and the detail page
•Add-material dialog: Format is a 17-option select, Type is a required 3-option select with icons (Theoretical / Practical / Feedback); each material row now displays the type icon
•Edit-employee dialog lets admins and managers rename a person — Name and Last name in a single update
Changed
•Required Competences picker rewritten as a tree with search and group-level select-all; existing rows are pre-selected and the action button reads **Change** once the block has entries, replacing the whole set in one save
•Activating a competence group now cascades both up the parent chain and down to every descendant; new children inside an inactive group default to inactive; Delete is hidden once the group is referenced by matrices, assessments, or development plans
•Edit-group dialog drops the activate-by-default checkbox and shows a read-only «Used by client» affordance with a tooltip when the group is in use elsewhere
•AI generation preflight modals now expose per-item context chips: for **whole-base** you can drop individual specializations, divisions, or existing tree nodes from the prompt; for **group** and **indicators** you can drop related specializations, ancestor groups, descendant subgroups, or sibling competences
•AI competence and indicator generation now requires at least 3 indicators per skill level and ships explicit per-level calibration guidance
•Evaluation criteria summary collapses Specialization + Grade into the Type line for target-position assessments, drops the auto-pick hint on single assessments, and hides the aggregated Competences list on mass-assessment parents that use current positions
•PDP items in Under review can be toggled by admin, platform admin, or the assigned reviewer; the Return button disables once every item is accepted
Fixed
•Required Specialization rows no longer render "Min. experience: 0 year(s)" when the value is `0`; deleting a row now asks for explicit confirmation
•Mass-assessment bulk-launch surfaces a clear "Deadline is in the past" error when every child fails the deadline guard, instead of a misleading "Updated 0 of N" success toast
•Editing a Work Experience or Course/Certification entry no longer fails when Competences developed keeps an existing competence — the link sync diffs the set instead of recreating every row
•Division managers see PDP plans in Draft within their managed subtree, matching the visibility admins already had when authoring plans
•PDP item completion is one-way for the plan owner: once a checkbox is ticked it locks (admin/reviewer keep full toggle in Review)
•AI competence generation no longer fails with "AI returned an invalid response" or a false "Background worker offline" banner during long runs
•Competence cascade operations are tenant-scoped end-to-end, so a stray cross-tenant node can never be silently activated or deactivated through the tree
•PDP plan owners can submit a Returned plan back for Review and toggle item checkboxes in Sent / In progress / Returned
•PDP material modal aborts an in-flight file upload when you click Cancel or outside the dialog, so the next open is clean instead of stuck on "Uploading…"
•Assessment calibration now refreshes Percent, Level and the overall result from the calibrated score and keeps the override across the on-review → done transition
•Add-indicator and Add-material dialogs show the selected skill-level name instead of the raw value
•Competence page «Materials by context» dropdown shows the selected specialization name
•Employees list search hits the backend and finds matches across every page, not just the visible one
•Recruitment AI profile generation works again — backend route now matches the frontend callers
1.9.0
May 19, 2026
Added
•AI competence generation preflight: a new dialog lets you drop context categories before the LLM call — Specializations, Divisions, Company description, the existing competence library, sibling competences, or existing indicators — and attach a free-text refinement note. Available for whole-base, group, and per-competence indicator generation
•Specialization-matrix brief grows a "Generate indicators for existing competences" opt-in; matrix sessions emit a deduped "ready" toast with an Open review action so background work doesn't get lost
•Expand all / Collapse all on the Competence DB tree and the Assessment competence picker — no more clicking through dozens of groups one by one
•Assessment participants are clickable: when the viewer is allowed to open a teammate's profile, the participant name becomes a link to that employee's page; otherwise it stays plain text
•Employees can now keep their own Education and Courses entries up to date without HR babysitting — every other field on their profile stays admin/manager-only
•Division detail page shows employee count per specialization (click to filter the Employees block) and gains an inline Edit dialog for name, description, parent division, manager, and deputy manager
•Talent Card create/edit asks for Start date (required, default today) and End date (optional); list preview and detail page render the period in plain language ("since DD.MM.YYYY", "DD.MM.YYYY – DD.MM.YYYY", "Closed: DD.MM.YYYY")
Changed
•Assessment status workflow exposes the On Review checkpoint everywhere — list-page Change Status modal, the In Progress action button (Done → On Review), and the On Review action surfacing Done / Cancelled
•Titles and descriptions across Assessment, Mass Assessment, PDP, Talent Card, and Mass Exam forms now enforce sensible character limits (100 / 250) on both sides
•Assessments and Talent Market list filters for Types and Statuses became multi-select dropdowns — pick any combination instead of being locked to one value at a time
•Talent Market list grows the same filter block as Assessments: title search plus Clear
•Positions list surfaces AI-generated drafts in a dedicated card at the top so they get reviewed before the approved-positions table
Fixed
•Dashboard pages stay browser-translatable again — the auto-translate guard is now scoped to the AI generation drawer only, instead of the entire dashboard
•AI generation drawer no longer flashes a false "worker offline" banner during long LLM calls — it waits for three consecutive health-check failures (~45 s) before raising the alarm
•AI Generate matrix Apply now surfaces a warning when nothing was actually persisted, instead of a misleading "Matrix applied" toast
•Specialization matrix UI polish: salary becomes a bordered pill, grade removal goes through a confirm dialog, cells tint by skill-level rank as a heat map, and competence rows missing indicators or development materials at assigned levels are flagged
•Specialization matrix gets a proper Add-competences modal with the full group tree, group-level cascade checkboxes, breadcrumb search, and a per-row link to the competence detail page — replacing the legacy inline dropdown
•Launching an assessment refuses an already-elapsed deadline with a clear error so it stays in Draft until the operator extends the date; bulk launch lists which assessments were skipped and why
•Positions list status menu respects the lifecycle: a closed position only offers "Reopen → Active" instead of every other status
•Inline-edit fields on entity detail pages — assessment title and deadline, position title, headcount, and description — now commit on Enter
•Talent Market Add candidate: searchable employee picker showing the computed match score and a matched / not matched status, with bulk attach, replaces the old UUID input
•Assessment results endpoint now respects the same access scope as the rest of the assessment views — admins and participants are unaffected
1.8.2
May 18, 2026
Added
•Specialization-matrix cells deep-link straight to the competence detail page; coming back via "Back to matrix" preserves spec and grade context, AI indicator sessions launched from there reuse the spec / grades in the prompt, and any indicator change on a referenced competence prompts you before saving or before matrix Apply
•AI matrix brief form (specialization page and Position AI card) persists your typed brief locally so a refresh or remount doesn't lose your work; a Clear draft button wipes it on demand
Changed
•Position pages: list shows clickable specialization and grade, with inline "Set specialization" / "Set grade" CTAs when missing; the Overview block grows its own Edit button; the Competences & indicators block surfaces a state-aware CTA instead of a generic empty hint; deep-links between positions, specializations, and matrices preserve breadcrumb context
Fixed
•AI generation regenerate / refine no longer fails with a server error when a parallel session is already running — the conflict resolves to a clean message
•AI generation refinement panel re-hydrates from the last submitted form when you reopen the drawer, refresh the page, or hit Try again; Clear data wipes both the form snapshot and the composed prompt
•Participant completion now mirrors the questionnaire's skill-level cascade — answering every visible question actually flips you to Completed=Yes even when the assessment uses skill-level scoping
•Specialization-matrix AI generation no longer burns retries on a degenerate prompt: it short-circuits to a clear "insufficient data" message when the spec has no grades, and realistic matrices now fit (LLM context bumped)
•AI generation failure messages now include the underlying error type and a short detail snippet so the cause is distinguishable from the UI
•Position page: when AI Generate runs but the position has no grade set, the success toast points you to the specialization page (the only place the saved matrix is visible), and the matrix-empty state surfaces a "set a grade or view on specialization" hint
•Live AI generation sessions (your own and other tenant admins') light up the affected group, competence, specialization, or position row with a clickable badge that opens the drawer; AI Apply routes you back to the entity it just populated
•Competence detail page renames the AI button to "Augment indicators (AI)" when at least one indicator already exists, and indicator generation no longer errors out on specs without grades
•AI drawer stops surfacing a false "worker offline" banner while a worker is busy with a long generation
•Auto-translation extensions (Google Translate, etc.) no longer break the dashboard — the guard is scoped properly
1.8.1
May 15, 2026
Changed
•Position detail page now supports inline editing for Title, Description, Headcount, and Status, with one-click links from Specialization and Grade in Overview straight to the matrix
•Assessment detail tightens its action buttons: "Preview questions" lives in the Details block as soon as criteria and scale are picked, and "Take this assessment" is hidden in Draft so reviewers don't try to evaluate before the assessment is published
Fixed
•Regular employees can no longer see other people's Draft assessments — list, grouped list, and lazy-loaded group cards now respect the same access scope as the single-assessment view
1.8.0
May 14, 2026
Fixed
•Recruitment vacancy detail page renders correctly for fresh tenants — the candidates section no longer breaks into a server-error screen
•Public consent links and shared report links work for recipients who aren't signed in — those routes are properly anonymous instead of bouncing visitors to the login page
•Creating a new vacancy no longer kicks you back to the login screen after saving — a hidden background-fetch race that mistook a normal navigation for a logout is fixed
1.7.5
May 13, 2026
Added
•Talent Market cards now collect Requirements as two structured blocks instead of free-text notes: Required Specialization (specialization + grade + optional minimum years) and Required Competencies (competencies with skill levels and a shared % match). Picking a specialization auto-fills its competences from your career ladder so you don't re-type the matrix
•AI-generation drawer for competence indicators gains an explicit Cancel button with a confirm step, so discarding generated suggestions is a deliberate choice
•AI-generation drawer header turns the target competence title into a link back to its detail page — one click and you're there
•Bulk select / deselect for generated indicators inside the AI-generation drawer
Changed
•"Add to library" inside the AI-generation drawer now works for single-competence indicator sessions (previously the action buttons stayed disabled). Choose to publish indicators immediately or add them as drafts, and the drawer takes you straight to the updated competence page
•"Generate indicators (AI)" button on a competence page now stays clickable while another AI session is in progress: it shows the live status and opens the active session drawer, with a tooltip explaining why a new generation has to wait
•Talent Market cards can only be published once at least one Required Competence is set; published cards lock both Required blocks to keep candidate matching stable
1.7.4
May 13, 2026
Fixed
•Multi-select filters across the app (Divisions / Statuses / Positions / Specializations / Grades) now record every consecutive pick — earlier selections are no longer silently dropped when you tick a second value
1.7.3
May 13, 2026
Added
•Specialization page now exposes a full cold-start path for a brand-new specialization: an Add Grades modal picks grades from the dictionary, matrix columns are drag-and-drop sortable, and salary ranges edit inline directly in the column header
•AI Generate matrix brief now asks for the grades you want covered and pre-creates the `Specialization × Grade` pairs from the brief, so a blank specialization can be configured end-to-end via AI in one pass
•Position AI Generate prefills the specialization's grades and locks the position's own grade as required, so applying always lands a matrix the Position page can render
Changed
•Matrix columns now follow the order you set on the Specialization page (not the global dictionary order) — drag-and-drop reorder is what every page reads back
Fixed
•Multi-select filters on the employees list keep the dropdown open between picks so you can select several values in one go instead of having to reopen after each tick
1.7.2
May 12, 2026
Fixed
•Admins linked to a plan's employee see the full Development Plan transition graph again — single-tenant demo accounts and the e2e lifecycle walk no longer get stuck on Draft
1.7.1
May 12, 2026
Added
•Assessment results now show an overall percent next to the Results heading on completed assessments, computed as the average of per-competence percents
•Assessment lifecycle gets an On Review step between In Progress and Done so calibrators can adjust scores before the assessment is finalised; the system auto-enters On Review once every participant has answered
•Company logo card supports drag-and-drop and a paste-by-URL flow, with the right MIME type sniffed from the bytes so images render correctly after upload
•New Position dialog now lets you add a Specialization or Grade inline — no more leaving the form to seed a dictionary value
Changed
•Development Plan workflow simplified to Draft → Sent → In Progress → Review → Done with Returned and Cancelled side states; the Awaiting approval / Approved hops are gone, and an overdue plan is now a red-deadline cue rather than a separate status
•Development Plan detail page now shows the assigned employee a single "submit for review" action that activates once every item is ticked
•Item checkboxes on a Development Plan can only be ticked by the assigned employee; the first tick on a Sent plan auto-promotes it to In progress
Fixed
•Development Plan list rows show the assigned employee, hide the action menu on completed plans, and highlight past-due deadlines in red
•Development Plan attachments open inline again — file links now use a fresh signed URL that doesn't expire mid-session
•Development Plans cannot be sent until every item has at least one material — the Send button stays disabled with a tooltip until the plan is complete
•Development Plans in Done or Cancelled are fully read-only: no new comments, no item check-offs, no editing
•Regular employees and managers no longer see Draft Development Plans in the list — those stay in the admin authoring queue
•Plans entering Review freeze the items+materials block for the assigned employee so admin edits during review don't disturb the snapshot
•Deadline pickers on Assessment, Mass assessment, Development Plan and Mass exam refuse dates in the past, both in the form and on the server
•AI Generate matrix picker shows a styled "Choose files" button with a clear file-count counter instead of the un-localized browser file input
•Assessment per-competence percent now follows the spec algorithm (per-role indicator average → weighted level percent → mean across skill levels → mean across participating roles); existing Done assessments are recomputed in place
•Deleting an employee with timeline events no longer crashes — the events are cascaded out cleanly
1.7.0
May 10, 2026
Added
•Position pages now inherit salary range and competence matrix from the `(Specialization × Grade)` pair — the detail page shows a live matrix banner with a deep-link back to Specialization when the pair is missing a profile, the headcount line gets a vacancies pill, and the Overview block adds a salary row plus a `●●●○○` headcount visual
•One unified Edit dialog drives both Position creation and editing — pick a Specialization, the Grade list cascades, the Title auto-fills with `Spec Grade`, and a salary preview from the chosen pair lets you sanity-check before saving. Editing a position with assigned employees raises a clear impact warning if the profile changes
•Positions list gets three new filters — lifecycle status, "has vacancies" (positions with open headcount), "matrix unconfigured" (Spec × Grade pair without competences) — alongside a Matrix column with a ✓ / ⚠ icon and a client-side group-by toggle (None / Division / Specialization)
•Specialization detail page reorganises into four tabs — Grades & matrix / Positions / Employees / AI history — with shareable URLs. Employees tab aggregates everyone in any Position of the specialization, in the same row format as the Position drill-down
•Specialization Grades tab bundles the competence matrix and per-grade attributes into a single Builder so operators no longer hop between sub-pages
•AI competence generation gets a tri-state per-suggestion review (Accept / Edit / Reject) with a pending-count banner, Accept-all and Reject-all bulk actions, and inline title rename — your renames flow through to the materialised competence tree on apply
•AI Generate page replaces the static "Status: running" block with a live streaming-progress checklist (Thinking → Grades → Competences → Indicators 1/N → Matrix) driven by WebSocket events
•AI history tab on Specialization detail lazy-loads recent generation sessions with initiator, brief, counts and status, plus a one-click «Repeat» that spawns a child session — Repeat now works on applied and cancelled sessions, not just successful ones
Fixed
•Deleting a Specialization or Grade that is still in use on a Position or grade chain now returns a clear conflict with the affected counts, instead of silently orphaning the position profile or cascading the matrix away
•Deleting an employee with no assessments, PDPs, exams or talent records — and who isn't a division manager — now hard-deletes the row instead of silently flipping the status to `terminated`; if any link exists, the API replies with a clear conflict naming the employee
•AI Generate matrix page (Specialization + Position) no longer fails with "Not authenticated" — the multipart upload now flows through the shared API client
•AI history tab is now visible to any admin in the company, so the team log is shared across operators (mutating actions still require the original session author)
•Live AI generation progress shows a "paused — refreshing" hint when the WebSocket disconnects, so you always know the page is still tracking the run
•AI review modal warns before discarding unsaved title edits, so a misclick on Cancel can't wipe out renames you typed
•Position edit dialog hardens the cascading Specialization → Grade fetch — a fast switch back-and-forth between specs no longer commits stale grade options
1.6.3
May 8, 2026
Added
•Generate indicators with AI directly from the competence detail page — a single button kicks off a tailored AI session for that competence, uses your existing context (group, description, specializations, grades) and shows status inline (in progress / open active session / busy elsewhere)
•Mass Assessment is now renameable in one click — the title cascades to every child assessment in the group, and per-child rename is locked while a parent group exists
•Assessment detail exposes a "Preview questions" view that mirrors exactly what reviewers will see, including the per-competence skill level
•Tooltip primitives wired across the dashboard for consistent hover hints
Fixed
•Skill-level, specialization, grade and material pickers across the competence detail and assessment-group pages now show the selected entry's title in the dropdown trigger instead of leaking a UUID or `__base__` literal
•Starting an AI competence generation session no longer fails with a 500 — the response is correctly serialised after the celery task is enqueued
•Single + Mass Assessment lock the Evaluation criteria and Rating scale once they leave draft, and the Evaluation criteria affordance is renamed Edit → Change for consistency
•Adding a participant to an assessment now rejects the same human in any role with a clear conflict, and the picker hides everyone already in the assessment
•A new assessment is rejected when the assessee already has 5 active ones — no more drowned queues
•Assessment detail returns 404 to restricted callers who are neither in the assessee's scope nor a participant — closes the URL-fishing leak
•Participant questionnaire only shows indicators of the picked skill level and lower for Individual-competences criteria
•AI competence generation no longer fails on the worker with `Received unregistered task of type`; cancelling a session mid-flight now revokes the queued/running Celery task and skips billing for the cancelled run
•Competence tree group/competence dropdown menus stop wrapping labels, and the competence edit dialog widens to fit the indicators block
•Every AI-generation entry point on `/competences` (group menu, competence menu, indicators editor) shows a tooltip explaining the active-session lock instead of relying on a native `title` that browsers suppress on disabled buttons
•Competence tree legend reads `competences: N` next to group titles, and the published / not-published / origin / in-use icons each carry an explanatory tooltip
•Rating scale options no longer leak empty `()` for the neutral answer; admin view keeps weights, participant view drops them, and the neutral option always reads `(not counted)`
•Bulk status change with "Apply to all → Cancelled" leaves already-completed assessments alone and reports them under skipped reasons instead of silently overwriting them
•Evaluation criteria sheet: specialization picker lists every active dictionary item instead of only those wired into a grade chain; assessment summary shows the chosen skill level next to each Individual competence
1.6.2
May 7, 2026
Added
•AI Generate on position detail page — launch a position-scoped competence generation that reuses the specialization-matrix flow; applied competences land in a single group named after the position
Fixed
•Mass Assessment now lets you pick a Rating scale at the group level — the chosen scale propagates to every draft child in one click; locked once any assessment in the group leaves draft so launched scales stay frozen
1.6.1
May 7, 2026
Added
•Position detail page (`/company/positions/{id}`) — resolved competence matrix and the assigned employees rendered through the unified Name / Position (Specialization · Grade) / Division / Status / Hire Date columns
Fixed
•Assessment detail keeps the rating scale visible after the assessment has been Sent — the snapshotted scale is embedded in the response so reviewers always see the right options
1.6.0
May 6, 2026
Added
•AI competence framework generator — describe your business, drop in role/spec documents, and generate a full competence tree with cascading checkboxes, refinement prompts, regenerate-and-compare, and a preview before applying. Works at three scopes: the entire base, a single group, or just the indicators of one competence
•AI specialization matrix generator — upload role descriptions (PDF/DOCX/XLSX/RTF/TXT, up to 10 MB per file) and produce a full Competence × Grade matrix in one pass, with the same refine / regenerate / preview-before-apply flow
•Specializations as first-class entities — list, detail, grades with descriptions, requirements, salary range and currency; positions grouped by division with assigned/plan and lifecycle status; shared Company tabs (Overview / Positions / Specializations)
•Competence × Grade matrix editor with dirty-cell highlighting, indicator tooltip (showing every indicator up to the selected level) and an unsaved-changes bar; the editor cascades changes across grades automatically
•Position lifecycle and occupancy — Active / On-hold / Frozen / Closed badges with an on-row status menu, Filled / Plan drill-down with a single highest-priority alert per employee, an "Unassigned employees" admin view, and a "matrix not configured" banner that deep-links into the Spec × Grade editor
•Material specialization overrides — competence detail page exposes a "Materials by context" panel where admins can hide or add learning materials per specialization; Development plans automatically pick up the right material set based on the employee's specialization
•Per-workspace AI settings page (`/settings/ai`) — pick effort tier (Fast / Balanced / Thorough), Provider + Model, sampling temperature, retry budget, content language, and company context that's merged into every AI prompt; deep-linked from every AI generation flow
•Cost confirmation dialog — any AI action that meets your workspace's credit warning threshold now requires explicit confirmation with the cost shown up-front; the "Confirm & start (N credits)" button leaves no room for surprise
•Generation context panel inside the AI confirm dialog — shows the filtered specializations / divisions chips, the company description preview, and direct links to fix any missing context (dictionary, company profile, AI settings) before starting
•Real-time updates — in-app notifications and AI generation status now update over a WebSocket channel with automatic reconnect and a polling fallback; long-running tasks broadcast started / done / failed live, no page refresh needed
•"Cancel generation" mid-flight — cancel a running AI session and the status returns to idle immediately, no waiting for the next polling tick; a Background worker offline warning shows up when a session is queued and the worker isn't responding
•Inline indicators editor on the competence edit dialog — list, group by skill level, add / edit / delete from a side sheet, with an inline help tooltip and a deep-link into AI generation
•Competence detail page with publish / unpublish / hide controls and level-scoped indicator and material editors with drag-and-drop reordering; two-step wizard for creating new competences
•Drag-and-drop in the competence tree to move groups and competences between branches
•Inline edit for pending invitations — admins can rename invitees, change division/position, or rotate the email and re-send (rate-limited, audited); Name is now required and a Division column is shown in the invitations table
•Inline edit for assessments — title and deadline can be changed in place (admins/managers, blocked on completed assessments)
•Bulk status change on the assessments list now reports skipped reasons broken down by category (terminal / same-or-lower status / already cancelled / missing criteria or scale) instead of a single "skipped N" toast
•Employees list redesign — combined Name+Email column, Specialization · Grade column, multi-select filters for Divisions / Statuses / Positions / Specializations / Grades, and manager-scoped division pickers
•Company profile page (`/company/profile`) — admins manage logo, description, industry, size and website in one place
Improved
•AI competence-generation confirm dialog displays the credit cost up-front and adapts its start button when the cost meets the warning threshold
•All AI generation tasks (competences, indicators, PDP goals, positions, specialization matrix) now honour your workspace AI settings — language, company context, model and temperature
•Development plan (PDP) detail page now allows renaming, reordering and deleting items and materials inline, picks the right material format from a select, and surfaces the reviewer (or falls back to the employee's division manager)
•API error toasts now format FastAPI 422 validation payloads as readable lists instead of rendering "[object Object]"
•PDP `draft → sent` transition now emails the assigned employee with the plan title, deadline, and a direct link
•RBAC: assigning someone as a division manager auto-upgrades their role; removing them prompts to confirm the downgrade; invitation roles are capped at the inviter's level
Fixed
•Item checkboxes on draft PDPs are no longer interactive — completion can only be marked once the plan is sent
•PDP `draft → sent` email now uses the plan title in the subject and heading instead of a generic placeholder
•AI competence generation tooltip "Edit company profile" link now opens the right page (was pointing at user settings)
•`draft → sent` transition on assessments now requires both evaluation criteria and a rating scale, with a clear precondition error instead of a silent no-op
•Database connections recover faster from stuck "idle in transaction" backends — every engine now has a 5-minute idle-transaction timeout, and migrations fail fast on contended locks instead of queuing indefinitely
Security
•Terminated and inactive employees are blocked from authenticating, status changes trigger an email to the user, and the profile-update endpoint enforces a strict field allowlist
•Managers can only edit employees inside their division scope; regular employees can no longer edit profiles via the employees API
•Cross-tenant scan in the employee-alerts engine is no longer possible — the bulk computation now requires an explicit tenant id and short-circuits any off-tenant rows in a mixed cohort
1.5.0
April 30, 2026
Added
•Custom rating scales — HR can now create, edit and soft-delete answer scales with 2–10 scoring options, an optional "I don't know" neutral choice, and 0–100 percent levels. Each assessment can pick its own scale
•Rating scale picker on the assessment detail page — empty block ships an "Add scale" button (and "Change" when one is assigned), with drag-and-drop ordering of options, inline preview, and edit/delete confirmation dialogs
•Snapshot-on-launch for rating scales — once an assessment leaves draft, its scale is frozen so subsequent edits never bleed into running assessments
•Evaluation criteria selection sheet on single and mass assessments — pick by current positions, target position, or hand-pick competences from the tree, with cascading checkboxes, search, and per-competence skill levels. Mass criteria propagate to every active child assessment in the cycle
•Assessment results now expose a percent score and a resolved level per competence on completion (neutral answers excluded). The Results table shows Percent / Level columns with a description tooltip
•Passing score per grade in the specialization dictionary (default 75%) and per assessment criteria. On completion, an automatic grade recommendation is produced (% match per grade with hierarchy + "not confirmed" fallback) and surfaced via the API
•PDP plans now carry a title with inline edit, auto-generate items from grade-specialization competences, and surface employee + formatted deadline. Specialization/grade can be changed after creation, with auto-items recomputed while passed and custom items are preserved
Improved
•AI generation (positions, competences, indicators, PDP suggestions) and AI wizards on Positions and Competences are now asynchronous by default — the request returns immediately with a task id, and the UI polls for the result. No more page-blocking spinners on long generations
•Outgoing emails (waitlist confirmations, notifications, external-reviewer invites) now go through a background queue instead of blocking the originating request
•PDP detail page status flow aligned with the backend lifecycle: sent / in progress / review / on approval / approved / done / returned / cancelled / expired
•Cloud pricing repriced and restructured into four credit packages (Starter / Growth / Scale / Volume) at progressively cheaper per-credit rates. Monthly free tier is now 2,000 credits. New Enterprise Annual plan available on request
Fixed
•Five list endpoints (employees, assessments, PDPs, exams, talent-market search) now properly filter by role: admins and HR see the full tenant, managers see their own subtree, regular employees see their own record. Previously every authenticated user could list everything in the tenant
•Talent Market: a regular employee now also sees unpublished cards where they are a candidate, not only the published ones
•Connections to the database recover faster after network blips — the pool now pings before reuse and keeps TCP keepalives alive, and pool capacity is large enough to absorb load spikes
•Adding a participant to an assessment no longer crashes with a 500 when the underlying user has been deleted; the API returns 404 instead and orphaned rows are cleaned up
•Division edit modal now exposes the Manager field (previously only the Deputy Manager field was visible), and both selects work without the spurious "Invalid manager" error
•Regenerating AI position drafts no longer 500s on a unique-constraint violation when the AI returns a title that already exists as a draft
•Cross-domain redirects between the marketing site and the app no longer cache stale routing rules in the browser
•Status page (status.hrpulsar.com) no longer gets stuck on an empty placeholder when an upstream probe returns a non-JSON response
1.4.2
April 28, 2026
Improved
•Pricing calculator on hrpulsar.com/pricing now lists exactly which actions drive the monthly estimate, sorted by spend, before recommending a top-up package — no more opaque "≈ N credits" total
Fixed
•Cloud status indicator on status.hrpulsar.com is back to "operational" — the underlying job-availability heartbeat is publishing again
1.4.1
April 28, 2026
Added
•Pricing page now leads with a curated "What things cost" table — eight headline actions priced per credit, instead of the full eighty-line dump
•New "Estimated monthly spend" calculator — pick your team shape (solo / 10 / 50 / 200 / 500+) and see live monthly credit estimates plus the right top-up package
•Cloud admins get a new Billing layout with three tabs (Overview / Transactions / Prices) and a searchable, in-app price list
•Assessment detail page now shows the evaluation criteria with an inline "Add competences" button, and a clear read-only view of the rating scale
•"Take this assessment" call-to-action appears at the top of an assessment for the people who still need to fill it in — no more hunting through the participant list
•An "Evaluatee" badge highlights the person being assessed in the participant list
•Employees can now jump straight to an assessment from their profile's Assessments tab
Improved
•Creating any assessment automatically adds the assessed person as a self-participant, so the participant list is never empty out of the gate
•Self-assessments no longer auto-include the employee's manager (it was confusing — you were the only person evaluating yourself)
•Done and cancelled assessments hide the action buttons that no longer apply (Add participant, Calibrate, Evaluate, status change)
•Mass-cancelling an assessment cycle now reports how many sub-assessments were updated vs. already-finished, instead of just counting the changes
Fixed
•Regular employees no longer see admin-only buttons (status transitions, Add participant, Calibrate) that would fail with "Insufficient permissions" when clicked
•Submitting answers to someone else's evaluation row is now properly rejected by the API — previously any user in the same workspace could write into anyone's row
•Public pricing endpoints normalised under `/api/billing/*` so the marketing site and dashboard share one base URL — fixes the dashboard's missing free-tier limit and credit packages on first load
•Cloud pricing page on hrpulsar.com is back online — the live credit cost table loads instantly again, and the "Failed to fetch" error is gone
1.4.0
April 27, 2026
Added
•Public waitlist for early access — sign up on the landing page to be notified when HRPulsar opens up. Confirmation email included
•Refreshed brand identity — new chronograph mark, Geist wordmark, light and dark lockups, high-resolution social card
Improved
•Dashboard redesign — KPI strip with sparklines, headcount by department, active assessment cycle progress, an inbox of items needing attention, and a calendar strip for the week
•Sidebar reorganised into Workspace / Talent / Discover / Admin sections with the tenant switcher moved here from the header
•Header pared down — auto-generated breadcrumbs, ⌘K hint in the search bar, leaner 52px row
•Employee detail pages lead with an identity card showing status, tenure, assessment progress, goals, and the last review at a glance
•Dark theme overhauled — KPI bars, charts, focus rings and active navigation are visible in dark mode (they were greyscale on dark before)
•Transactional emails now feature the real HRPulsar lockup in the header instead of the placeholder mark
•Public status page icons match the main app's branding
Fixed
•Web app manifest no longer triggers a console error on the landing site
1.3.0
April 25, 2026
Added
•Structured job positions — create and manage positions with optional grade, specialization, and division links
•AI-powered position generation — describe a role and let AI create the position with a draft/approve workflow
•Position management page at Company → Positions with search, filtering, and headcount tracking
•In-site documentation — all docs are now rendered directly on the website instead of linking to GitHub
•Cloud & Enterprise features page — learn what's included with a Cloud subscription
Improved
•Employee and invitation forms now use a position selector instead of free-text input
•Docs page reorganized by user journey — getting started, features, cloud, deployment, API, and GitHub
•OpenAI and Gemini API keys now documented in the deployment guide
1.2.10
April 24, 2026
Improved
•Employee creation form now uses a dropdown selector with user names and origin badges instead of manual ID entry
Fixed
•Background task worker stability improvements
1.2.6
April 23, 2026
Added
•End-to-end test infrastructure for improved quality assurance
Improved
•Company page loads gracefully when some data sections are unavailable
•Assessment participant selection now uses employee names instead of raw identifiers
•Human-readable labels in mass assessment filters for divisions and specializations
Fixed
•Authentication no longer loops when entering an incorrect password
•Development plan card clicks now respond to the correct target areas
•Email verification and invitation links work correctly for new users
1.2.5
April 23, 2026
Added
•Billing dashboard with credit balance cards, spending analytics by category, and transaction history
•Frontend can now detect deployment mode (SaaS vs self-hosted) for adaptive UI
Improved
•Human-readable labels throughout the interface — no more raw IDs in dropdown menus
1.2.0
April 22, 2026
Added
•Mass assessment creation — create assessments for entire teams or departments at once
•App version display across all pages (landing, auth, dashboard)
Fixed
•Human-readable labels in Select components across the platform