Changelog
Every notable change to EDT-Bridge, newest first.
Notable changes to EDT-Bridge, newest first. Entries are grouped by day; the versions released
that day are named in the heading. The format follows
Keep a Changelog and
Semantic Versioning. The plugin jar and the
edt-bridge-mcp wrapper share one version number.
Unreleased
Added
edt_project_errorsreports a marker’ssourceTypeandextraInfo– what tells the two validation families apart: documented checks come from the standards framework, a short code likeSU200comes from EDT’s own metadata validation.edt_check_inforecognises a short code and says what it is instead of “nothing found”. There is no code-to-slug mapping to dig out, as 0.7.1 assumed – the families are simply different, and matching by title stays the way to a description.
Fixed
run-headless.ps1refused to start whenever any GUI EDT process existed, including one that was still exiting. It now checks the real collisions – the port, the workspace lock, the shareddropins. Two neighbours:-Portonly changed which port was polled, so a non-default port started a second server on 8770; and a workspace with no projects was reported as not ready although the server was up.
2026-07-21 – 0.6.0, 0.7.0, 0.7.1
Added
- The configurator agent as a third transport to an infobase. Started with
/AgentMode, it holds an open session and takes commands over SSH – and authenticates as the infobase user, which neither EDT’s synchronization noribcmdcan do. A server infobase that authenticates its users is therefore reachable, extensions included. One agent per infobase, reused;edt_designer_agentlists and stops them. edt_infobase_config_state– is a database-configuration update still pending? The platform answers it itself: the update is started and its confirmation refused, so nothing is applied and the waiting changes come back as a list.edt_update_database_config– applies the database configuration. Loading a project does not do this, and until it happens every session keeps running the previous code – which is what a freshly added HTTP route answering 404 looks like.sessionTermination=forcedoes deny / terminate / apply in one call.edt_infobase_sessions– the cluster’s sessions throughrac: list and terminate. Neither the agent noribcmdreaches them. It exists because a designer that was killed rather than closed keeps the configuration lock, and every later operation then fails as though somebody else were configuring the base.edt_delete_extension– remove an extension from an infobase, the step that closed a one-way lifecycle. Needsforceon top ofapply.edt_infobase_dump– dump an infobase to a.dtthroughibcmd: the backup that belongs before applying a configuration.edt_update_infobasetakestransport=agent: designer XML goes straight into the base, with no throwaway infobase and no.cfin between – which is what makes it usable for a configuration with a million objects.edt_extension_propertiestakesinfobaseand routes through the agent – that is what makes a server infobase’s extensions reachable at all.edt_add_route– add a route to anHTTPService. It used to mean editing the.mdoby hand and generating the uuids of theurlTemplatesblock and its nestedmethods.- The ibcmd-backed tools take the 1C infobase credentials next to the DBMS ones. Without them ibcmd prompts for a user name on stdin – for a non-interactive caller a hang, not an error, and it ignores EOF (134 MB of prompts in 60 seconds, measured). Output is now read incrementally and the process killed the moment a prompt appears.
- Agent-backed tools address an infobase EDT does not know:
srv\base, or a file base’s directory. - Each ibcmd invocation gets its own working directory; without it they lock the same one and the next invocation anywhere fails.
Changed
edt_project_errorscan answer “what is wrong with the module I just edited”. It used to take a project name and return everything – 13 850 problems and ~5 MB on a large configuration. Newfqn/modulePath,severityandcountOnly, plustotal,bySeverity,bySourceand a capped list.edt_module_texttakesincludeMethods(default true): asking for one method no longer drags the module’s entire catalogue along – 147 methods on one production module, re-sent on every read.edt_module_text,edt_add_methodandedt_delete_methodresolveHTTPService.XandWebService.X: all three were affected by one gap in the module resolver’s folder map.- The README tool tables gained a section for everything that talks to a running infobase, with the transports spelled out – which one reaches what is the first thing a reader needs. Both diagrams redrawn.
- A test suite for the wrapper plus a
ciworkflow (Linux and Windows, 3.10 and 3.12) that both release workflows call first, so a red suite stops a release. Its core is the three regressions that actually shipped. - JUnit coverage for the EDT-independent part of the plugin, moved to
...edtbridge.coreso a plain JDK compiles and tests it.
Fixed
self-updateleft a stale jar indropinswhen the release jar was already there – and two copies of one bundle are what makes Equinox resolve an arbitrary one.- The diagrams lost their transparent corners;
scripts/render-diagrams.shnow pins the flags that decide it, a recipe that had lived nowhere.
2026-07-19 – 0.3.0, 0.3.1, 0.4.0, 0.4.1, 0.5.0
Added
- Forms, the full set:
edt_add_formcreates a managed form through EDT’s own generator – the engine behind the “New form” wizard. Items (edt_add_form_itemand its modify/remove pair) go through the service the form editor calls, so naming, ids, a field’s actual type and a table’s auto-filled columns are decided by EDT. Members likewise:edt_add_form_attribute/edt_add_form_commandwith their pairs, ids from EDT’s own service, handler stubs written into the form module. Removals list what still binds to the member and requireforce. edt_adopt_object– adopt an object of the base configuration into an extension through EDT’s own adopter. Without it a created extension project stopped halfway: intercepting a method requires the owning object adopted first.edt_search_modules– full-text search across a project’s BSL modules. Reading goes through Eclipse’s buffer manager, so a module open in an editor is searched as it currently stands, unsaved edits included.edt_clean_project– discard build results so validation runs again, the programmatic equivalent of EDT’s “Clean”. A stale marker can otherwise outlive the code that caused it.edt_delete_project– remove a project from the workspace through Eclipse, so its resource tree is updated; deleting the folder by hand leaves a ghost project that keeps the name taken.edt_extension_properties– read and set what an extension carries inside an infobase (safe mode, protection from dangerous actions, active, scope). A newly registered extension gets safe mode and dangerous-action protection on, and an extension that changes methods of the base configuration cannot run under either.edt_build_extensionandedt_update_infobasereportchangesMethodsand, when true, name the two flags that must be off.edt-bridge-mcpcan be driven from a shell:call <tool>,tools,status. Until now anything outside an MCP client meant hand-writing a client against port 8770. Exit codes separate “the call could not be made” (1) from “the tool ran and failed” (2).self-update --from <checkout>installs the wrapper from a local checkout instead of PyPI.- Platform and infobase tools:
edt_platform_installations,edt_register_platform,edt_create_infobase,edt_build_extension(a.cfethroughibcmd). edt_metadata_detailsreports aCommonModule’s compilation flags and anExchangePlan’s content – both previously sent callers to grep the.mdoon disk.edt_create_external_objectacceptsscriptVariant: EDT defaults a standalone project to English, which made generated members come out asObjectrather thanОбъект.- An EDT-Bridge preferences page (token, port, evaluate switch), so a GUI EDT launched from a plain shortcut can authenticate the write tools.
Fixed
edt_create_extensionproduced a project no infobase would load – it failed with “the load must not change the ownership of the main configuration object”. The rootConfigurationwas built by the md factory, which yields a plain full configuration. It is now the base configuration adopted, the same step EDT’s own wizard performs, so the engine writes everything an extension needs. Two consequences closed with it: adopted objects now carry the uuid link to the base object instead of binding by name, and the base configuration’s default language comes along.edt_dump_external_objectbuilds an.epf/.erfagain where EDT cannot: EDT resolves the newest build of a version line, so a line topped by thin-client builds failed withMatchingRuntimeNotFound. There is now an on-disk route, and the dry-run stopped lying about it.- Modules of external objects resolve by FQN –
ExternalDataProcessorandExternalReportwere simply absent from the folder map. self-updatecould not update the wrapper on a current pipx: a uv-built venv has no pip at all. It no longer uses an installer – the wheel is unpacked over the package with the standard library alone.- The wrapper reported a stale version through two releases:
__init__.pycarried a literal thatpyproject.tomldid not use. The package version now derives from that one attribute. - The MCP server reports the plugin’s own version from the bundle manifest instead of a hard-coded string, so the dashboard and the handshake cannot drift apart.
- The stdio wrapper pins its standard streams to UTF-8. On Windows they defaulted to the ANSI code
page, so a “→” in a tool description aborted
tools/listand the client registered no tools at all. edt_infobasesexpands infobase groups, so grouped and server infobases are no longer omitted.
Changed
- Internal: the single model gateway was split into focused per-area gateways (project, metadata read and write, form, platform, debug, BSL, docs). Pure refactor.
2026-07-18 – 0.1.0, 0.1.1, 0.2.0, 0.2.1
Added
- The full create / develop / build / deliver cycle exposed over MCP, with the write tools dry-run by default.
- The
edt-bridge-mcpstdio wrapper (pipx): forwards to a running EDT, auto-starts a headless one when none is open, and delivers the plugin jar into EDT’sdropins/. edt_platform_help– the 1C:Enterprise Syntax Helper bundled with EDT: a real API reference, searchable, Ru and En.- A multi-threaded MCP server, and a free-port fallback: if 8770 is busy the next free port is used and the wrapper finds it.
Fixed
- Project-creation
applyworks reliably: a fresh detached Configuration or external data processor is built and attached instead of tripping the headless EDT lifecycle.
Changed
- House typography across the repository – en-dash instead of em-dash, three dots instead of the ellipsis character – including tool descriptions and the wrapper.
2026-07-11 – 0.0.1
Added
- Initial release: read tools over MCP (projects, validation problems, metadata details and listing, references, query validation, forms), the built-in dashboard and the localhost MCP server.