Changelog

New features, improvements, and fixes in each release.

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