Sürüm Geçmişi
MDP Integration Platform sürüm geçmişi ve changelog.
Proje: MDP Integration Platform
Başlangıç: 24 Temmuz 2023
Mevcut Sürüm: 1.18.23
Son Güncelleme: 2026-09-17
Özet İstatistikler
Bileşene Göre Değişiklikler
- Backend Server: ~450 değişiklik
- Frontend Server: ~400 değişiklik
- Frontend Web: ~50 değişiklik
Sürüm Dağılımı
- Majör Sürüm: 1 (v1.3.0 - İlk Sürüm)
- Minör Sürümler: 11 (v1.4 - v1.16)
- Yama Sürümleri: 46
- Toplam: 58 sürüm
Önemli Kilometre Taşları
- v1.3.0 (2023-07-24): İlk üretim sürümü
- v1.4.0 (2023-08-01): Cloud storage connector'ları
- v1.5.0 (2023-10-01): Mail & MongoDB desteği
- v1.6.0 (2024-01-01): Salesforce & OData entegrasyonu
- v1.7.0 (2024-04-01): Flow Mapping & Message Retrigger
- v1.8.0 (2024-07-01): Solace & EventBridge
- v1.9.0 (2024-11-01): OPC UA & Spring Boot 3 (Frontend Server)
- v1.10.0 (2025-03-01): Elasticsearch & Redis optimizasyonları, AI Monitoring
- v1.11.0 (2025-11-30): Kafka, AS2, OFTP2 Connector'ları
- v1.12.0 (2026-03-25): Health Check, Alert Rules, APISIX & API Management güncellemeleri
- v1.12.1 (2026-04-07): Health Check JWT/CORS düzeltmeleri, opsiyonel context path, backend test kapsamı & raporları
- v1.14.0 (2026-06-08): API Gateway güven modu, XSD Designer geliştirmeleri, bileşen bazlı sürüm notları (Backend, Frontend Server, Frontend Web, Health Check)
- v1.16.0 (2026-07-24): Flow Simulation, X.400 connector & EDI Converter — uzun süreli destek (LTS) sürümü
- v1.17.0 (2026-07-25): XI bağlantı paketi — yerel XI 3.0 mesajlaşması, ESR facade, Connections çalışma alanı (release candidate; 1.18.0 içinde finalize edildi)
- v1.18.0 (2026-08-20): Sistem log monitoring'i, ESR proxy üretim facade'ı, AS2 opsiyonel kimlik doğrulama — tek ürün versiyon hattındaki ilk sürüm
Toplam Commit: 1878 (Backend: 829, Frontend Server: 894, Frontend Web: 155)
Patch Changelog
Otomatik versiyon bazlı değişiklik listesi (derli toplu sürüm notları minor versiyon başına yayınlanır).
1.18.23 — 2026-09-17
- mip-backend-server
- Merge pull request #597 from mdpint/fix/oftp2-exchange-buffer-error-code
- fix(oftp2): give the exchange-buffer-too-small branch its own error code
1.18.22 — 2026-09-17
- mip-backend-server
- feat(oftp2): make SSIDCRED and SSIDSDEB per connection, and send every buffer
1.18.21 — 2026-09-15
1.18.20 — 2026-09-15
- mip-backend-server
- Merge pull request #594 from mdpint/fix/splitter-monitoring-output
- fix(splitter): resolve XPath prefixes from the message's own xmlns declarations
- fix(splitter): show the split pieces as the node's monitoring output
- mip-frontend-web
- Merge pull request #234 from mdpint/fix/splitter-xpath-namespace-hint
- feat(splitter): hint how XPath namespace prefixes resolve
1.18.19 — 2026-09-15
- mip-backend-server
- Merge pull request #593 from mdpint/feature/staging-priorityclass
- Merge pull request #586 from mdpint/feature/graphical-mapping-test-input-and-function
- Merge branch 'dev' into feature/graphical-mapping-test-input-and-function
- fix(graphical-mapping): report a missing JCo runtime as a lookup failure so onError applies
- Merge remote-tracking branch 'origin/dev' into feature/graphical-mapping-test-input-and-function
- feat(k8s): give postgres, its replica and Elasticsearch scheduling priority
- perf(graphical-mapping): prepare a mapping once per version instead of once per message
- fix(graphical-mapping): select the source schema so the engine can plan from it in production
- refactor(graphical-mapping): move input resolution into a FunctionInputResolver and name the exchange properties
- refactor(graphical-mapping): run every function node as one loop over its iteration space
- refactor(graphical-mapping): compute a node's iteration space in the planner
- test(graphical-mapping): record every function invocation per golden fixture as a second oracle
- refactor(graphical-mapping): move function output writes into a FunctionOutputWriter and drop the static path delegates
- feat(graphical-mapping): plan array contexts from the CanonicalStructure and fix the nested writes it exposed
- refactor(graphical-mapping): plan each function node's array context in an ArrayContextPlanner before it runs
- refactor(graphical-mapping): carry per-message engine state in an ExecutionSession instead of ThreadLocals
- refactor(graphical-mapping): move the path walkers into one MappingPathNavigator
- feat(graphical-mapping): derive a per-mapping CanonicalStructure and prove parity with the engine's runtime guesses
- fix(graphical-mapping): write a JSON null as an empty XML element instead of the text "null"
- fix(graphical-mapping): copy a directly mapped primitive array instead of dropping it
- mip-frontend-server
- Merge pull request #674 from mdpint/feature/graphical-mapping-improvements
- Merge branch 'dev' into feature/graphical-mapping-improvements
- fix(test): supply ImportedSapObjectService to the FlowService slice
- fix(sap-import): materialize reuses an existing flow resource, and flow copy carries the links over
- Merge branch 'dev' into feature/graphical-mapping-improvements
- feat(rfc-destination): find RFC_LOOKUP usages inside graphical mappings
- fix(flow-mapping): carry a cleared source schema into the version row
- feat(flow-mapping): allow a mapping with no source schema
- mip-frontend-web
- Merge pull request #233 from mdpint/feature/remove-mapping-env-flag
- feat(graphical-mapping): drop VITE_MAPPING, mapping is part of the product
- Merge pull request #227 from mdpint/feature/graphical-mapping-quick-test-improvements
- Merge branch 'dev' into feature/graphical-mapping-quick-test-improvements
- fix(graphical-mapping): stop 391252f8 from emptying type-only schemas
- fix(graphical-mapping): resolve named complexTypes from the schema root
- fix(sap-rfc): raise the Browse & Select RFC failures as errors
- feat(graphical-mapping): close four gaps between the function palette and the engine
- fix(graphical-mapping): keep a failed Test Mapping run on screen
- Merge branch 'dev' into feature/graphical-mapping-quick-test-improvements
- test: make the two permanently-red suites actually run
- feat(graphical-mapping): delete a transformation edge by hovering it
- fix(graphical-mapping): lay the transformation out by its handles, not its node tops
- feat(mapping-logs): report a function's total duration
- feat(mapping-logs): one windowed index-chip strip for both trace panels
- fix(graphical-mapping): serialise function inputs in handle order
- fix(graphical-mapping): show wiring that runs through a function
- feat(graphical-mapping): target-only mappings, and keep
mappingshonest about functions - feat(graphical-mapping): RFC Lookup function node
- feat(graphical-mapping): syntax-highlighted Test Mapping panel on a shared CodeEditor
- mip-health-check
- Merge pull request #79 from mdpint/feature/staging-alerting
- feat(k8s): show unhealthy pods and firing alerts on the Grafana dashboards
- feat(k8s): remind on Teams every 30s, keep e-mail at 5m
- feat(k8s): add mip-alerting.sh to manage staging alert delivery with one command
- feat(k8s): deliver staging alerts by e-mail and Teams, add MIP alert rules
1.18.18 — 2026-09-14
- mip-frontend-web
- Merge pull request #232 from mdpint/test/timeframe-selector-contract
- test(docs): the documentation gate covers every test file this branch touched or added
- test(journey): every row a time-filtered list returns must fit the window it was asked for
- fix(timeframe): an absolute end is always sent as written, and whether a window is open-ended comes from its expression
- fix(pages): a failure that reported nothing, a message shown twice, and a refresh that sent NaN
- fix(timeframe): a window chosen in the time bar now follows the clock when the page asks again
- test(journey): the timeframe box must fetch by itself, so type with the keyboard and wait for it
- test(timeframe): the shared contract that drives the real selector on every page that hosts it
- test(harness): one CRUD contract every list page runs, and an item layer on top of it
- fix(tables): a page size chosen mid-search was ignored, and a sort inside the same window was dropped
- fix(timeframe): after a preset the popover kept the keyboard, so a typed window went nowhere
1.18.17 — 2026-09-14
- mip-frontend-server
- Merge pull request #678 from mdpint/fix/end-date-written-precision
- fix(api-management): rejected requests end at the written precision, and a missing end means now
- fix(monitoring): a missing end is the moment of the request, and the System Logs viewer honours the written precision
- fix(time): an end bound advances by the precision it was written in, not by its smallest non-zero field
- mip-frontend-web
- chore(odata): drop the matrix cell builders, whose job is finished (#231)
- feat(odata): paged and delta read configuration, and the cartesian E2E that proves it (#230)
1.18.16 — 2026-09-14
- mip-backend-server
- feat(odata): paged and delta reads that survive a dead target (#592)
- mip-frontend-server
- feat(odata): carry the paged-read, delta and CSRF settings through the flow-data models (#677)
1.18.15 — 2026-09-11
- mip-backend-server
- Merge pull request #591 from mdpint/fix/multicast-thread-safety
- fix(multicast): select branches by CamelMulticastIndex and scope the error flag to the message
- fix(multicast): make MulticastProcessor stateless so concurrent messages cannot corrupt each other's branches
1.18.14 — 2026-09-11
- mip-backend-server
- Merge pull request #589 from mdpint/fix/console-surface-findings
- fix(webdav): a failing poll had no identity, so its node log was dropped once per poll
- mip-frontend-server
- Merge pull request #676 from mdpint/fix/console-surface-findings
- fix(test): a sibling's javadoc had been taken by the test inserted above it
- fix(monitoring): a run that recorded no node is not a node the flow deleted
- fix(monitoring): a list's filter options were read from a store the list was not reading
- mip-frontend-web
- Merge pull request #229 from mdpint/fix/console-surface-findings
- test(matrix): the column that says which node a record names
- test(journey): two journeys stop asserting a surface this installation does not have
- fix(service-users): in single-credential mode the user and its credential are one thing
- fix(system-logs): "no logs yet" described a state no service is in
- fix(monitoring): the message list's columns - which ones, how wide, and how each reads
1.18.13 — 2026-09-10
- mip-backend-server
- Merge pull request #588 from mdpint/fix/frontend-probe-legacy-endpoint
- fix(endpoints): frontend latency probe honours legacy FRONTEND_HTTP_ENDPOINT again
1.18.12 — 2026-09-10
- mip-backend-server
- Merge pull request #587 from mdpint/fix/monitoring-silent-gaps
- chore(inventory): the park count, the compliance list, and the version
- test(outage): the mode that proves a timeout is enforced had never run once
- feat(enum): PLC4X gets the name the console has been persisting all along
- fix(connector): the timeout that bounded only the handshake - written, measured, and PARKED
- refactor(schedule): one Quartz-to-Spring dialect, written once and called by nothing yet
- refactor(monitoring): the waits move to properties, and the binding is parked in the same breath
- fix(monitoring): the record a failed run leaves, in every store that writes it
- fix(routing): three route shapes that read as one thing and built another
- mip-frontend-server
- Merge pull request #675 from mdpint/fix/monitoring-silent-gaps
- fix(credentials): a Start node's Azure or AWS credential is protected from deletion again
- mip-frontend-web
- Merge pull request #228 from mdpint/fix/monitoring-silent-gaps
- chore(version): the version line and the feature register
- test(journey): the record a failed run leaves, and two ways this suite could not see it
- test(journey): the start-connector list is bound to its enum instead of a fourth copy
- test(journey): one resolver for the ports a worktree moves, and every spec through it
- fix(tables): a debounced search fired a fetch built before the sort, and the late page won
- refactor(log-levels): one dictionary for the tokens two selects have to agree on
- fix(system-health): the Component Health table was a debug dump wearing the page's name
- mip-health-check
- Merge pull request #77 from mdpint/fix/monitoring-silent-gaps
- fix(monitoring): a store this deployment does not run is not a component in a fault state
- Merge pull request #78 from mdpint/feat/external-api-overall-reason
- feat(pods): reap stale dbo.pod_names rows no backend pod answers for
- feat(external-api): overall.reason + overall.issues[] say where the problem is
1.18.1 — 2026-09-10
- mip-backend-server
- (changes before this baseline are covered by earlier release notes)
- mip-frontend-server
- (changes before this baseline are covered by earlier release notes)
- mip-frontend-web
- (changes before this baseline are covered by earlier release notes)
- mip-health-check
- (changes before this baseline are covered by earlier release notes)
- mip-ai-engine
- (changes before this baseline are covered by earlier release notes)
1.18.11 — 2026-09-08
- mip-backend-server
- Merge pull request #584 from mdpint/fix/node-payload-visibility
- test(monitoring): the promotion guard was pinned to two properties the refactor removed
- docs(routes): the promotion branch's comment claimed a constraint that does not exist
- fix(monitoring): three writes that never ran, and the branch that kept the whole context from starting
- docs(features): the No Payload row taught a re-deploy that is not needed, and a behaviour that changed
- fix(no-payload): promote the main row's input on the Elasticsearch side too, not only on JDBC
- feat(no-payload): carry the body like Only I/O and never store it, instead of storing then clearing
- test(route-definition): move two source-scan anchors off the level literal they were pinned to
- fix(node-log): the log reads the body without emptying it, and the level dispatch has a floor
- mip-frontend-server
- Merge pull request #671 from mdpint/fix/node-payload-visibility
- Merge pull request #672 from mdpint/fix/schema-fixup-must-not-take-the-user-seed
- fix(ddl): an apostrophe in a comment reads as an unterminated literal
- fix(startup): the guarded fix-up is its own statement, and ddl.sql keeps the plain form
- fix(startup): a schema fix-up that cannot be applied must not take the administrator with it
- docs(features): the No Payload row taught a re-deploy that is not needed, and a behaviour that changed
- refactor(monitoring): remove payload masking entirely, and read the level from a shared token
- fix(monitoring): mask node payloads by the level the flow is set to, not by the shape of a row
- mip-frontend-web
- Merge pull request #224 from mdpint/fix/node-payload-visibility
- fix(ci-fixture): restore the primary keys this dump was missing - all of them
- docs(features): the No Payload row taught a re-deploy that is not needed, and a behaviour that changed
- mip-health-check
- Merge pull request #75 from mdpint/fix/node-payload-visibility
- docs(features): the No Payload row taught a re-deploy that is not needed, and a behaviour that changed
1.18.10 — 2026-09-07
- mip-backend-server
- Merge pull request #583 from mdpint/fix/alert-mail-resilience-and-open-defects
- fix(schema): the H2 schema is what the converter emits, not what a hand edits into it
- fix(observability): a correlation that names nothing is removed from the MDC, not written as dashes
- Revert "chore(alert-mail): park the last-known-good configuration cache and everything that proved it"
- chore(alert-mail): park the last-known-good configuration cache and everything that proved it
- test(alert-mail): the seed address property is app-prefixed and drops the redundant "test"
- test(alert-mail): the seed address is a SENDER, and it is configured in the test config
- test(alert-mail): derive undeliverable addresses on .invalid, not .local
- test(alert-mail): seed addresses come from the environment, on a domain we control
- chore(hygiene): the mail peer names a compose service that exists, and four stale records agree with the code
- test(alert-mail): rewrite the outdated skip instead of leaving it switched off
- test(alert-mail): the ordinary day - CRUD against a healthy database, with the cache in place
- feat(correlation): the flow reference names the connector step it was written under
- test(retention): the registry is now a guard, in all three repositories
- test(retention): one contract now covers all seven statistics sweeps, and the registry admits the Postgres half
- fix(retention): an attachment now leaves with the run it belongs to
- feat(messages): the two inbound no-auth refusals now emit the codes they declared
- feat(outage-retention): component_outages gets the local_date every other monitoring table has
- fix(schema): the procedure that empties component_outages was in none of the frozen dumps
- fix(alert-mail): the outage kept the configuration and dropped the identity
- mip-frontend-server
- Merge pull request #670 from mdpint/fix/alert-mail-resilience-and-open-defects
- feat(inbound-auth): the designer asks the SERVER whether no-auth is offered, not its own env
- refactor(monitoring): ComponentOutage belongs with the monitoring entities, not other
- fix(ai-monitoring): key the round-trip id on identity, and stop the composite dropping status-less failures
- feat(sync): delete a window without syncing it, and stop AI grouping on errorType
- feat(correlation): the flow reference names the connector step it was written under
- test(retention): the registry is now a guard, in all three repositories
- test(retention): one contract now covers all seven statistics sweeps, and the registry admits the Postgres half
- fix(retention): an attachment now leaves with the run it belongs to
- feat(outage-retention): component_outages gets the local_date every other monitoring table has
- fix(schema): the procedure that empties component_outages was in none of the frozen dumps
- fix(auth): the password-reset link pointed at the wrong service, on a literal port
- refactor(endpoints): both internal proxies read backend's Spring port from the catalog
- fix(mirror): re-sync the connector vocabulary frontend-server reads from
- docs(features): re-sync docs/features.md with the canonical registry
- mip-frontend-web
- Merge pull request #223 from mdpint/fix/alert-mail-resilience-and-open-defects
- test(e2e): the third StartSyncDialog call site, a portless REST base, and a racy confirm click
- test(e2e): compose the Keycloak issuer from base + realm, the way the product composes it
- test(e2e): let the navigation and action timeouts be raised for a vite-dev lane
- feat(inbound-auth): the designer asks the SERVER whether no-auth is offered, not its own env
- fix(sync-jobs): Direction stays editable in discard-only mode - it names the store that loses data
- fix(journey): read Message from the column it is now in, not from the last one
- test(e2e): stop pinning MIP addresses to the id=0 instance, and name the checkbox the assertion means
- test(sync-migration): let the journey seed its own attempt history instead of trusting the database
- feat(sync-jobs): a delete-only mode, an outage attempt history, and a chip that reads the outcome
- feat(correlation): the flow reference names the connector step it was written under
- feat(outage-retention): component_outages gets the local_date every other monitoring table has
- fix(schema): the procedure that empties component_outages was in none of the frozen dumps
- test(inbound-auth): drive the flag that decides whether NONE is offered
- fix(test): declare js-yaml, which a test imported and no package.json named
- docs(features): re-sync docs/features.md with the canonical registry
- feat(inbound-auth): offer unauthenticated inbound only where it is deliberately enabled
- test(alerts): re-enable the sort case, and make its ascending half mean something
- feat(system-logs): lead with the correlation and the message, and let the message open
- mip-health-check
- Merge pull request #74 from mdpint/fix/alert-mail-resilience-and-open-defects
- test(alert-mail): the seed address property is app-prefixed and drops the redundant "test"
- test(alert-mail): the seed address is a SENDER, and it is configured in the test config
- test(alert-mail): .invalid instead of .local, matching the backend twin
- test(alert-mail): the same address contract as the backend twin
- fix(outage-history): make the save-only-on-change guard reachable, and refresh by when the LINK was made
- feat(alerts): read the mail server from the console, and record what was tried against an outage
- feat(correlation): the flow reference names the connector step it was written under
- test(retention): the registry is now a guard, in all three repositories
- test(retention): one contract now covers all seven statistics sweeps, and the registry admits the Postgres half
- feat(outage-retention): component_outages gets the local_date every other monitoring table has
- fix(tests): the two new test classes failed the documentation gate
- test(outage-ageing): run the sweep against a real database instead of verifying the call
- refactor(endpoints): one owner for frontend-server's address, with the catalog behind it
- refactor(probe): the frontend liveness probe asks the endpoint catalog for the address
- docs(features): re-sync docs/features.md with the canonical registry
- fix(alerts): the thresholds survive the outage too, not just the recipients
1.18.9 — 2026-09-04
- mip-backend-server
- Merge pull request #582 from mdpint/feature/delete-log-audit-and-outage-history
- feat(delete-logs-job): make the nightly deletion record what it actually did
- mip-frontend-server
- Merge pull request #669 from mdpint/feature/delete-log-audit-and-outage-history
- feat(delete-logs-job): make automatic failback run, finish the row a deletion leaves behind, and create the columns health-check reads
- mip-frontend-web
- Merge pull request #222 from mdpint/feature/delete-log-audit-and-outage-history
- feat(outage-history): route the admin from a store outage to the sync that repairs it
- mip-health-check
- Merge pull request #73 from mdpint/feature/delete-log-audit-and-outage-history
- feat(outage-history): record what health-check deletes, when each store was unavailable, and stop an enrichment call from silencing the cluster alarms
1.18.8 — 2026-09-04
- mip-backend-server
- Merge pull request #578 from mdpint/feature/observability-and-connector-logs
- feat(connector-log): one code per STEP, so a shared helper stops speaking for many
- feat(connector-log): give every step site its own code, not one connector in ten
- fix(logging): take the poll off INFO, and make the lines that stay findable
- fix(connector-log): pay the five debts a new step type carries
- feat(connector-log): give a poll a readable account, and every step a code of its own
- mip-frontend-server
- Merge pull request #668 from mdpint/feature/observability-and-connector-logs
- fix(schema): give the test's Postgres the column the entity now declares
- feat(connector-log): serve the step code, so a row can say WHICH step it was
- mip-frontend-web
- Merge pull request #218 from mdpint/feature/observability-and-connector-logs
- test(e2e): skip the Alerts descending-sort case, with the reason on the line
- refactor(e2e): one host constant per file, not two
- fix(e2e): stop three constants from being defined in terms of themselves
- fix(e2e): read the API host, never write it in
- fix(connector-log): two columns shared one id, so Step Code rendered '---'
- test(journey): drive the poll bracket, and prove the bracket has no direction
- test(journey): assert the columns this feature changed, and stop reading them by position
- feat(logs): show the step code, and put the System Logs columns in the line's own order
1.18.7 — 2026-09-04
- mip-backend-server
- Merge pull request #566 from mdpint/feature/rfc-destination-credential
- Merge pull request #577 from mdpint/feature/sftp-undeploy-drain
- feat(oftp2): NERP support, and the error path that carries a partner's reason to Monitoring (#567)
- Merge remote-tracking branch 'origin/dev' into feature/sftp-undeploy-drain
- fix(xi): error altitude - immediate ERROR for flow failures, loss-proof monitoring writes (#579)
- refactor(sftp): drop the informational per-file and per-round poll logs
- feat(rfc-destination): log on to SAP with a pooled BASIC credential
- Merge remote-tracking branch 'origin/dev' into feature/sftp-undeploy-drain
- fix(jdbc): harden the idempotent c3p0 pool against closed connections
- feat(sftp): bound the poll loop, commit files per iteration and add an undeploy strategy
- mip-frontend-server
- Merge pull request #656 from mdpint/feature/rfc-destination-credential
- Merge pull request #666 from mdpint/feature/wsdl-element-form-default
- feat(chatbot): /chat/ack BFF for the typewriter pre-summary
- Merge pull request #667 from mdpint/feature/sftp-undeploy-drain
- feat(ai-engine): surface the OpenRouter key's remaining credit in the config tab
- feat(rfc-destination): reference a pooled BASIC credential instead of an inline logon
- Merge pull request #665 from mdpint/feat/chatbot-ai-engine-route
- Merge remote-tracking branch 'origin/dev' into feat/chatbot-ai-engine-route
- feat(sftp): carry the poll cap and the undeploy strategy through the flow model
- fix(ai-engine): use EntityManager not JdbcTemplate (no such bean in fe-server)
- feat(ai-engine): BFF for the Endpoints "AI Engine" config tab
- feat(chatbot): flag-gated cutover of AI Flow to mip-ai-engine (F2-1)
- fix(wsdl): declare elementFormDefault on served WSDL schemas that omit it
- mip-frontend-web
- Merge pull request #205 from mdpint/feature/rfc-destination-credential
- Merge pull request #221 from mdpint/feat/system-logs-umbrella-tab
- feat(rfc-destination): make the pooled credential the only logon the console offers
- feat(operations): fold System Log Settings into a System Logs umbrella tab
- ci: sync test/pnpm-lock.yaml with test/package.json (add react-router-dom)
- feat(chatbot): type a fast pre-summary while the real generation runs
- Merge pull request #217 from mdpint/feature/sftp-poll-limit-and-undeploy-behaviour
- feat(ai-connections): show the OpenRouter key's remaining credit on the AI Engine tab
- Merge pull request #219 from mdpint/feat/operations-tab-reorg
- Merge pull request #220 from mdpint/fix/xi-wsdl-stale-selections
- test(e2e): align Operations smoke specs with the umbrella-tab layout
- Merge pull request #215 from mdpint/feat/ai-engine-config-tab
- feat(operations): AI Connections card — MCP Servers + AI Engine tabs
- fix(xi): revalidate the WSDL-derived interface pair when the resource changes
- Merge remote-tracking branch 'origin/dev' into feat/ai-engine-config-tab
- Merge remote-tracking branch 'origin/dev' into feat/operations-tab-reorg
- feat(sftp): expose Max Files Per Poll and Undeploy Behaviour on the SFTP node
- fix(ai-engine): ApiUrls is a default export, not named
- feat(endpoints): AI Engine config tab — OpenRouter key + model selection
- feat(operations): fold Alert Configurations and DB Analysis & Backup into umbrella tabs
- mip-health-check
- Merge pull request #69 from mdpint/feature/rfc-destination-credential
- docs(features): re-sync the feature registry mirror with the canonical
- mip-ai-engine
- (changes before this baseline are covered by earlier release notes)
1.18.6 — 2026-09-03
- mip-frontend-web
- Merge pull request #214 from mdpint/fix/designer-start-connector-copy-block
- Merge pull request #216 from mdpint/fix/vite-feature-flag-build-override
- fix(designer): keep the flow's single Start out of the clipboard
- Merge remote-tracking branch 'origin/dev' into fix/vite-feature-flag-build-override
- fix(docker): stop the feature-flag ARG/ENV pair from overriding .env
1.18.5 — 2026-09-03
- mip-frontend-web
- test(e2e): deleting a service user who reset their password, and two suite fixes (#213)
1.18.1 — 2026-09-03
- mip-backend-server
- Merge pull request #575 from mdpint/feature/observability-and-connector-logs
- fix(connector): route every self-starting flow's failures, and bound OFTP2 on silence
- feat(observability): per-connector step traces, tapped, gated and named by content
- feat(xi): per-flow software component for uncataloged ESR facade objects (#574)
- fix(xi): receiver interfaces in the ESR facade and EOIO PROCESSING restart recovery (#573)
- Merge pull request #571 from mdpint/feature/as2-inbound-signature-byte-fidelity
- fix(x400): decode multi-bodypart IPMs and route the real payload part (#572)
- fix(as2): preserve inbound EDI bytes so partner signatures verify
- Merge pull request #569 from mdpint/feature/observability-no-connector-prod
- feat(observability): the shared mechanism, without connector log, error type or system log
- refactor(enums): rename the constant holders to what they actually hold
- test(alert-mail): e2e coverage for the redesign, plus the defects it surfaced (#568)
- ci: fix infinite ledger pagination loop that killed the version job
- mip-frontend-server
- Merge pull request #663 from mdpint/feature/observability-and-connector-logs
- fix(auth): delete users who reset their password, plus three defects found covering it (#664)
- feat(connector-log): read the connector trace, filter it, and let the interface speak sides
- Merge pull request #662 from mdpint/feat/xi-esr-custom-swc
- Merge pull request #660 from mdpint/fix/alert-schema-column-defaults
- feat(xi): xiSoftwareComponent pass-through on XI start and XI Proxy states
- fix(alerts): carry not-null column defaults in columnDefinition
- Merge pull request #657 from mdpint/feature/observability-no-connector-prod
- feat(observability): the shared mechanism, without connector log, error type or system log
- fix(alerts): validate what alert mail depends on, and seed both links (#658)
- ci: fix infinite ledger pagination loop that killed the version job
- mip-frontend-web
- Merge pull request #212 from mdpint/feature/observability-and-connector-logs
- feat(oftp2): expose the read-timeout field, and label it for the activity log
- feat(connector-log): the Connector Logs drawer, one payload strip for both screens
- Merge pull request #211 from mdpint/feat/xi-esr-custom-swc
- feat(xi): Software Component input on the XI start and XI Proxy panels
- test(e2e): fix the two specs that have kept dev red since 55e61352 (#210)
- ci(e2e): print diagnostics to the job log instead of uploading an artifact (#209)
- test(alerts): e2e for the redesign, chip recipients, and CI that can run them (#207)
- Merge pull request #206 from mdpint/feature/observability-no-connector-prod
- feat(observability): the shared mechanism, without connector log, error type or system log
- ci: fix infinite ledger pagination loop that killed the version job
- mip-health-check
- Merge pull request #72 from mdpint/feature/observability-and-connector-logs
- feat(observability): probe connector_log_details, and pin the shared wire contract
- Merge pull request #70 from mdpint/feature/observability-no-connector-prod
- feat(observability): the shared mechanism, without connector log, error type or system log
- ci: fix infinite ledger pagination loop that killed the version job