Skip to content

CtrlProcesses 1.26.9.14

Version 1.26.9.14 — September 2026 (current)

Section titled “Version 1.26.9.14 — September 2026 (current)”

The first release with a major version of 1. It carries a year of work on the Elements.cloud synchronization, a rebuilt viewer experience for both the classic desktop client and the new M‑Files Web client, and a large number of fixes found in review and in the field.

  • Open a diagram from a related object: an object‑click mapping can now follow a reference to the object that carries the Elements ids. When that object is a single activity, the viewer opens the right diagram and centres on the activity, marking it clearly.
  • Reference model flags and activity status lights: activities can carry a flag per configured reference model and a green/amber/red status light driven by a measured value, both configured in the vault application.
  • Data table records: a data table attached to an activity can be read in full, and viewers can add a record through a form when the table allows it. The permission is enforced on the server as well as in the browser.
  • Diagram‑level roll‑ups: optional properties on process diagrams listing the resources and reference models used by their activities.
  • Release relation: diagrams record the release that last changed them, and releases record the diagrams they changed (optional, configured per property).
  • Information panel: attachments, notes and data tables now open in a panel beside the diagram instead of over it. The panel loads every item at once in a stable order, and the diagram stays pannable while it is open.
  • The viewer shows its build number, so a reported fault can be matched to a version without opening the M‑Files administrator.
  • Resizable information panel: a grip on the panel’s left edge drags it wider, up to half the window, for the rest of the session.
  • Read the panel while you move the diagram: panning no longer closes the panel. A click on the diagram closes it, another activity’s paperclip replaces it, and it closes on its own when the activity it describes is dragged off screen or zoomed out too far to read.
  • The diagram stays in view: it can no longer be panned or zoomed out of the pane. A band along each edge of the diagram, a fifth of its size and scaled with the zoom, always stays inside the pane, so part of the diagram may be outside but never all of it.
  • Pictures open in a lightbox: an image in a note, or an image attachment, opens over the diagram scaled to fit, and closes on a click or Escape.
  • Errors you can send us: an error now opens a dialog over the diagram with a “Copy diagnostics” button. The diagnostics name the build, the client, the diagram and release, the time, and the error the vault reported.
  • Video embeds are back: YouTube and Vimeo links play inside the information panel in the new desktop client and in both web clients, with an Expand control that opens the player at full size. The classic desktop client keeps showing the link. “Enable video embeds” is now on by default; switch it off to show links everywhere.
  • Accurate automatic sizing and centering: every diagram landed off‑centre; three compounding defects were measured and fixed, and the viewer re‑frames the diagram when its pane is resized.
  • Labels that sit still: activity and flowline captions no longer drift or jump on and off their line as you zoom. Zoom lands on a ladder of fixed scales so text stays crisp, and a laptop pinch gesture now has the intended gain.
  • Smoother panning: dragging no longer revalidates the whole diagram on every pointer move, inertia panning is back, and dragging on diagram text works again in the classic client.
  • Modernised diagram controls and legend, one consistent type scale, and modal headers and button rows that match across the object creation and record forms. The zoom controls stand in a column at the bottom right, and the header is the same 48px bar CtrlPortals uses, with full‑height square buttons, menus that hang from its edge, and the M‑Files accent colour on the Raise Issue and Actions buttons unless the vault configures their own.
  • Theme fidelity: the viewer asks for the exact theme a diagram names, so a diagram that is blue in Elements is no longer drawn black.
  • Web and document links: web links open the way the new client expects, and document links open in M‑Files again.
  • Smaller package: unused font formats, unminified mxGraph sources and other dead weight were removed from the shipped package.
  • Elements synchronization hardening: rate limiting with retry budgets and back‑off, typed error handling, complete and verified paging of maps, property‑level change detection so unchanged objects gain no versions, and drift safety so an empty or malformed vendor response can never authorise deletions in the vault.
  • Background operations are visible in the dashboard with readable labels and a real progress bar, and no longer queue duplicate runs on restart.
  • A sync that reads only what changed. The sync now records, per diagram, the release state it was applied from and its child list. A diagram whose newest release and parent are unchanged, and whose object is still in the vault, is neither fetched from Elements nor written again; only diagrams changed in a new release are. Each published release’s diagram list is fetched once and kept. Measured against the test organization: a repeat run over 30 diagrams and 286 activities went from about 1,200 vault round trips to 6, and from reading every diagram twice to reading none.
  • Far fewer vault round trips on the runs that do write. Maps, diagrams, resources, reference models and releases are read from the vault once per run in bulk; the activities of a diagram and the nodes of a model are read once per parent. A forced full re‑sweep of the same organization costs 42 vault round trips instead of about 1,200, with no object gaining a version.
  • The sync can be exercised without a vault. The M‑Files side now sits behind a small gateway, and a new test runs the complete synchronization, reconcile and reappearance sequence against the live test organization and an in‑memory vault. Dead code was removed from the API layer (an unused cached endpoint and generic base type), and every Elements request now builds its authentication headers in one place.
  • Elements synchronization, reviewed end to end. The review of the object sync found a set of defects that could delete or strip live objects, and all of them are fixed in this build:
    • Every diagram is now read in the state of the newest release that lists it. The sync used to read the whole estate in the newest release’s state, which Elements answers only for the diagrams changed in that release (measured live: err.diagram.version-restricted). A map nobody had republished in the latest release therefore lost every diagram, fell out of the snapshot, and was deleted by the reconcile, then recreated with new object ids the next time someone released it.
    • A drilldown shared between two maps no longer stops the second map’s tree walk, and is written once, under the first map that reaches it.
    • The snapshots of one section (maps and their diagrams) are now believed together or refused together; the reconcile could previously delete the diagrams of maps whose disappearance the sync had just refused to believe.
    • An empty response body, or an error envelope that is not the documented “not here” one, when listing a diagram’s children is treated as vendor drift instead of an empty tree that authorised pruning the subtree.
    • Reference models and releases are paged through the same verified reader as maps; an absent total is no longer read as zero, which stopped their paging after one page.
    • Two releases published on the same day are ordered by release number, so the newer one is the change signal and the recorded watermark.
    • A class change on an existing object no longer strips every property the sync does not manage off the object.
    • A diagram payload with no activity collection leaves its usage roll‑ups untouched instead of clearing them, and an activity whose resource, node or attachment list has been emptied now has its lookups cleared.
    • A forced run that stopped early (wait budget, cancellation) is resumed by the next scheduled run; the change gate used to answer “already synced”.
    • One reference model whose structure this account cannot read no longer holds the reference‑model section, and with it the maps section, back forever; the model is applied and its nodes are left alone.
    • Objects that reappear in Elements after being reconciled away have the “Deleted in Elements” flag cleared, or are moved from the archive state to the new optional Restored state.
    • The sync and the reconcile can no longer run at the same time: a lease in the sync state keeps a manual trigger from overlapping the schedule, and the manual trigger now queues the same background operation. A snapshot and its completeness are written as one document, so the reconcile cannot pair a fresh id‑set with a stale verdict.
    • The Elements write path recognises “element does not exist” under any status, and reports other client errors as typed errors that are not retried.
  • The viewer failed to start for users with no user‑group mapping.
  • A note’s content could run past the right edge of the information panel when it carried an inline width, a fixed‑width table, a no‑wrap span or a long URL, in every client.
  • In the new client, the viewer did not always fill the full height of its tab.
  • In the classic client, the loading dimmer had rounded top corners that belong to the new client only.
  • Opening a document attachment never worked in the classic client.
  • The sync could rewrite an unrelated object that happened to share an Elements id; object lookups are now scoped to the synchronised type.
  • A single diagram outside the current release stopped its whole map syncing.
  • Clicking a mapped object while the viewer was loading opened the default diagram instead of the clicked one.
  • One orphan that could not be removed no longer blocks the rest of a reconcile.
  • Attachment URLs authored in Elements could inject script into the viewer; the ids are now validated and the values escaped.
  • The viewer no longer writes to the browser console, which threw in the classic client. The “Console debug logging” and “Debug logging” settings were removed.
  • M‑Files Cloud readiness: the last remaining write to the Windows event log now goes through the M‑Files logging framework, and a failure to install the viewer UI at start‑up is logged instead of ignored. A cloud validation package (source plus prebuilt viewer, with build instructions and a checklist statement) can now be produced with one script.
  • Dependencies: Newtonsoft.Json updated from 10.0.3 to 13.0.3 and RestSharp from 106.11.7 to 106.15.0, clearing the two published security advisories (CVE‑2024‑21907 and CVE‑2021‑27293) against the previous versions. Newtonsoft 13.0.3 is the version current M‑Files servers ship and redirect to; on older servers the application resolves the framework’s requests for its compiled version to the shipped one.
  • The version scheme is now major.year.month.build; 1.26.9.14 is the fourteenth September 2026 build of major version 1.
  • The first synchronization after upgrading reads the whole estate once more (it builds the release index and the per‑diagram apply state); every run after that reads only what changed. A forced run from the dashboard or the RunElementsSync method still reads and rewrites everything, and is the way to overwrite edits made by hand to synchronized objects.
  • The RunElementsSync vault extension method now queues the background operation and returns at once instead of running the sweep on the caller’s thread; watch the dashboard or the log for the outcome.
  • New optional configuration under Deletion: a Restored state that an archived object is moved back to when it reappears in Elements.
  • The viewer’s map list is now alphabetical rather than most‑recently‑updated first.
  • New optional configuration: activity status lights, reference model flags, data table records, diagram‑level resource and reference model roll‑ups, the release relation properties, and the sync rate‑limiting settings.