abrechts/Phoenix-ELN
39.1
Weak · 1 October 2026
24.8k
lines of production code
VB.NET
primary language
2
measurements over time
What this system is
This system is a desktop-based Electronic Laboratory Notebook (ELN) application designed for managing chemical experiments and synthetic sequences. It provides capabilities for creating and organizing experiments into projects, performing full-text and reaction substructure searches, and visualizing synthetic pathways through interactive graphs. The application supports local and server-based data storage, allowing users to manage materials, protocols, and safety documents, with features for data migration and dark mode theming.
Features
Added application settings infrastructure
The ElnCoreModel project now includes the standard .NET application settings files (Settings.settings and Settings.Designer.cs), enabling the storage and retrieval of user-specific configuration values through the standard ApplicationSettingsBase mechanism.
ElnBase/My Project, ElnCoreModel/Properties · high confidence
Application-wide dark mode support with unified skin resources
The application now supports a dark mode theme, allowing users to switch between light and dark visual skins. This change introduces dedicated resource dictionaries (SkinDark.xaml and SkinLight.xaml) that define role-named brushes for window chrome, panels, inputs, and navigation tree elements, which are consumed via DynamicResource throughout the UI. It also adds dark-mode-specific styles for menus and scrollbars, and provides paired light/dark icon sets for key interface elements such as folders, delete actions, undo/redo, search, and settings to ensure proper visibility and contrast in both themes.
CustomControls/Resources · high confidence
Material safety document management and product yield display
Users can now attach and manage up to three PDF safety data sheets for reagents, solvents, auxiliary materials, and products via a new document control in their respective edit dialogs. The system tracks these documents against the materials database, allowing selection and removal of attached files. Additionally, the product edit dialog now displays the calculated theoretical yield for the selected product or side-product, and includes a dedicated field for entering a batch ID.
CustomControls/Material Dialogs · high confidence
New ELN data transfer package feature for migrating experiments and settings
Users can now create and import 'Phoenix ELN Transfer Package' (.elnpkg) files to seamlessly move experiments and settings between installations. The new TransferPackage control adds dialogs for creating a package (zipping the local database and settings) and importing one (extracting and validating contents). During import, the system warns about overwriting existing non-demo data, automatically creates a recovery backup of the current state before replacing it, and supports recovery mode imports.
CustomControls/TransferPack · high confidence
New Material Summary dialog for experiment details
A new 'Material Totals' dialog (dlgExperimentInfo) has been added to display a grouped summary of an experiment's materials. The dialog presents four categories—Reactants, Reagents, Solvents, and Auxiliaries—in a scrollable TreeView, with a pinned Close button. Reactants and auxiliaries are aggregated by weight, while reagents are aggregated by volume if they are molar solutions (displaying molarity) or by weight if solid. Solvents are aggregated by volume. The view uses custom controls (MatSummaryTotal, MatSummaryDetail) to show amounts, units, and material names, with selection highlighting and a dark-themed background.
CustomControls/Material Summary · high confidence
New full-text search and reaction substructure search capabilities
Users can now search experiments using natural language phrases via a new in-memory FTS5 index (local) and MySQL FULLTEXT index (server), with results capped at 200 and supporting multi-phrase AND queries separated by semicolons. Additionally, a new Reaction Substructure Search (RSS) feature allows finding experiments based on chemical reaction sketches, utilizing fingerprint pre-filtering and Indigo-based substructure matching, with results also restricted to finalized experiments.
ElnBase · high confidence
New search, spell-check, and feedback UI components
The application now includes a dedicated spell-checking system for text inputs, a full-text search dialog for finding text within finalized experiments, and a substructure search interface for reaction queries. Additionally, a lightweight toast notification control has been added to display brief status messages to users.
CustomControls · high confidence
New synthetic connection and structure graph visualizations
Users can now view synthetic sequences as interactive graphs. The Connection Graph dialog displays a compressed, zoomable node-and-edge diagram of experiment connections, with a sidebar to select steps and view associated experiments, and supports switching between local and server databases. A separate Structure Graph dialog renders a detailed, scrollable scheme of the full sequence, showing reactant/product structures, step numbers, yields, and connector arrows, with PDF export capability. Both views use a dark theme and handle branching, merging, and racemic definitions to accurately represent the chemical pathways.
CustomControls/Sequences · high confidence
Project subfolders and enhanced navigation tree controls
The navigation tree now supports organizing experiments into named subfolders (groups) within projects, including a default 'All experiments' folder for legacy data migration. Users can add, rename, archive, and delete these experiment groups via the new ProjFolderTreeHeader UI. The tree view also features a new drag-and-drop adorner that previews dragged items as lightweight cards rather than full subtree screenshots, and the experiment tree header now displays a reaction sketch tooltip on hover. Additionally, pinned experiment tabs show distinct visual indicators and tooltips for server-owned or cross-user experiments, and the navigation menu includes buttons to collapse/expand all items and locate the current experiment.
CustomControls/NavigationTree · high confidence
Spell check, text markers, and export options added to protocol elements
The Comment, File, and Image protocol elements now support spell checking, which is automatically disabled for finalized experiments. Comments include a new context menu with bold, italic, underline, subscript, and superscript formatting, plus blue, green, and pink text highlighting tools. Embedded images and documents now feature context menus with 'Save To...' options to export files to disk. Additionally, the workflow separator background has been slightly darkened and its font size reduced.
CustomControls/Protocol Elements/Others · high confidence
Removals
Removed custom spell checker resource file
The custom spell checker resource file (CustomSpellChecker.lex) has been removed from the application resources. This file previously contained a single custom dictionary entry ('Testli'), and its deletion indicates that this specific custom spelling rule is no longer supported or required in the current version.
ELN-Main/Resources · high confidence
Behavioural changes
Core controls updated for dark mode support and improved usability
The CoreControls library now supports a dark theme via a new DarkModeHelper that propagates theme state and swaps skin resources, enabling controls like ThemedComboBox and TreeViewEditLabel to adapt their colors automatically. A new cbMsgBox dialog replaces legacy MsgBox calls, offering a modern, always-dark styled interface with distinct icons for information, warning, error, and question types. NumericTextBox input validation has been refined to better handle decimal separators and enforce SignificantDigits/DecimalCount constraints, while TreeViewEditLabel now allows drag operations on title text by separating display and edit modes.
CustomControls/CoreControls · high confidence
Crash reporting, startup performance, and dark mode improvements
The application now features a dedicated crash report dialog (dlgCrashReport) that displays error details in a scrollable text box instead of a standard message box, improving the handling of unhandled exceptions. Startup performance is enhanced by warming up the Entity Framework Core model in the background and blocking the window title-bar drag gesture until initialization is complete, preventing UI freezes. The user interface has been updated with a new dark mode implementation, including global scrollbar style adjustments, dynamic resource skin swapping, and a redesigned main toolbar with updated icons and styles.
ELN-Main · high confidence
Database schema expanded with new entities and model updates
The data model now supports project subfolders (tblProjFolders), experiment tagging (tblExperimentTags, tblTags), and material file attachments (tblDbMaterialFiles). It also introduces a search index (tblSearchIndex), tracks racemic assignments in experiments (IsRacemicReactant/Product), and adds user session tracking (IsCurrent, SequenceNr). Several existing entity types were updated, including changing SpecifiedUnitType and FileType from int to short, and adding fields like CurrDocIndex to materials and RxnIndigoObj to experiments.
ElnCoreModel/ELNModel · high confidence
Expanded application settings for UI persistence and server configuration
The application settings schema has been updated to support new user preferences and UI state persistence. The existing \IsServerEnabled\ setting has been renamed to \IsServerSpecified\ and its default value changed from \True\ to \False\. New settings have been added to remember the position and size of the CbDraw window, as well as separate last-open and last-save paths for both standard reaction sketches and RSS Query sketches. Additional settings introduced include options for dark mode (\IsDarkMode\), bio-sequence pinning (\IsBioSeqPinned\), server sequence usage, spell-check locale, and the remembered positions and sizes for various dialogs such as full-text search, tag search, and sequence dialogs.
CustomControls/My Project · high confidence
Expanded documentation and solution configuration updates
The README has been significantly updated to reflect new capabilities including synthetic connections, reaction substructure searches, and full-text search, alongside clarifications on stoichiometric data handling and target platform support. The solution file has been updated to target Visual Studio 18 and adjusted project dependencies, while the .gitignore has been modified to include local Claude Code settings and ensure proper line endings for FodyWeavers.xsd.
(repo-wide) · high confidence
Extended data model scaffolding and property change notifications
The ElnCoreModel has been updated to include new entity classes for project folders, database material files, tags, and experiment tags, all implementing INotifyPropertyChanged to support UI binding. Additionally, the scaffolding configuration file was updated with instructions to ensure the startup project references the EF Core design tools and a note regarding GUID type warnings.
ElnCoreModel · high confidence
Improved High-DPI display support and updated Visual Studio settings generator
The application now explicitly sets HighDpiMode to 1 in the application configuration, which improves rendering clarity on high-resolution displays. Additionally, the project's settings designer has been updated to use version 17.11.0.0 of the Visual Studio SettingsSingleFileGenerator, reflecting a local tooling or project file update.
ELN-Main/My Project · high confidence
Improved search highlighting and converter robustness
Search result snippets now use a custom rendering control that draws tight, symmetric yellow highlights around matched terms, avoiding the top-heavy appearance of previous text-block-based approaches. Additionally, unit conversion converters (weight, volume, molar, and equivalent) now safely handle cases where scaling returns nothing, preventing application crashes, and a new BooleanInvertConverter is available for UI binding needs.
CustomControls/Converters · high confidence
Installer project migrated to InstallMate 11 and updated to version 5.2.0
The deployment configuration has been upgraded from InstallMate 9 to InstallMate 11.17.8104.9733, replacing the legacy \Phoenix ELN.im9\ project file with the new \Phoenix ELN.improj\. This migration updates the installer build for Phoenix ELN version 5.2.0, which now targets Windows 10 or higher and includes updated dependencies such as .NET 10 libraries, Entity Framework Core 10.0.12, and ChemBytesDraw 4.0.3. The old installer artifacts for versions 0.9.1 and 1.0 have been removed.
Deployment · high confidence
Material display updates: batch-ID visibility and molarity formatting
In the Materials section, product entries now display a batch-ID when present, using a new visibility converter to handle empty values. Reagent molarity values are now formatted to 3 significant digits instead of the previous fixed two decimal places. Additionally, null checks have been added to the code-behind for auxiliary, reagent, reference reactant, and solvent controls to prevent errors when accessing workflow state.
CustomControls/Protocol Elements/Materials · high confidence
Protocol items now support duplication and refined selection UI
Users can now duplicate protocol items (limited to materials and products) via a new context menu option, with the button automatically hidden for unsupported types. The protocol item interface has been restyled: the drag handle is narrower, the selection state is more distinct, and the context menu includes a header and improved layout. Additionally, the underlying materials database logic has been refactored to support these operations more cleanly.
CustomControls/Protocol Elements · high confidence
Redesigned status panels with dark mode support and manual server reconnect
The notification area's UI has been significantly updated to support dark mode via DynamicResources and to improve vertical space efficiency. The ContentInfoPanel has been replaced by the StepSummary control. The MainStatusBar now displays a manual 'Reconnect' link when the server is unavailable, allowing users to trigger a reconnection rather than relying on automatic attempts, and uses dark-mode-aware icons. The StatusInfoPanel and StatusDemo panels have been restyled with a more compact horizontal layout, updated tooltips, and new links for importing transfer packages and viewing migration info.
CustomControls/Notifications · high confidence
SQLite database schema updated with new tables and standardized column types
The local SQLite database schema has been updated to support new features and improve data consistency. New tables \tblDbMaterialFiles\ and \tblExperimentTags\ have been added to store material file attachments and experiment tagging respectively. Additionally, string columns across multiple tables (such as \tblAuxiliaries\, \tblComments\, \tblDatabaseInfo\, and \tblExperiments\) have been standardized from \VARCHAR\ to \TEXT\, and integer flags from \TINYINT\ to \INTEGER\ to align with EF Core conventions. Indexes have also been added to support the new tables and improve query performance on foreign keys.
ElnCoreModel/SqLiteEditor · high confidence
Dependencies
Upgrade to .NET 10 and update core dependencies
The application has been upgraded from .NET 8 to .NET 10, requiring a minimum of Windows 10 (version 10.0.17763.0). This update includes significant dependency upgrades: Entity Framework Core and related packages (including SQLite and Proxies) have been moved to version 10.0.12, and the MySQL provider has been switched from Pomelo to the Microting fork (version 10.0.11). Additionally, FreeSpire.PDF was upgraded to 12.4.0, gong-wpf-dragdrop to 4.0.0, and Indigo.Net to 1.46.0. To resolve a print crash caused by Windows font handling, a runtime configuration switch has been added to disable specific TTF overflow protections, and a new SpellCheck.Dictionaries package was added to support spell-checking functionality.
(dependencies) · high confidence
Housekeeping
Clarified database auto-update behavior in setup documentation
The 'Database Administrator Note' in the Server Package has been updated to clarify that the first connecting client will automatically update the server schema whenever required by future version releases, removing the implication that no subsequent manual schema updates are ever needed.
Server Package · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 39 → 39 (+0.1)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 82 → 82 (+0.0)
- Architecture 95 → 95 (+0.0)
- Maturity 46 → 46 (+0.0)
- Readiness 23 → 23 (+0.2)
- Security 43 → 43 (+0.0)
- Performance 70 → 70 (+0.0)
Resolved (12)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Hotspot: CustomControls/ExperimentContent.xaml.vb (CustomControls/ExperimentContent.xaml.vb)
- Hotspot: CustomControls/Sequences/SequenceGraph.xaml.vb (CustomControls/Sequences/SequenceGraph.xaml.vb)
- Hotspot: CustomControls/dlgSearch.xaml.vb (CustomControls/dlgSearch.xaml.vb)
- Hotspot: ElnBase/DbUpgradeServer.vb (ElnBase/DbUpgradeServer.vb)
- Outdated: Microsoft.Data.Sqlite.Core
- Outdated: Microsoft.EntityFrameworkCore
- Outdated: Microsoft.EntityFrameworkCore.Design
- Outdated: Microsoft.EntityFrameworkCore.Proxies
- Outdated: Microsoft.EntityFrameworkCore.Sqlite.Core
- Outdated: Microsoft.EntityFrameworkCore.Tools
New (1)
- Outdated: Microting.EntityFrameworkCore.MySql
Changes since last survey
- 7 commits — 7 feature/other, 0 fixes
By area
- CustomControls/NavigationTree — 3 commits
- CustomControls/Material Summary — 1 commit
- CustomControls/StepSummary.xaml — 1 commit
- CustomControls/dlgFullTextSearch.xaml — 1 commit
- Deployment/Phoenix ELN — 1 commit
Notable commits
- change: Add gear button to StepSummary's Search Tags title for pure tag management.
- change: Assigned 'DarkPanelBackground2' StaticResource to all search dialog backgrounds.
- change: Implemented reaction tooltips on ExpTreeHeaders.
- change: Improved UI of 'show sketch tooltips' navtree menu item toggle.
- change: Improved main toolbar and navtree dropdown menu button styles.
- change: Upgraded seed database to latest dbSchema.
- change: dlgExperimentInfo: made resizable with scrolling material list and pinned Close button.
Architecture
- Unchanged — 1 containers · 0 contexts · 0 edges
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
abrechts/Phoenix-ELN was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit ae779b15a521e6b73c7c3fa03b2517774c844144 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.