Repository navigation
Releases: HRPulsar/hrpulsar
Releases · HRPulsar/hrpulsar
Release list
v2.5.4
Added
- Assessments: submitting a questionnaire with unanswered questions scrolls to the first one and focuses it (HRP-317)
- Exams: the page opens in tabs - Exams for whoever runs them, My exams and To do (N) with one's own (HRP-823)
- Talent Market: the page opens in tabs - Talent Market for whoever authors the board, I'm a candidate and I'm appointed with one's own cards (HRP-824)
- Development: the page opens in tabs - Development plans for whoever authors plans, My plans and To do (N) with one's own (HRP-825)
- Assessments: the page opens in tabs - Assessments for whoever runs them, My assessments and To do (N) with one's own questionnaires (HRP-826)
- Company: the division tree shows each division's manager, deputy, description and headcount, and its actions menu without a hover (HRP-942)
- Competences: a search by group or competence title above the tree, next to Expand all / Collapse all (HRP-1082)
- Company: the company profile has a Region; for Russia the employee Education degree offers the Russian education levels (HRP-1066)
- Recruitment: whoever runs hiring downloads the interview recording from the player under its file name, with a fresh link on every click (HRP-980)
Changed
- Section access: HR at the default View level sees only their own items on Exams, Assessments, Development and Talent Market; the full lists open with Manage (HRP-823, HRP-824, HRP-825, HRP-826)
- Recruitment: library competences of a vacancy show their proficiency level, and Add from library asks for the level of each picked competence in a second step; the talent-market card posted from the vacancy carries the same levels (HRP-1087)
- Employees: Recruiter, Hiring manager and Employee can no longer be given Manage on the Employees section (HRP-829)
Fixed
- Demo: the sample interview recording speaks its transcript in the demo's language, each line at its timecode (HRP-980)
- Recruitment: a citation clicked after the interview page has been open for a while plays the recording instead of failing (HRP-980)
- Employees: an employee's name links to their card across the product only where the reader may open that card, and is plain text when the Employees section is closed for the role (HRP-829)
- Coverage: on the Steps tab a step's Details carries a chevron, so it reads as a block that opens (HRP-904)
- Employee card: the education degree and the compensation type in the list show in the interface language, in the Add and Edit dialogs too (HRP-1066)
- Invitations: the role shows by its name in the interface language - in the invite form, in an editable Pending row and once the invitation is accepted, cancelled or expired (HRP-1064, HRP-1065)
- Employee card: on the Competences tab the levels window and the Other competences list colour a percent on the same scale as the rest of the product - 75% is yellow, not green (HRP-1105)
- Development: a plan for a division manager gets the manager of the division above as its reviewer, and the reviewer's letters open the plan itself (HRP-1048)
- Assessments: a 180° or 360° assessment of a division manager adds the manager of the division above as its manager participant (HRP-1049)
- Assessments: the answer scale legend is titled What the answer options mean, is hidden when no option has a description and marks options without one as Not specified; the question preview is titled Questions preview (HRP-721)
- Analytics: the Grade changes hint no longer mentions changes recorded before grades were kept in the history (HRP-732)
- Development: a long plan title no longer runs into the status chip on the plans list (HRP-940)
- Section access: invitations stay closed to recruiters, hiring managers and employees, and only admins get full access to roles; the screen shows those cells locked with the reason (HRP-831)
- Section access: recruitment stays closed to the Employee role, shown as a locked cell with the reason (HRP-830)
- Recruitment: a reader who is not scoring an assessment round sees its sheet once instead of once per evaluator, with each competence's round average and every evaluator's score, and an evaluator of a closed round sees the assessed-competences count over all evaluators (HRP-1081)
- Recruitment: a division manager or hiring manager with manage access runs hiring on their own vacancies only, and the Division and Hiring manager fields of a vacancy offer only their own sub-tree or themselves; a recruiter with view access reads every vacancy of the company (HRP-830)
- Recruitment: a division manager or hiring manager links only candidates already on their vacancies; someone who is a candidate elsewhere in the company is added by a recruiter or HR, and only the hiring team that sees all vacancies receives notifications not addressed to anyone (HRP-830)
- Recruitment: the settings page subtitle reads "A single hub for recruitment module settings.", and roles other than Admin and HR see only the funnel note under "What else can be configured?" (HRP-1045)
- Recruitment: Internal candidates of a vacancy no longer carry the "Added manually — below the match bar" label; every row shows its talent-market match percentage (HRP-693)
- Recruitment: the Interview questions tabs and set titles on the candidate page and the vacancy Questions tab are shown in the interface language (HRP-1117)
- Recruitment: Mark as complete stays available once other evaluators, internal or external, have scored every Critical competence, even after you start scoring the round yourself (HRP-1075)
- Talent Market: a manager's notification about a development-plan request is titled "{name} asked for a development plan" again in the bell and the email subject; the text still names the card (HRP-714)
- Recruitment: the invitation email to an external evaluator no longer says that the link works without an account (HRP-1061)
- Recruitment: a resume-only AI analysis of a strong candidate writes its "strong on the resume, interview required to confirm" note in the workspace's AI content language instead of English (HRP-1086)
- Recruitment: with "Transcribe and run AI analysis automatically after upload" ticked, an uploaded pdf or txt transcript now starts the AI analysis on its own, billed like the analysis of an uploaded recording (HRP-1031)
- Recruitment: a pasted or uploaded pdf/txt transcript is split into segments by speaker names as well as by Interviewer/Candidate labels; the interview page shows it as uploaded instead of fetching a recording link forever, and editing the whole transcript updates its segments (HRP-1085)
- Demo: the sample screen interview with nothing uploaded yet shows as Scheduled, and every sample interview shows its recording type (HRP-980)
v2.5.3
Fixed
- Search:
%and_typed into a search box match those characters instead of acting as wildcards (HRP-1077) - Search: global search finds every employee, assessment, vacancy and candidate the user can see instead of only the first page of each, and a manager finds colleagues outside their own subtree (HRP-1067)
- Employees: the search on the Employees page also matches the job title (HRP-1067)
- Recruitment: saving a candidate card with an email another active candidate already has says the address is taken instead of failing with a server error (HRP-1078)
v2.5.2
Fixed
- Recruitment: a manager or hiring manager with view access who is not a round's evaluator no longer sees evaluator names over the round's sheets, and a completed or archived round shows them its assessed-competences row, average score and per-competence round averages (HRP-629, HRP-630)
- Coverage: admins and HR see every process without being added to it, even when the section access matrix gives them view only (HRP-810)
- Coverage: Save access closes the Who sees this process dialog after the success message (HRP-810)
- Company: the division page shows the Specialization column between Position and Grade to the Employee role and to a manager on another division (HRP-633)
- Company: a manager sees the people of a division outside their own subtree, opening their cards in the trimmed view (HRP-1057)
- Coverage: the process and project counter under the title follows the search, type and status filters (HRP-1056)
- Coverage: a process or project cannot be created or saved without a description, which the step breakdown is generated from (HRP-1055)
- Dictionaries: View access in the section access matrix opens the menu entry, every tab and direct links read-only (HRP-827)
- Talent Market: the Division field of a card offers a manager only their own and child divisions (HRP-639)
- Section access: by default Dictionaries opens to HR at Manage and closes to Manager and below, Competences opens to Manager at View and closes to Recruiter and below (HRP-827)
v2.5.1
Fixed
- Employees: opening a colleague's card that is deleted or hidden from the viewer shows the not-found state instead of a load-failure error (HRP-623)
- Public check: the Dictate button asks for the microphone instead of reporting it blocked once access is granted in the browser's site settings (HRP-947)
- Coverage: a failed step breakdown or skill generation names its cause in the reader's language, a refused credit hold among them; rows from before keep their stored text (HRP-854)
- Self-hosted: a fresh install can pull the file storage again — the bundled MinIO now runs a pinned community fork (HRP-1026)
v2.5.0
Added
- Recruitment: the divergence canvas opens from a visible link in the candidate row and the mobile candidate card, reachable by keyboard and touch, next to the existing hover tooltip (HRP-1044)
- Demo: a deployment-configured Google Ads conversion fires when a visitor submits Save access (HRP-1052)
Changed
- Recruitment settings tabs open to the audiences their APIs already admit: scales to whoever runs hiring, retention and roles read-only to HR, branding and consent templates read-only below admin; LLM and transcription providers stay admin-only (HRP-1045)
- Self-hosted and SaaS composes run the stock postgres image now that the pgvector extension is dropped (HRP-1043)
Fixed
- Roles: the capability column wraps so the People column fits small screens without scrolling, and the page hints explain the counters and the drill-down (HRP-634)
- Section access: the matrix screen moved to the Roles page (Configure button, /settings/roles/section-access); the company profile no longer links it (HRP-820)
- Recruitment: a manager with view access who is not on a round's evaluator list sees the round's evaluation sheets read-only instead of an empty tab, for active and closed rounds alike (HRP-629)
- Coverage: on a step with an assigned executor the Change button sits right after the executor, before the agent hint (HRP-809)
- A division manager can no longer replace or clear their own Manager or Deputy Manager seat; that change is for an admin or HR (HRP-819)
- Deleting an employee deactivates their account: the deleted employee can no longer sign in or keep an existing session, on any sign-in path; a new invitation to the same email re-hires them with a fresh password (HRP-1035)
v2.4.0
Added
- A SIGNUP_ENABLED setting closes self-serve workspace creation on company-internal installs; invitations keep working (HRP-1039)
- AI workforce: when the owner of an agent workflow leaves, the workflow is marked as needing a new owner and admins are told in the same notification as for assignments (HRP-1028)
Removed
- Unused semantic-search API endpoints and the pgvector dependency; PostgreSQL needs no extensions now (HRP-1042)
Changed
- Public check: the header carries the HRPulsar logo linking to the website, matching the marketing site (HRP-934)
Fixed
- Company: a rank-and-file employee no longer sees the Profile, Positions and Specializations tabs, and direct links to them show an access error (HRP-622)
- Positions: a division manager no longer gets AI generation of positions or the banner of AI drafts awaiting review; admins and HR keep both (HRP-631)
- Specializations: the pointer to Settings → Dictionaries shows only to users who can manage the dictionaries (HRP-828)
- Visitors on private networks, and visitors behind a proxy listed in CADDY_TRUSTED_PROXIES, keep their own IP and per-IP rate limits instead of sharing the bundled proxy's address (HRP-652)
- Recruitment: the shipped Standard 1-4 assessment scale, its description and level labels follow the interface language in the scale settings and on evaluation sheets (HRP-1023)
- Recruitment: the sample interview question set opens instead of failing (HRP-773)
- Recruitment: a Manager assessments round scored only by external evaluators shows its progress and can be marked complete once every Critical competence is scored (HRP-1022)
- Recruitment: the "Transcribe and run AI analysis automatically after upload" switch keeps its position for the candidate and vacancy after a reload (HRP-1031)
- Recruitment: the link in the submitted-assessment email stops at the Manager assessments title with a little of the page above it in view (HRP-379)
- Recruitment: the consent link resend confirmation shows only when the link was last sent (HRP-684)
- Recruitment: below Manage, a hiring manager reads and exports the interview questions without editing them and fills in only their own sheet on a round they evaluate; a vacancy's hiring manager can be named an evaluator on its rounds; recruiters and hiring managers read every talent market card (HRP-630)
- Employees: the directory shows each colleague's specialization and status, lists active and on-leave people only and filters by status; a division manager's list covers the whole company, with people outside their departments shown as the directory shows them (HRP-623)
- Employee profile: a hire on the timeline names the position in the viewer's language (HRP-999)
- Demo: the Manager role filter on the employee list no longer lists the HR people who lead a division (HRP-1032)
v2.2.0
Added
- Company: admins narrow which menu sections each role opens - none, view or manage per section and role, or hidden for everyone - with today's access as the default (HRP-820)
- Competences: division heads add their own competence drafts, which only they, HR and admins see until HR or an admin publishes them (HRP-632)
- Company: the section access screen says that everyone also holds the Employee role and no longer offers a role a level below the Employee column, which would change nothing (HRP-998)
- Instance-level list of outside AI providers allowed to receive workspace data; Settings → AI shows the workspace its AI processors (HRP-1005)
Changed
- Recruitment: a candidate for a vacancy is no longer offered or accepted as an interviewer or evaluator on it, and no evaluator link is sent to a candidate's email (HRP-971)
- Talent market: a manager who competes for a card no longer gets its emails about their employees on it - reacted, appointed, cancelled or asking for a plan (HRP-971)
- Talent market: a division head may react to a card they run; the confirmation says they will no longer run it once they compete for it (HRP-971)
- Coverage: who runs the section - every process, the agent registry and everyone's assignments - is the section access setting, not a fixed pair of roles (HRP-821)
- Analytics: who opens the section is the section access setting, with the exports and the AI summary of the loop reserved for management (HRP-822)
- Exams: who writes, assigns and reads mass exams is the section access setting; an exam already assigned stays open to the person taking it (HRP-823)
- Assessments and exams: below admins and HR, a CPA round and a mass exam are listed, opened and changed only by their author, and a mass assessment is renamed, re-configured and moved in bulk only by its author (HRP-640)
- Talent market: who authors the board is the section access setting, each card still fenced by the org structure; everyone the section is open to keeps the cards their own name is on (HRP-824)
- Talent market: a division head creates a development plan from a card only for a candidate in the divisions they lead; for anyone else the button is inactive and says the plan is for that employee's own manager or HR (HRP-856)
- Recruitment: a vacancy is posted to the talent market only when the market is open to the poster (HRP-824)
- Development plans: who authors plans is the section access setting, each plan still fenced by the org structure; the owner and the reviewer keep their side of the plan (HRP-825)
- Assessments: who runs assessments, mass assessments and CPA is the section access setting, each assessment still fenced by the org structure; respondents keep answering the assessments they take part in (HRP-826)
- Competences: who edits the competence library is the section access setting; deleting, skill levels and AI generation of the tree stay with admins (HRP-827)
- Dictionaries: who edits dictionaries is the section access setting; every form keeps reading them whatever the setting says (HRP-827)
- Company: who shapes divisions and authors positions is the section access setting, each still fenced by the org structure; the division, position and grade pickers keep working whatever the setting says (HRP-828)
- Company: a division manager names a head or deputy only from the divisions they lead, or themselves; someone from elsewhere is appointed by an admin (HRP-857)
- Employees: who adds, edits and moves people is the section access setting, each still fenced by the org structure; the employee pickers keep working whatever the setting says (HRP-829)
- Recruitment: who runs hiring is the section access setting - admins, HR and recruiters by default; hiring managers keep evaluating candidates and division managers keep running hiring rounds on their own vacancies (HRP-830)
- Settings: who opens data import, invitations, roles and AI settings is the section access setting - admins by default, and HR and division managers for invitations; the four stay open to admins whatever the setting says (HRP-831)
- Invitations: HR and division managers get the invitations page - HR the whole workspace, a division manager the departments they head; a role given the section invites employees unless the inviter hierarchy allows more (HRP-831)
- Coverage: the list's search and filters get a Clear button once any of them is set (HRP-859)
- Coverage: the list of processes and projects has an Owner column, and the owner in the access dialog is shown like any employee - name, position and status (HRP-810)
- Coverage: on a step row Assign, Change and Change agent are buttons, Change agent sits right after the agent type, the executor's Assigned chip is gone, and a person's position and status sit on the line with the name (HRP-809)
- Coverage: "Get the skill" first asks for a confirmation that names the cost; Cancel closes without starting a generation (HRP-960)
- Recruitment: the manager's percent of scale is one formula — a level is worth its weight on the assessment scale — in the round header, the vacancy table, the assessment matrix and canvas, and the canvas export; the vacancy report workbook converts the percentages it prints the same way (HRP-774)
- Dashboard: the Completed tile counts development plans finished in the chosen period and how many of them met their deadline (HRP-766)
- Dashboards and profile: development dynamics counts a competence as raised only when an assessment completed after a finished plan scores it above the one before the plan; the dynamics and Completed tiles open the plans finished in the chosen period, and the profile's tenure and dynamics values keep their lower case (HRP-724)
- Assessment create dialogs: the type hint is one sentence contrasting self-assessment with 180° and 360° instead of a per-type line (HRP-723)
- Talent market: the below-the-bar auto-reply and the development-plan request follow the live competence verdict only; a candidate who has since met the competences but lacks the years of experience gets neither (HRP-739)
- Demo: every development plan in progress offers a linked book, course, article and video among its materials (HRP-767)
- Coverage: repeat breakdown calls and reclassifications cost less with AI providers that cache prompts (HRP-951)
- Coverage: a breakdown keeps the capability codes of its first pass next to the final ones, and the capability edits export reports how often the two passes agree (HRP-949)
- Coverage: a description broken down before is answered from the stored result at once for thirty days, and the same text gives the same steps (HRP-921)
- Recruitment: archived vacancies are hidden from the vacancy list until "Show archived (N)" is ticked; the count comes with the list (HRP-417)
- Recruitment: Position, Division, Hiring manager, Specializations and Grades on the vacancy create and edit forms and in the Overview editor fill their column; a long value is cut with an ellipsis and shown in full on hover (HRP-838)
- Recruitment: interview question sets are generated in the background — the block shows progress with a Cancel button while the model works, and other sets stay usable meanwhile (HRP-471)
- Talent market: a development plan request reads "{name} requests a development plan for {card}" in the manager's notification and email, and the email's link reads "View candidate matches" (HRP-714)
- Coverage: process breakdown and competence mapping assign capabilities by one set of conventions, and the catalog descriptions of "Coordination" and "Consolidating people's contributions" follow them (HRP-961)
Removed
- Roles: the unused
permissionslist ofGET /api/roles(HRP-832)
Fixed
- Employee card: the events feed names role, position, division, name, status and compensation changes in the interface language instead of showing the event code, and a role change reads as old role → new role (HRP-999)
- Talent market: a division head deletes the cards they may edit, instead of a Delete entry that answered 403 (HRP-824)
- Employee card: the actions menu offers a development plan or an assessment only to those who may create one (HRP-826)
- Recruitment: a division manager sees the candidate table of their vacancies instead of an empty list (HRP-830)
- Employee directory and global search keep working for a role whose assessments section is closed (HRP-826)
- Mass assessment analytics show a respondent only their own result, as the assessment page does (HRP-826)
- Competences: the tree and the competence page offer editing, deleting and AI generation only to those who may use them (HRP-827)
- Company: specialization and position pages offer deleting a specialization, adding one inline and AI generation only to those who may use them (HRP-827)
- Company: the position picker offers creating a position only to those who may, and the specialization list opens its menu to whoever may delete a specialization (HRP-828)
- Company: AI position drafts, deleting a position and a grade's attributes are offered only to those who may change them (HRP-828)
- Analytics: salary figures and the division headcount matrix cover the reader's own subtree instead of the whole workspace (HRP-822)
- Development plans: a plan is readable by id only inside the reading scope - the employee, their division head, the named reviewer, admin and HR (HRP-818)
- Company: a division head creates, edits, moves and maps specializations only for divisions inside their managed subtree (HRP-819)
- Roles: every account holds the
employeebaseline: signup, invitation acceptance, signup approval and tenant creation grant it, a role change keeps it, and accounts created without it are backfilled (HRP-832) - Recruitment: a consent link replaced by a newer one can no longer be signed, and a resend to a corrected email sends a new link (HRP-684)
- Company: a division can no longer be moved under one of its own subdivisions (HRP-819)
- Company: the position form offer...
v2.1.1
Changed
- Coverage: the list of processes and projects counts both under its title and is searched and filtered by type and status like the other lists; the title hint now explains a process and a project (HRP-859)
- Coverage: people on a step row show their position under the name, the hours editor opens from "Edit hours and rates", and a step's rate starts at the company rate and can be set before the company has one (HRP-859)
- Coverage: a mode or agent type set by hand is no longer marked with a "Set manually" chip; its menu still offers the computed value back (HRP-863)
- Coverage: the agent setup guide is a headed section on its own background, with unnumbered agent types and steps named "Step N" (HRP-866)
- Coverage: the match label opens its details with a chevron, and a competence without an assessment reads "No assessment" in grey (HRP-871)
- Coverage: a step added without capabilities and never classified shows "Not classified" with a hint to pick them or reclassify the step, instead of passing for a step that needs no capability (HRP-944)
Fixed
- A page translated by the browser (Yandex Browser, Google Translate) no longer breaks into "Something went wrong" after an action or a navigation (HRP-943)
- Coverage: the "capabilities not recalculated" hint goes away once the capabilities are changed by hand or the step is accepted, and no longer repeats the Reclassify button (HRP-865)
v2.1.0
Added
- Coverage: an agent setup guide groups the steps an agent takes by agent type - hours a year, whether the agent is registered, how many skill files are ready - and downloads every ready SKILL.md with a README as one zip (HRP-866)
- Coverage: the hours an agent you registered already does - "60 of 156 h/year already automated" on the process and a percent per row in the list of processes and projects (HRP-862)
- Coverage: a step can carry its own hourly rate, set in the hours editor; the company rate stays the default and the money of a process is summed step by step (HRP-868)
- Coverage: set a step's automation mode and agent type by hand right on its row; the manual value drives the buckets, shares, money and To do, is marked "Set manually", and can be returned to the computed one (HRP-863)
- Coverage: people on a step row link to their employee cards, step titles in the summary buckets jump to the step's row, and an agent type opens a description of what it does (HRP-864)
- Coverage: the "assessed" and "expected" labels of a matched person open the match details - the competences behind the step's capabilities, their assessment scores and the passing score (HRP-871)
Changed
- Coverage: the step editor labels the title and the description, and after you reword a step it says the capabilities were not recalculated and offers to reclassify it (HRP-865)
- Coverage: hours that move to review show before and after - half of a reviewed step's hours stay with its checker by default, adjustable per step in the hours editor - and the hours freed now include what review gives back (HRP-861)
- Coverage: the summary shows one bar of yearly hours - to an agent, to review, with people - with a legend in the same colours and percentages; the step-count quality row left the summary and quality stays on each step (HRP-860)
- Coverage: the step rows, the summary, the To do sections and the hours editor say in plain words what each figure means, and the To do section for steps an agent type covers is now "Ready for an agent" (HRP-859)
Fixed
- Coverage: the reclassify-step dialog fits its width on narrow screens and in longer languages, with no horizontal scroll (HRP-867)
v2.0.0
Added
- Coverage: break a process or a project down into steps with an AI draft and edit the result in place (HRP-754, HRP-755, HRP-756, HRP-757, HRP-775, HRP-802)
- Coverage: per-step verdict - an agent type, a person on the team, or a gap - with the automation mode, three buckets and weighted shares once hours per run and runs per year are set (HRP-758, HRP-760, HRP-762)
- Coverage: the tab opens on two plaques - what share of the work moves to an agent and how well an agent does it, and what the work costs in hours a year and in money once an hourly rate is set on the company profile (HRP-795, HRP-796, HRP-797)
- Coverage: a To do tab collects what the breakdown leaves unclosed - the steps nobody covers yet, ready to hand to hiring, and the steps an agent type could take where no agent is registered and no skill file is written (HRP-800)
- Coverage: the first breakdown applies itself, a regeneration shows the current and the proposed steps side by side before you decide, and a long run shows its phase with a running clock (HRP-798)
- Coverage: capability chips carry the model's confidence and the fragment of the description behind them; doubtful chips are suggestions until confirmed, and a step can be reclassified by a comment (HRP-775, HRP-776, HRP-777)
- Coverage: gaps open a hire need - a draft vacancy in Recruitment with the steps as its description - for the checked steps or for a single step from its row (HRP-759, HRP-801)
- Coverage: assign the person who does a step and the person who checks it; an assignment closes the gap even without matching skills (HRP-809)
- Coverage: process visibility for the whole company or for chosen roles, positions and employees, edit rights for the owner, and an access history (HRP-810)
- Coverage: a SKILL.md for any step an agent can perform, built from the agent pack's skeleton and the company's competence indicators, generated in the background with preview and download (HRP-760, HRP-761, HRP-799)
- Capability catalog of seventeen primitives, AI mapping of competences to capabilities, and an AI workforce registry API for agents, packs, assignments and workflows (HRP-748, HRP-749, HRP-750, HRP-751, HRP-752, HRP-753)
- Imported employees receive an email with a link to set their password, and an admin can resend it from the employee card until they set a password (HRP-806)
Fixed
- Employee import works again and accepts the CSV template from the import page, including semicolon-separated files with DD.MM.YYYY dates saved by Excel (HRP-806)
- Imported accounts no longer share a default password (HRP-806)
- Password reset links work only once (HRP-806)
- Forgot password works for an email address with accounts in several organizations: one link sets the password for all of them (HRP-815)
- Imported employees whose set-password email could not be sent are counted on the import job (HRP-806)
- Bulk invitation requests keep processing the batch when one address fails unexpectedly, instead of answering with an error (HRP-833)
- An answer scale can be made the default again, and a recruitment scale configuration can be activated, without the save failing (HRP-811)
- Interview question generation no longer fails when the model returns a question without an explanation
- Dialogs keep the width they were designed for instead of collapsing to a narrow default (HRP-746)
- Re-applying a Coverage draft asks for confirmation before it discards generated skills or edited steps
- Long AI jobs are no longer started again after a broker timeout
- Upgrading to this release no longer fails on duplicate agent names, and it keeps duplicate pending AI assignments instead of deleting them
- Coverage: an empty breakdown cannot be accepted, and a step is handed over to hiring only once (HRP-746)
- Coverage: reordering steps keeps edits made in the meantime, switching between breakdowns no longer shows the previous one, and the hours fields refuse out-of-range values before saving (HRP-746)
- Coverage: generating several skills at once reports how many failed, and a ready skill with no content is not regenerated automatically (HRP-746)
- Coverage: the access dialog names a person by email when their card has no name, searches the owner and rule pickers separately, and offers only active employees as owners (HRP-810)
- File uploads answer with an error when the storage refuses the object instead of recording a file without a URL, and a file record stays when the storage refuses to delete the object (HRP-746)
Security
- Competence indicators are scoped to the workspace that created them
- WebSocket connections are refused for tokens revoked by a password change or by offboarding
- The email delivery webhook verifies the provider's signature
- Uploads are rejected by size before they are read, and the file category in the storage key is validated
- Login and the other rate limits are enforced across all application instances
- External evaluator pages are rate-limited and their free-text fields are bounded
- Test-only seed endpoints stay disabled on deployed tiers
- Downloading a company logo by URL pins the address it resolved to
/healthno longer echoes connection details- The self-hosted stack refuses to start with the default JWT secret
- Email verification and invitation acceptance are rate-limited
- Email subjects are sanitized for every sender
- Browser cookies carry the Secure flag on HTTPS
- Feedback rate limiting fails closed when Redis is unavailable
- Swagger UI is served only on self-hosted and debug installations; the OpenAPI schema stays available
Changed
- Public API keys record their last use at most once every five minutes (HRP-746)