Plugins Oda defines in a chat
While DataMind Oda works, it can define a small plugin of its own and run it to finish the job. The definition and every run leave cards in the chat, and the plugins panel above Settings controls what is defined and what runs. Looking inside the plugin system is on Inspecting plugins; the extensions pages call these plugins dynamic packages, starting at Dynamic packages.
When Oda defines a plugin
Oda defines a small plugin when a task calls for it. The definition appears in the chat as a Register Plugin card.
- The card is a record only: it shows the plugin's name and purpose, and it carries no switch and no approval. It points to the panel for run controls.
- A definition without a purpose reads
(no purpose given).
- The card opens with Host and Client source tabs, and starts on the Client tab when the plugin brings client code. Copy copies the source it shows and reads Copied once copied.
- The card expands only when there is source or output to show, and Inspect, which appears on hover or focus, shows the raw call and result.
The plugins panel
Every defined plugin is managed from the plugins panel, above Settings in the sidebar footer.
- The panel is part of DataMind Oda's developer surface: it appears while Developer tools is on (Developer settings covers the switch), and it keeps out of the way when there is nothing to show.
- The panel's button in the sidebar footer carries a badge that counts the plugins that run plus the ones that wait for you, and it highlights while an approval is pending.
- Rows are grouped into This session and Other sessions, with the current chat's plugins first.
Each row reports a status:
- Ready: the plugin is defined and nothing is running for it.
- Awaiting approval: a run waits for your decision.
- Client ready to activate: the plugin brings an interface half that this window has not loaded. Run it again here to load that half into this window.
- Running: the plugin runs, whether or not its interface is loaded. A plugin with no interface half runs on its own and still reads Running.
- Run failed: the last run failed.
While it reads the list the panel shows Reading…, never an empty list before the read lands. A finished read with nothing defined reads No plugins defined yet; if the read fails, the panel shows Reading the plugin inventory failed: and the reason behind it, and the rows already on screen stay. While plugins run, a count line reads {count} running.
Run a plugin
- Open the plugins panel and find the plugin's row.
- Choose Run.
- The run appears in the chat as a Run Plugin card, or Update Plugin when it starts a different version. The card of the newest run hosts the plugin's own view.
- When a newer run of the same plugin exists, an earlier run card reads
A newer run card is available below and its status reads Newer run available. After the plugin and its versions are removed, a run card reads This package no longer exists.
Approve a run
A plugin that brings an interface half can ask for your decision before that half loads. The panel opens itself when a new request arrives, and the plugin's row reads Awaiting approval.
- Choose Allow this version only, Allow future versions of this plugin or Decline.
- Approvals are window-wide: any open window can answer a request, and the first answer wins.
- Every control on the panel is disabled while an action is in progress.
- Answering closes the panel on success. Declining answers the request no: the plugin does not load and stays defined, ready to run again whenever you want.
Choose a version to run
- The Version picker on a row chooses which version to start. Once the version you pick differs from the current one, the row's action reads Update in place of Run.
- While a change is in progress, the transition line shows
Current: for the version in use and Next: for the version on its way, with Retry and Roll back beside it.
Stop or remove a plugin
From a plugin's row you can end it in two ways:
- Stop ends the run and keeps the plugin defined, so it is ready to run again.
- Remove stops the plugin and forgets it together with its versions.
Both leave their own cards in the chat, Stop Plugin and Remove Plugin, with the plugin's output. A removed plugin keeps its cards, greyed rather than gone, and its definition card reads Removed.
Limits to know
- A window that was reloaded holds no loaded plugins: the plugin stays defined and its row stays in the panel, but its interface half is not in that window until you run it again there.
- Definitions are process-local: they live only in the running app, and a restart clears them. The cards a chat keeps stay readable.
- A card draws its labels from its recorded call; when that call is no longer part of the chat's visible history, the card loses its labels but stays.
- These plugins are not installed bundles. A bundle is part of the installation and survives restarts: Plugins and bundles covers managing bundles, and the wider map of Oda's settings is on Memory, skills and connectors.
Questions, answered
Why did a Register Plugin card appear in my chat?
Oda defined a plugin while it worked, and the card records that definition so you can see what was built. The card is a record; you run the plugin from the plugins panel above Settings.
Can I start the plugin from its card?
No. The card is a record only and points to the panel for run controls. Open the plugins panel and choose Run on the plugin's row.
Why can I not find the plugins panel?
It appears while Developer tools is on, and it keeps out of the way when there is nothing to show. Developer settings covers the switch; once a plugin is defined or running, the panel appears above Settings in the sidebar footer.
What does the badge on the plugins button count?
The plugins that run plus the ones that wait for you. It highlights while an approval is pending.
What do the Client and Host tabs show?
The plugin's two source halves: the client code under Client and the host code under Host. When the plugin brings client code, the card starts on the Client tab.
What does Inspect on a card show?
The raw call and result behind the card, so you can read exactly what ran. Inspect appears on hover or focus.
Why did the plugins panel open on its own?
A new approval request arrived, and the panel opens itself so you can answer it. Answer the request and the panel closes, staying out of the way until the next one.
Why is everything on a row greyed out?
An action is in progress. Every control on the panel is disabled while a run, an approval or another action is being processed; the controls return when it finishes.
What happens if I choose Decline?
The request is answered no: the plugin does not load, and the panel closes. The plugin stays defined, so you can run it again whenever you want.
What do Current and Next mean in the version picker?
Current: names the version in use, and Next: names the version on its way once you have picked a different one. Retry and Roll back sit beside the transition.
Why does an older run card say a newer run is available?
A newer run of the same plugin exists, so the older card steps back: it reads A newer run card is available below, and its status reads Newer run available. The newest card hosts the plugin's own view.
Why has the plugin's interface gone from this window?
A reloaded window starts without loaded plugins. The plugin stays defined and its row stays in the panel; run it again from the panel to load its interface half back into this window.