History#

2026.10.3 – Tables are stored in the job’s database
  • Flowchart tables – made by the Table step or by steps storing results in a table – are now kept in the job’s seamm.db instead of only in memory, so a job’s tables are saved with it even if it never writes them to a file. This is the groundwork for restarting flowcharts and running loops in parallel.

  • A new row gets its columns’ defaults rather than NaN, so integer and boolean columns keep their types.

  • Steps that handle tables directly must be new enough for this: table_step, loop_step, properties_step and geometry_analysis_step 2026.10.3 or later. Older versions are refused before the flowchart starts, with a message saying what to update. Plug-ins that only store results in tables need no change.

  • With --read-only, tables can be read, looped over and saved to files, but a flowchart that writes a table stops with a clear message.

  • The job database is committed after every step.

  • Bugfix: older flowcharts whose steps say a structure should “be put in a new configuration” (and similar old wording) failed in every step that used it; the old wording is now understood (#221).

  • Bugfix: a system name taken from a file parameter (a path) crashed the step describing it (#220).

  • For plug-in developers: seamm.Table and “Tables in a plug-in” in the developer guide.

2026.10.2.2 – The MCP server offers SEAMM for property calculations
  • The MCP server now tells AI assistants when to offer SEAMM. Asked to calculate a molecular or materials property, or asked about one that can be computed, the assistant gives any known values and their source, then offers in a line or two to calculate it with SEAMM: a method suited to the property and the system, the time it will take, and a cheaper or a more accurate alternative. It proposes only installed methods, builds nothing until you agree, and still confirms the dashboard, project and queue before submitting.

  • Converting a format 2.0 flowchart, the message about attributes that are not settings (such as a cached VASP potential list) now says that leaving them out is expected and loses nothing, rather than “dropped attributes”.

2026.10.2.1 – Documentation: the upgrade guide for flowchart format 3.0
  • The user guide’s section on converting an installation’s flowcharts now points to the step-by-step guide in the main SEAMM documentation, Upgrading to flowchart format 3.0: updating, converting the jobs, the messages you may see, undoing the conversion, converting your own flowcharts, and the order to update several machines.

  • The developer notes for the format 3.0 campaign record its current status.

2026.10.2 – Flowchart format 3.0 is now written by default
  • The editor, job submission and everything else now write flowchart format 3.0 by default. 2026.10.1 still wrote 2.0 so that every installation could read 3.0 first. SEAMM_FLOWCHART_FORMAT=2.0 writes the old format if an installation must still exchange flowcharts with one older than 2026.10.1. Jobs saved in 2.0 since updating to 2026.10.1 are converted by seamm-manager flowcharts migrate.

  • The MCP server’s job tools now use a dashboard without credentials, as SEAMM’s dashboard client does: a web interface running without logins (for example one listening only on 127.0.0.1) needs none, and refuses made-up ones.

2026.10.1 – Flowcharts without the editor, and flowchart format 3.0
  • Flowcharts can now be built, read, changed and checked without the graphical editor, with the same checks the editor makes: the seamm-flowchart command (steps, describe, build, show, tree, set, insert, remove, move, validate, convert), short YAML specs that give only what differs from the defaults, and Python (seamm.builder, seamm.spec, seamm.edit). See “Flowcharts without the editor” in the user guide.

  • A new, readable flowchart format 3.0 (YAML) holding the metadata, the plug-in versions, a digest of the whole flowchart (the old digest stopped at the first loop), every parameter, unconnected steps and the layout. Format 2.0 is still read, through a converter that never changes. This release still writes 2.0 by default from the editor, so that every installation reads 3.0 before any writes it; the next release writes 3.0. SEAMM_FLOWCHART_FORMAT chooses now.

  • seamm-flowchart migrate converts an installation’s job flowcharts and datastore to 3.0 (backing up the datastore); seamm-manager flowcharts migrate wraps it for users.

  • Steps can declare which of their parameters apply given the others, narrow choices and fill in values that follow from others; their dialogs and these tools share the rules, so a setting with no effect is refused with the reason.

  • seamm-flowchart mcp: an MCP server giving AI assistants (Claude Desktop, Claude Code, …) these operations as tools, plus submitting and following jobs through a dashboard. Optional: pip install 'seamm[mcp]'.

  • Bugfix: using SEAMM from several threads at once could wipe ~/.seamm.d/seammrc, losing every dashboard’s credentials. Saves are now atomic and never overwrite the file with an empty one.

  • Bugfix: graph templates and plug-ins’ citations were not found when SEAMM or a plug-in was installed for development (editable).

  • Reading and editing flowcharts is several times faster: each plug-in’s bibliography is parsed once, not for every step.

2026.9.29 – Bugfix: flowcharts with steps that have no position now open
  • Opening a flowchart in which a step had no position on the canvas – one written by a script or another program rather than the editor – failed with “TypeError: unsupported operand type(s) for -: ‘NoneType’ and ‘float’”. Such steps are now placed below the step leading into them, moving the steps below down a row as when a step is inserted by hand, in the flowchart and in the sub-flowcharts of steps such as LAMMPS.

2026.9.27 – Data, dashboards and flowcharts follow the installation
  • Data files such as local: forcefields were looked up only in ~/SEAMM/data (after the user’s ~/.seamm.d/data). They are now looked up in the data directory of the SEAMM installation in use first, then in ~/SEAMM/data, so a second installation such as ~/SEAMM_DEV can have its own data and still sees the default installation’s.

  • The list of dashboards is read from the installation’s dashboards.ini, or ~/SEAMM/dashboards.ini if it has none. The dashboards option was never honoured before, because of a lookup in the wrong place; it is now.

  • The Open dialog’s default folder for flowcharts follows the installation in the same way.

  • Requires seamm-util 2026.9.27.1.

2026.9.25.1 – Internal: drop an unused dependency on seamm-datastore
  • seamm listed seamm-datastore as a requirement but never imports it; the datastore is used by seamm-exec and the web interface. Removing the requirement changes nothing for a normal installation, which installs all the SEAMM packages anyway.

2026.9.25 – Bugfix: right-click did nothing in the flowchart editor with Tk 9
  • On macOS the flowchart editor listened for the right mouse button as Tk 8.6 numbers it. Tk 9, which Python builds are starting to ship with, numbers the right button the same way on every platform, so under Tk 9 the context menu (edit, delete, …) never appeared. The editor now accepts either numbering, so it works with both Tk 8.6 and Tk 9.

2026.9.20 – Bugfix: a property with no units could stop a job
  • A step storing its results could fail on a property that has no units, such as a statistical inefficiency, if the property already existed in the database with its units undefined rather than empty – which was the case for any structure read from a file written by an earlier job. The step warned that it could not save the property, and for a property holding a vector, such as the stress, the job stopped altogether. The two are now treated alike, so such a property is stored correctly.

  • A property whose units cannot be converted now warns and carries on, as it already did for single values, rather than stopping the job.

2026.9.19 – Bugfix: TkNode.previous_nodes() while editing a flowchart
  • TkNode.previous_nodes() now follows the editor’s own graph. While a flowchart is being built the connections exist only there (the non-graphical flowchart is rebuilt when the flowchart is saved or run), so a step’s dialog asking whether e.g. a Model Chemistry step precedes it saw nothing and showed its “add a Model Chemistry step” reminder even when one was there.

2026.9.18.1 – Standard structure-selection parameters for plug-ins
  • Added seamm.standard_parameters.structure_selection_parameters, a standard block a step can include to let the user choose which existing structures it works on – the current system, all systems, or systems by name (is / matches / regexp), and of each the current, all, last, first, or by-name configurations; a variable holding a list of configurations or systems is also accepted. The defaults are the current configuration of the current system.

  • Node.select_configurations(P) (and the underlying select_configurations(system_db, P)) implements the selection once for all plug-ins, with a clear error when nothing matches; structure_selection_description(P) gives the sentence for the step description; TkNode.create_structure_selection_widgets and layout_structure_selection lay the block out uniformly, showing a name field only when the choice needs one. Documented in the developer guide.

2026.9.18 – Bugfix: pip metadata lacked pyperclip; distutils import removed
  • pip install seamm did not install pyperclip, which the flowchart editor’s paste needs, so importing SEAMM outside a conda-forge environment failed with No module named 'pyperclip'. It is now an install requirement (the conda-forge recipe already had it).

  • Removed the last use of distutils (strtobool in the parameters), which was dropped from the standard library in Python 3.12 and only worked where setuptools happened to be installed.

2026.9.17 – Bugfix: steps failed to load with bibtexparser 2.x
  • Version 2 of the bibtexparser library, which conda-forge now installs by default, removed the API that SEAMM and reference_handler use to read the plug-ins’ references.bib files. Creating any step then failed with module 'bibtexparser' has no attribute 'loads'. SEAMM now requires bibtexparser<2.

2026.9.15 – Bugfix: a queue override could not be cleared once chosen
  • A SLURM directive the queue offers as a list of choices, such as the number of GPUs, is shown in the submission dialog as a drop-down. The list held only real choices, so once one was picked there was no way back to blank – and blank is what means “do not set this directive”. A directive chosen by accident, or no longer wanted, could not be removed without restarting the dialog. The list now starts with a blank entry.

2026.8.11 – Bugfix: no way to trust a self-signed dashboard TLS certificate
  • dashboards.ini gained a per-dashboard verify key (see seamm_dashboard_client 2026.8.11): blank/absent – unchanged normal certificate verification; true/false – verify normally or not at all; anything else is a path to a certificate file to verify against instead of the system trust store – e.g. a self-signed seamm_webui certificate, which had no way to be trusted at all before this, hard-failing login with SSLCertVerificationError. The “Add Dashboard” dialog gained a matching “Verify SSL” field, and its Protocol choices now include https.

  • protocol in dashboards.ini was already unused at connection time (only the scheme literally in url matters) – unchanged, but worth knowing if a dashboard entry has protocol = http and url = https://... disagreeing, since only url is honored.

2026.8.10 – Queue picker in the job submission dialog, and two dashboard-switching bugs
  • The submit dialog now offers a Queue picker (which cluster, or a local queue, the JobServer should route the job to) when the selected dashboard’s paired JobServer has more than one configured – hidden entirely when it doesn’t, rather than shown with nothing to pick. Whichever queue is selected can also expose per-job overrides (e.g. how many cores, how much memory) within whatever bounds the site allows; a field left blank uses the site’s own default.

  • Bugfix: switching dashboards in the submit dialog had a long-standing typo that silently broke the app’s own bookkeeping of which dashboard was actually selected.

  • Bugfix: adding a new dashboard (the “add dashboard…” button) never refreshed the project/queue lists for it – they stayed showing whatever the previously-selected dashboard had until the user manually reselected the new one from the dropdown.

2026.7.28.1 – Bugfix: sanitize ‘/’ in model chemistry names; {model} in result names
  • Node.model now collapses any extra / in a model-chemistry string onto -, keeping only the last / as the method/basis separator. This fixes model names such as ORCA’s REVDSD-PBEP86-D4/2021 functional combined with a basis set, which previously produced an ambiguous name like REVDSD-PBEP86-D4/2021/def2-QZVPP.

  • {model} can now be used in the variable, table, and column names of a step’s results, substituted with the current model chemistry. This was already supported for the database property name; it is now consistent across all the places a result can be saved.

2026.7.28 – file_path(): read-only cross-job references, no more sandboxing
  • Node.file_path() no longer restricts absolute paths to within the current job when running under a jobserver. That check was inconsistent (it did not apply to local/interactive runs at all) and not a real security boundary in any case (a flowchart can already run arbitrary Python via the Custom step); it mainly got in the way of legitimate uses such as gathering results into a folder in the user’s home directory. Absolute (and ~) paths are now always used as-is, trusting the filesystem’s own permissions.

  • file_path() gains a read_only argument and now understands job://<job number>/<name> – read a file from another job, located via SEAMM’s managed Jobs/<project>/Job_NNNNNN layout. This only resolves when read_only=True: a job may read another job’s files but must never write into one, so it raises otherwise. The existing job:NAME / job:///NAME shorthand (this job, no number) is unchanged, and a couple of related bugs (a stray / in a job: reference silently resolving to the filesystem root) are fixed as part of the same rewrite.

  • gaussian_step, vasp_step, golden_step, and control_parameters_step now pass read_only=True for the calls that read a file (an initial checkpoint/wavefunction, an expected-results file, a file-typed control parameter), so those can now reference another job’s files the same way.

2026.7.6 – Added a helper to find preceding steps in a flowchart
  • Node.previous_nodes() (and the matching TkNode.previous_nodes()) returns the steps preceding a given step, optionally filtered by type – useful for checking whether a particular kind of step, such as a Model Chemistry step, comes earlier in the flow.

2026.3.19 – When finding files, return the link not the file pointed at
  • With e.g. the MLFFs it is convenient to create links in e.g. the personal forcefield directory pointing at the (large) model files. If the links have different extensions than the underlying files, it is necessary to return the link, not the underlying file, so that the forcefield type can be correctly identified. This fix makes that happen.

2026.2.26 – Internal: moving from pkg_resources to importlib.resources

2025.10.22 – Enhancement for extra keywords
  • Small enhancement to the GUI code to allow a code, such as VASP, that always has keyword = value to let the extra keywords tab know there will always be a value.

2025.10.21 – Bugfix: error caused by variables in parameters
  • Fixed an issue with variables in boolean parameters that caused the code to crash.

2025.9.24 – Small enhancements and catching errors.
  • Added better control over the width of widgets displaying parameters.

  • Catch and report errors storing properties to the database, but continue on in any case.

2025.9.6 – Bugfix: Error handling f-strings in variables
  • Fixed an issue that caused a crash handling f-strings in some parameters in the GUI.

2025.9.5 – Bugfix: Error handling ‘==’ in parameters
  • Corrected an issue with “==” as the value of a parameter. The GUI’s for handling queries and searching use “==” for equality, but this was misintepreted as indicating a variable or expression to evaluate.

2025.8.27 – Bugfix: error with missing units for some parameters
  • If the value of a parameter was in the enumeration of possible values, and was a numerical value, any units were dropped. Now they are kept, though if the value is a text string, like ‘default’, the units are left off.

  • Adding the equals sign, “=”, as as prefix for variables and expressions, in addition dollar signs, “$”.

2025.8.19 – Bugfix: error in setting name of system & configuration
  • Fixed an error that occurred sometimes when setting the name of the system and/or configuration.

2025.8.18 – Improved line graphs
  • Added more control over graphs: fontsize, grid color, etc. to better support plug-ins and to allow output to PDF, JPG, and other formats.

2025.8.12 – Streamlining internal code
  • Standardized handling of paths of local files in jobs

  • Added translation from the spin multiplicity to the spin state, e.g. singlet, triplet, etc.

2025.8.5 – Bugfix: path for custom forcefields in jobs
  • When running from the JobServer the path for custom forcefields did not include ~/.seamm.d/data or ~/SEAMM/data. This is now corrected.

2025.5.27 – Enhancement when storing results in tables.
  • When storing e.g. diffusivity results in a table, the diffusion constants are keyed by the SMILES of the component. If it is a pure fluid with only one component, this enhancement allows using a column name with the SMILES key, which is useful if running a number of different fluids. Otherwise each has unique columns including the SMILES in the column name.

2025.4.30 – Bugfix: Error naming systems and configurations
  • Fixed a bug that occurred trying to set the name of a system or configuration to early, when it had atoms, causing errors.

2025.3.4 – Bugfix: Creating a new configurarion ignored discard structure
  • Fixed the code to create new structures, which did not correctly handle the standard “Discard the structure” option.

  • Improved the output when discarding the structure.

2025.2.24 – Changed option to “Discard the structure”
  • Changed the standard option to “Discard the structure” to indicate that the structure should not be saved in the database.

2025.2.23 – Added isomeric SMILES to structure names and ability to discard
  • Added ability to ignore or discard a structure from e.g. optimization

  • Added isomeric SMILES to the possible names for systems and configurations

2024.12.7 – Bugfix: Incorrect handling of JSON properties
  • Any properties that were not a scalar had an issue when being transformed to and from JSON. This is now fixed.

  • Truncated values with known units reasonablt so that they are more readable in tables. For example, 1.23400000001 kJ/mol is now 1.234 kJ/mol.

2024.11.29 – Chemical formulas option for system names, cleaner tables.
  • Added chemical formula to possible names for systems and configurations.

  • Truncated results put in tables, based on units, to make more readable.

2024.11.3 – Bugfix: removed debug printing in the flowchart
  • Removed debug printing that was accidentally left in the flowchart code.

2024.11.1 – Enhancement: subflowcharts and menus handling flowcharts
  • Added a subflowchart step to allow calling another flowchart from within a flowchart.

  • Added copy/cut/paste for flowcharts in the menus and shortcuts

  • Enhanced the menus and bindings for operations on flowcharts so that they act on the currently active flowchart or subflowchart.

2024.10.20 – Improvements in opening flowcharts
  • Removed directories and files not ending in “.flow” from the list of flowcharts that can be opened.

  • When getting a flowchart from a previous job, the list of jobs is reversed so the most recent is at the top.

  • Enhanced the handling of parameters to support e.g. lists of values with the normal units attached. Used in e.g. thermochemistry to allow lists of temperatures and pressures with associated units.

2024.10.13 – Bugfix: Issue changing units for some parameters
  • Fixed a problem converting e.g. E_h to kJ/mol in the GUI widgets. The problem occurred whenever the conversion was not direct but involved different quantities.

  • Internal enhancement: exposed the metadata to graphical nodes as a property.

2024.8.21 – Bugfix: Error using variable in stucture handling
  • The standard structure handling widgets and methods had an error is the approach was a variable rather than one of the choices.

2024.8.17 – Enhancements to line graphs
  • Added multiple axes to line graphs.

  • Updated to correct version of plotly. ‘latest’ is actually not.

2024.7.28 – Updating standard parameters for systems and configurations
  • Cleaned up and add to the standard parameters used for naming system and configurations. ‘title’ refers to the title in the file, if it exists.

2024.7.21 – Allows capital letters in variables and columns for results
  • Allows capital letters for the variables, column names, etc. that results are stored in. For example, ‘T’, ‘P’, and ‘V’.

2024.6.27 – Added support for using local data files.
  • Added support in the Flowchart and Node classes for using local data files for e.g. forcefields. This allows the user to specify a local file, which is copied to the working directory of the job.

  • Also added a flag to both the Flowchart and Node classes indicating that the job is running in the JobServer rather than command-line.

2024.5.27 – Bugfix: Error saving results table.

2024.5.26 – Bugfix: Error when clicking “Cancel” on some dialogs
  • Dialogs that have a Results tab – mainly the computational engines – raised an error if the “Cancel” button was clicked. “OK” worked. This fixes the problem.

2024.5.3.1 – Bugfix: JSON in Results GUI not set correctly.

2024.5.3 – Added the time to Results.json
  • Adding time into the Results.json file will allow ensuring that the most recent data is used, when there are duplicates.

2024.5.1 – Added ability to store results in Results.json file
  • Added column in the results tab for saving results to JSON

  • Added separators between the columns of the results table to make clearer which parameters go together.

2024.4.22 – Moving user preferences to ~/.seamm.d
  • To better support Docker, moving ~/.seammrc to ~/.seamm.d/seamrc

2024.1.2 – Corrected issue with citations in development versions
  • Fixed an issue getting the date of a plug-in for development versions of the plug-in. This did not affect end users, but did cause issues for development.

2023.12.18 – Moving execution of flowcharts to seamm-exec
  • Moved execution of flowcharts to seamm-exec to consolidate execution in one place. This will allow easier, faster developement for running in queues, etc.

  • Switched the dependency on PMW from CondaForge to PIP since the version on CondaForge is poorly maintained.

2023.12.12 – Moving ~/.seammrc to ~/.seamm.d/seammrc
  • Should have no effect on users. The seammrc file will be moved automatically to its new location. This change is necessary to be able to run SEAMM in containers.

2023.11.15 – Add boolean options when submitting jobs
  • Added boolean control parameters when submitting jobs.

  • Bugfix: The previous change to allow running “flowchart.flow” in the current directory caused a bug in other scenarios.

2023.11.12 – Allowing running flowchart.flow in current directory
  • There was a feature which prevented running a flowchart named “flowchart.flow” in the current directory when running from the commandline.

2023.11.11 – Incorporating changes to Zenodo
  • Zenodo updated and made small changes to their API, which required changes in SEAMM.

  • Consolidated all private information about the user and their keys for Zenodo in ~/.seammrc

2023.11.7 – Bugfix: initialization of Dashboard
  • Fixed a crash that occurred the very first time submitting to the Dashboard.

2023.10.30 – Extending and cleaning up handling of configurations
  • Added ability to name systems and configurations with the IUPAC name, InChI, or InChIKey of the configuration.

  • Generally cleanedup and streamlined the code handling new systems and configurations.

2023.9.26.1 – Bugfix: system naming
  • Fixed a bug with keeping the current name when updating a system.

2023.9.26 – Added units to header in tables, and bugfixes.
  • The headers for table columns now include units when generated automatically when writing results. Existing columns are not changed.

  • Changed the join step image and added the code to enable deleting it.

  • Fixed an issue with the sizie of subwindows in edit dialogs

2023.8.30 – Added support for keyed columns in table output
  • Caught errors when writing out the final structures for viewing and improved messages in such cases.

  • Keyed columns in table output are used for e.g. the diffusion coefficients of multi-component fluids, where the column is expanded for each component.

2023.7.10 – Adding JSON for properties in the database and tabels; bugfixes
  • Handle non-scalar results using JSON so they can be output to tables and added to the properties in the database.

  • Fixed error submitting jobs to Dashboard the user doesn’t have a login for.

  • Ask for credentials when adding a new dashboard to job dialog.

  • Fixed bug creating a new project.

2023.6.28 – Improved error handling contacting Dashboards.
  • Trap and display errors when contacting Dashboards

  • Allow SEAMM to continue despite such errors

2023.5.29 – Fixed bug with missing directories when executing codes

2023.4.24 – Enhancements for thermal conductivity
  • Enhanced handling of command-line options to supported self contained flowcharts.

  • Various enhancements to graphs to better present results.

  • Added tracebacks to error report to identify the code responsible for the issue.

  • Correctly remember the filename for flowcharts opened from disk.

2023.4.6 – Bugfix: issue running standalone
  • When a description was not provided in either the command-line or the flowchart, running standlone crashed.

2023.3.31 – Bugfix: formatting of dates
  • Fixed a minor issue with formatting the dates in Job.out.

2023.3.23 – Updates for new JobServer
  • Jobs running from the JobServer now update their status in the datastore as they finish. This helps support jobs continuing if the JobServer crashes or stops.

2023.3.8 – Fixed bug running from command-line (Incorrectly labeled 2023.4.8!)
  • Fixed bug running from the command-line when giving project so the job is put in the datastore.

  • Improved handling of title and description both when running from the command-line and GUI, defaulting to the title and description of the flowchart.

2023.2.15 –
  • Improved handling of structures

  • Added ability to run simulations engine in a given directory, typically the step directory. This allows users to see the outputs during the simulation rather than having to wait until the end.

  • Added support allowing a flowchart to be run as a sub-flowchart.

2022.10.23 – Simplified plug-ins

Better support for plug-ins and the SEAMM cookiecutter:

  • Automated most handling of results and properties, based on metadata

  • Simplified handling of sub-flowcharts.

2022.10.20 – Properties in database

Added support for handling properties the database.

2022.9.13 – Bugfix: reading MOPAC .mop files

Fixed a bug that impacted read-structure-step finding MOPAC to use as a helper when reading .mop files.

2022.9.8 – Remembering location of flowcharts

Added memory of where you were last opening flowcharts, and directories that you use, to make it a bit easier.

2022.7.25 – DOS and Band Structure graphs

Adding support for combined bandstructure/DOS graphs.

2022.6.9 – Addeded –version option
  • Added a –version argument to print version and stop. by @paulsaxe in #130

  • Switched to reusable GitHub workflows (internal development improvement).

0.1.0 (2018-01-20) – Initial Release!

First release on PyPI.