Keep up with latest product news

Version: 1.1.0. Tick "Publish in Package Manager" so the IPM registry gets 1.1.0 on approval. The README is
imported from main ("Use GitHub/GitLab README as long description"), so it updates by itself once 1.1.0 is on
main; since 1.1.0 its paragraphs are one line each, so the listing no longer breaks them mid-sentence.
What's new (plain text, fits the box):
1.1.0: suspended tasks show as suspended (IRIS's task list reports every task as active, so each task's state is read on its own, in the Tasks screen and the Health check); every resource save is read back, and the portal says when IRIS answered 200 without keeping it; the whole portal works from the keyboard (tables sort, a skip link, menus that name their current choice); confirmations before suspending the task manager, running a task now or switching auditing off; the Job Center's progress follows every poll; clearer messages for an ended process, a full disk and another origin; the README reads the same on Open Exchange as on GitHub.
An unconfirmed response while creating a campaign or next review period now blocks an immediate repeat. Check saved campaigns refreshes the existing list and clears filters; inspect the saved record before explicitly allowing another creation. No record is treated as an automatic match, and an absent entry does not prove failure.
Entered fields and next-period source review remain intact. A known successful save followed by a failed list refresh remains reported as saved. This change affects creation of review records, not native permissions or stored formats. The guard lasts while the page remains open; after a full reload, inspect saved campaigns before repeating interrupted creation.
Rebuild only the portal service while preserving the configured instance ID and existing campaign volume. Validation: build and 292 tests pass, plus 19 actual-component browser checks. Manual desktop and 390px checks covered retained fields, source confirmation, history failures, filter reset and explicit acknowledgement. Synthetic fixtures performed no native or durable writes.
When the response to creating a run from a saved procedure is lost or unreadable, Waypoint now marks the outcome unconfirmed and blocks an immediate duplicate attempt. Check recent saved runs, open the relevant record and inspect its procedure version before deciding whether to create another plan. An empty list is not proof that creation failed.
Definite refusals remain retryable. Creating a plan does not execute any step. Existing run formats, procedure versions and native permissions are unchanged. Rebuild only the portal service while preserving its configured instance ID and existing data volume.
Validation: build and 247 tests pass, plus 18 actual-component browser checks. Desktop and 390px manual checks covered lost responses, recovery reads, inline history failures, explicit acknowledgement and saved procedure identity. Synthetic fixtures made no native or durable writes. The guard lasts while the page remains open; after a full reload, inspect Runbooks before repeating an interrupted creation.
Certification carry-forward now previews which saved decisions are eligible and why others are omitted before recording the action. The preview identifies the source and current captures; paginated rows keep larger scopes readable. The action names the number of decisions it will carry.
The preview and save use the same eligibility rules. The original human review dates remain unchanged; carrying a decision is not a new approval. Native permissions, saved formats and revision protection are unchanged.
Rebuild only the portal service while preserving the configured instance ID and existing data volume. Validation: build and 292 tests pass, plus 17 actual-component browser checks. Desktop and 390px review covered eligible/skipped reasons, refused saves, successful carry, pagination and incomplete evidence. Synthetic fixtures performed no native or durable writes.
Printable handovers identify the observation behind each procedure assertion by step number, title and identifier, with its source and target. This makes a failed or unknown check traceable when several observation steps share a title. Missing references are reported explicitly rather than inferred from names.
Recorded outcomes, procedure versions and saved runs are unchanged. The report does not rerun checks. Rebuild only the portal service, preserving the configured instance ID and existing data volumes. No native class or stored-data migration is required.
Validation: production build and 247 tests pass, including eight report tests for exact references, pending and unknown checks, missing sources, escaping and legacy output. Manual desktop and 390px inspection of the generated report confirms the referenced step and target are readable without page overflow. Synthetic data only; no native or durable writes.
Evidence review fields are temporarily disabled while their save is pending. Previously, text entered during that interval could disappear when the saved decision or conclusion returned. A failed save keeps the submitted draft and restores editing.
Capture-pair ownership, difference identities, stored records and native operations are unchanged. Rebuild only the portal service, preserving the configured instance ID and existing data volumes. No native class or stored-data migration is required.
Validation: production build and 341 tests pass, plus 16 actual-component browser checks covering pending fields, successful saves, failed-save draft retention and capture-pair separation. Test records and transport are synthetic; no native or saved records were changed.
Manual desktop and 390px checks confirm the retained drafts and normal recovery of editing after a refusal, without page overflow.
Remediation proposals now retain the campaign revision and capture on which they were reviewed. Reloading changed campaign evidence marks an unsubmitted proposal outdated, clears its typed confirmation and blocks Apply. The old reviewed values remain identifiable instead of appearing beside a newly recalculated draft.
Comparison columns distinguish captured values from proposed values, including the configuration register. Returning from a proposal restores keyboard focus to the remediation heading.
Leave proposal unsubmitted returns to the current draft with the reason retained. Prepare a fresh server review before confirming again. A submitted or uncertain review keeps its separate recovery controls and cannot be replayed. Server authorization and live field-drift checks remain in place.
Rebuild only the portal service while preserving its configured instance ID and existing data volumes. No native class or stored-data migration is required.
Validation: build and 287 tests pass, plus 19 actual-component browser checks. Manual desktop and 390px checks cover stale confirmation, explicit re-review, keyboard return, preserved uncertain-result recovery and configuration proposal labels. Narrow campaign layout no longer widens the document. Test records were synthetic; no IRIS or durable writes were made.
Procedure import errors now identify the field that needs correction, including nested checklist items and references. The pasted JSON stays available for editing after validation fails. Unknown fields and unsafe references remain rejected; valid definitions retain their existing IDs and values.
The workflow guide explains how to locate an entry from its JSON path. This update changes error reporting only; it does not change the import format, validation rules or stored procedures.
Rebuild only the portal service while preserving the configured instance ID and existing data volumes.
Validation: production build and 243 tests pass, plus eight actual-component browser checks and manual desktop/390px checks. Synthetic records only, without IRIS or durable writes.
Certification drafts now remain tied to the capture and campaign revision that were open when editing began. If a reload brings a new capture or changed campaign, Atlas preserves the draft and blocks saving it against the new evidence until the operator loads the saved decision and reviews it again.
Unedited forms follow the current saved decision. Filtering and pagination keep the explicitly selected subject, and successful saves retain the normal workflow. This update changes draft handling; it does not modify native permissions or stored campaign data.
Rebuild only the portal service while preserving the existing instance ID and data volumes.
Validation: build and 283 tests; 23 actual-component browser checks; manual desktop and 390px draft-conflict and recovery checks. Synthetic records only, without native or durable writes.
Capture comparisons now retain the collection limits from both selected captures and notices from collected sources. Those details appear in the comparison view, JSON and printable report.
The view explains that added and removed values describe the retained payloads. An entry disappearing from a bounded list or log window does not prove it was deleted from IRIS. Comparison traversal limits remain separate from source collection limits. Difference identifiers, counts, saved decisions and the row-only CSV format are unchanged.
Rebuild only the portal service, preserving the configured instance ID and existing data volumes. No native class or stored-data migration is required.
Validation: production build and 341 tests pass, plus seven actual-component browser checks of input provenance, actual export payloads and escaping. Manual desktop and 390px checks cover the visible notice, scope disclosure, unchanged samples and generated HTML report. All test evidence was synthetic; no native or saved records were changed.
Version comparison now includes the definitions of added and removed procedure steps: observation sources and targets, instructions, checklist items and references, and assertion dependencies and expected results. The same details are retained in the JSON comparison export.
Recreated steps remain separate additions and removals, matched by stored identifiers. Existing runs retain their original procedure version. This update does not change execution, saved procedure data or native permissions.
Rebuild only the portal service while preserving its configured instance ID and data volumes.
Validation: production build and 241 tests pass, plus ten actual-component browser checks of displayed definitions, exported JSON, reverse and identical comparisons, and literal text rendering.
Manual desktop and 390px checks confirm readable definitions and wrapped long targets without document overflow. Test data was synthetic; no native or saved records were changed.
Access map and Resource matrix now distinguish unreadable or missing role definitions from a complete role with no grants. Known grants and confirmed paths to %All remain visible; incomplete evidence is identified beside the affected account and in the explanation.
The role-removal preview retains warnings about unreadable original roles, even after they are unchecked. Its change count is explicitly limited to known grants when the full effect cannot be determined. A fully captured cycle remains an informational warning, not missing evidence.
These views describe captured configuration, not runtime authorization. No IRIS permissions, stored snapshot format or campaign data are changed. Rebuild only the portal service, preserving its instance ID and existing data volumes.
Validation: build and 280 tests pass, plus 24 actual-component browser checks and 10 checks of the built interactive example. Manual desktop and 390px checks confirm readable explanations and retained preview warnings. All test records were synthetic; no native or saved data was changed.
Timeline notes, status reasons and related-change context now keep separate drafts while an investigation is open. Switching sections no longer copies one draft into another form, and saving a status or related change no longer clears an unfinished Timeline note. A failed save retains the affected draft; a successful save clears only that form's submitted text.
Checklist outcome and reason controls are locked while a save is pending, preventing edits from being lost when the saved row returns.
Failed investigation changes also bring their error into view, including status, checklist and related-change saves. Typing in a draft does not move focus again.
The first-investigation guide explains that these are temporary form drafts, not saved records. Closing the investigation or leaving the page still discards them. Current-access checks remain in place; a denied or missing investigation removes its protected cached view.
Rebuild only the portal service, preserving the instance ID and existing data volumes. No native classes, backend changes or data migration are required.
Validation: production build, 338 Node tests and 27 actual-component browser checks passed. Desktop and 390px checks verified independent drafts, pending checklist controls, retained values after rejection and visible focused error messages. Synthetic data only; no native calls or durable writes.
When a note or diagnostic capture receives an unavailable or unreadable save response, Harbor now explains that the entry may already be saved. It directs the operator to refresh the investigation and inspect Timeline or Captures before submitting again, while retaining the draft and the original error detail.
The existing revision check still rejects an immediate repeat against an old version before appending a note or collecting another capture. Reading the latest case does not repeat the save. A known successful save followed by a failed list refresh remains reported as saved. The first-investigation guide explains how to check the retained entry and clear an already-saved draft.
Installation instructions also include cloning/extracting the project first and require Node.js 22.12 or newer for the existing-instance build, matching the current toolchain. No dependency or native-class changes are included. Rebuild only the portal service and preserve the instance ID and existing data volumes.
The save error is brought into view for keyboard users, and the investigation panels fit narrow screens while their tab strip remains scrollable.
Validation: production build, 330 Node tests and 28 actual-component browser checks passed. Desktop and 390px checks verified visible guidance, draft retention, explicit read recovery and keyboard access to the full tab strip. Synthetic memory-only records; no native calls or durable writes.
Command results in task actions and the Command station now retain the sent command ID when receipt access fails, while hiding previously downloaded evidence. Retry receipt access reads the saved ID without executing the command or repeating reconciliation. A refused or missing reconciliation response triggers a separate read-access check; an allowed read restores current evidence.
A recovered record that still contains its pre-execution review is labelled Execution outcome unconfirmed. It cannot reopen Execute once. A conflict found before dispatch still preserves the draft because no command was sent. Recovery moves keyboard focus to the notice and then the restored result; late responses from a closed workspace are ignored.
The workflow guide describes recovery, and the README distinguishes typed confirmation for deletion/native actions from the explicit execution button for other reviewed updates.
Rebuild only the portal service, preserving the existing instance ID and data volumes. No native class or data migration is required. This improves handling of cached evidence; server authorization remains in place and previously exported files cannot be revoked.
Validation: production build, 236 Node tests and 41 actual-component browser checks passed. Manual desktop and 390px checks covered denied/transient access, keyboard recovery, retained command identity and an unconfirmed result without an execution button. Synthetic transport only; no native or durable writes.
Command history now checks saved-record access separately after a refused or missing reconciliation. While checking, it hides the matching result and filtered-index export entry. A successful GET restores the current record; a missing or forbidden record is removed. Temporary failures offer Retry record access without repeating the original command or its reconciliation.
Older refresh responses no longer replace a more recently selected command. Search, outcome and date filters are preserved, and recovery moves keyboard focus to the relevant message or restored result. A failed index read does not prevent an independent, authorized detail read. A temporary read failure for the same selected record retains its previously read evidence.
The documented Node.js requirement is now 22.12 or newer, matching the existing build tools. No dependency upgrade is included. Rebuild only the portal service and preserve the configured instance ID and data volumes; no native class or data migration is needed.
History filters now fit their desktop panel, and the Reviewed command fields table supports keyboard scrolling on narrow screens.
Validation: production build, 236 Node tests and 28 actual CommandHistory browser checks passed. Manual desktop and 390px checks covered recovery, focus, preserved search/outcome/date filters and table scrolling with synthetic records; no native or durable writes.
The Operations desk now checks saved-record access separately when Read current result is refused or reports a missing command. Protected details and the matching desk-export entry stay hidden while this GET runs. An authorized response restores the current record, including a result that has since been verified. A refused or missing GET removes it. Temporary read failures offer Retry record access without repeating reconciliation or the original administrative command.
The recovery message receives keyboard focus, and a successful retry returns focus to the current record. Delayed responses cannot replace another selection or restore evidence after a newer access refusal. Unrelated readable records remain available.
Rebuild only the portal service while retaining the configured instance ID and existing data volumes. No native class changes or data migration are required. This improves handling of already downloaded evidence; server authorization checks remain in place and previously exported files cannot be revoked.
Validation: production build, 236 Node tests and 43 actual-component browser checks passed. Manual desktop and 390px checks covered visible recovery, natural Tab navigation, a verified restored record and selective denial cleanup. Synthetic data only; no native or durable changes.
Try the interactive access example without installing IRIS: https://igorandor.github.io/access-atlas/
It uses the same Access map and Resource matrix as Atlas with clearly labelled synthetic data. Follow two paths to TrainingOrders, remove SupportTeam in the preview, and see why read permission remains through ReportingReader. Reset the preview and inspect public permissions separately. The example has no credentials, IRIS connection or saved campaign.
The walkthrough is expandable, and the resource matrix now has a named keyboard-scroll region on narrow screens. The installed portal retains its normal account inspection and initial resource filter. Documentation links the example to the first review on a real instance.
Validation: normal build and276 tests, separate static build, ten actual-component browser checks, and desktop/390px keyboard QA. The standalone artifact excludes the API/server modules, uses local assets and blocks API connections through CSP. It is a training example, not a hosted IRIS instance or a claim to cloud-demo bonus points.
Existing installations can rebuild only the portal service while preserving the configured instance ID and data volumes. No native class or data migration is required.
Investigation reports now identify the saved case, owner, instance, revision and creation/update times. A closure reason is labelled as a previous resolution when the case has been reopened. Capture identifiers and authors let the recipient connect evidence to the saved review; comparison reports also show the selected capture and review identifiers.
Both HTML exports wrap long routes, references and notes on narrow screens. The handover guide explains how to read the report and when to include the full saved JSON record. Existing evidence and source limits are preserved.
Rebuild only the portal service, preserving existing IRIS/data volumes and the configured instance ID. No native classes or data migration are required.
Validation: production build and325 tests, including five report regressions; desktop and390px browser checks with synthetic records. Both report documents now fit the available phone width without clipping long text.
Printable handover reports now fit narrow screens when routes, references or follow-up names are long. Responsibility fields stack on phones, and the follow-up and journal tables support keyboard scrolling without compressing dates into unreadable fragments. Desktop columns retain room for state and timestamps.
The first-run guide explains how to open the printable report and when to include the full JSON package. Exported values, access controls and print sizing are unchanged.
Validation: production build, four existing handover-report tests, and desktop/390px browser checks using a schema-valid synthetic run. Only the portal service needs rebuilding; retain the existing instance ID and IRIS/run volumes. No native classes or data migration are required.
README: links to the video (https://youtu.be/gUsxZi-uAD4) and to the Developer Community article. Full list: https://github.com/DawidKrynski/iris-admin-deck/blob/main/CHANGELOG.md
Wide HTML report tables are now horizontally scrollable on narrow screens, keeping dates and notes readable instead of squeezing each column. Each table has a named focusable region for keyboard navigation and a short mobile hint. Desktop and print width rules remain unchanged.
Validation: production build, 25 existing report/domain tests, and desktop/390px browser checks across all five wide table sections. Arrow-key scrolling reached the last note column without widening the document. Exported values and CSP are unchanged. Rebuild only the portal service; preserve the campaign volume and configured instance ID.
README without in-page links: Open Exchange renders headings without anchors, so links such as A morning on call went nowhere on this page. Full list: https://github.com/DawidKrynski/iris-admin-deck/blob/main/CHANGELOG.md
Campaign activity now shows the reason, follow-up date, review time and capture identifier saved with each certification or finding decision. Earlier decisions remain readable after a later decision replaces them. Both activity views use the same expandable evidence display.
Including Campaign activity in an exported report also includes these historical decision facts in JSON, Markdown and HTML. HTML uses separate revision entries so reasons remain readable on narrow screens. Current review status remains separate, and excluding activity excludes the historical decision details.
Validation: production build and 273 tests, including six new report/component regressions, plus desktop and390px browser checks with synthetic records. Rebuild only the portal service, preserving the existing campaign volume and instance ID. No native class changes, permission changes or data migration are required.
0.3.0 adds archived messages.log files (Community Opportunity idea DPI-I-966). Log investigation lists messages.old_* rotations with size and last-write time, newest first, and reads them with bounded paging and search. IDs are validated; paths, symbolic links and special files are refused.
The disposable-lab rotation helper now checks the recorded container ID, pinned image and loopback port before changes, targets that fixed ID and restores the original setting with readback. Existing labs require explicit identification.
README reorganized with quick start, contest mapping and screenshots. Verified on IRIS Community 2026.2 Build 221U, x86-64: 43 JavaScript and 16 Python tests, plus live management and log checks with fixtures restored.
Video: https://youtu.be/i_EW6gS3EJg
Code: https://github.com/rafaorlando3/iris-relay/commit/954def086536ed8d2b529e0141f984f69ebb436c
Idea: https://ideas.intersystems.com/ideas/DPI-I-966
Fix: the extension API decodes request bodies as UTF-8, so the change log stores names with typographic quotes correctly. The prebuilt image on ghcr.io is published for amd64. Full list: https://github.com/DawidKrynski/iris-admin-deck/blob/main/CHANGELOG.md
Operations desk now removes cached entries and their open inspector immediately when a source refuses access. A refused or missing individual record is also removed. Older or delayed reads cannot restore the cleared details.
Temporary source failures preserve a previously read inspector and confirmed reconciliation result. Other readable sources remain available. The workflow guide explains when to refresh and inspect again.
Validation: production build, 236 Node tests, 20 actual-component browser checks, plus desktop and390px checks with synthetic transport. Only the portal service needs rebuilding; preserve existing IRIS/run volumes and the configured instance ID. No native classes or data migration are required.
When the response to Create run is lost or unreadable, Waypoint now explains that the plan may already be saved and blocks a second creation in that dialog. Check saved runs refreshes history without repeating creation or executing any run step. Failed history reads preserve the entered fields and allow another read; denied access clears previously selected protected details.
The recovery control receives focus and scrolls into view. The first-run guide explains recovery, the README points to the correct run queue, and verification text encoding has been corrected.
Validation: production build, 236 tests, 17 actual-component browser checks, plus desktop and390px recovery checks with synthetic transport. Only the portal service needs rebuilding; preserve existing IRIS/run volumes and the configured instance ID. No native classes or data migration are required.
Follow-up CSV exports now calculate overdue dates when the export is requested. A report left open across UTC midnight therefore includes newly overdue items, using the current campaign revision and the selected filters. The report counters refresh at the same time.
Exports include every matching row across pages while preserving the current filters and page. A failed export shows an error and can be retried. The review guide explains how to export a focused work list.
Validation: production build, 267 tests, six browser checks, and desktop/390px manual checks with synthetic records and a controlled clock. No native writes or stored campaign changes were made during these checks.