You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: compact string names, color themes, new repr types, expression selection
ferritin-2pr: migrate AtomCollection atom_names/res_names/chain_ids from
Vec<String> to Vec<CompactString> — eliminates ~15 MB of per-atom heap
allocations on large structures. Public new() API unchanged; getters now
return &str. Adds compact_str = "0.9" workspace dep.
ferritin-eq4: add ColorThemeT enum (ElementSymbol/ChainId/SecondaryStructure/
Uniform) to nodes.rs + RepresentationParams. Refactor colors.rs with
initial_colors_from_theme(), apply_mvs_colors_with_theme(), and internal
apply_color_overrides(). Executor defaults to CPK element coloring when no
inline Color nodes are present.
ferritin-zec: add Spacefill, Putty, Line to RepresentationTypeT in nodes.rs.
map_representation wires them to existing Solid/Putty/Wireframe renderers
(all already implemented in structure.rs).
ferritin-zqm: wire residue_index field in evaluate_expression() (was skipped).
All other ComponentExpression fields were already fully implemented.
+192 tests across ferritin-core and ferritin-bevy, all passing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
{"id":"int-73a34d42e97f58dff950dc96856e2820","kind":"field_change","created_at":"2026-06-30T12:09:33.987477Z","actor":"Zachary Charlop-Powers","issue_id":"ferritin-vgx.9","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Integration tests T3-10..T3-31 added (22 tests). Key bugs found and fixed: metadata.timestamp required for JSON parsing, load_model PDB not supported, component_from_uri params need uri/schema not url/selector. All 83 ferritin-bevy lib tests pass."}}
102
+
{"id":"int-9d890dd251acc8708624fe767562c110","kind":"field_change","created_at":"2026-07-01T11:21:20.617792Z","actor":"Zachary Charlop-Powers","issue_id":"ferritin-vgx.10","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Phase 4 interactive MVS viewer implemented and verified (7 tests pass, example launches). Committed to feat/molviewspec."}}
103
+
{"id":"int-a25528b5112e4f1e173c9c273b739895","kind":"field_change","created_at":"2026-07-01T11:21:35.327768Z","actor":"Zachary Charlop-Powers","issue_id":"ferritin-vgx","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"All phases (P0-P4) complete: molviewspec data model + builder fixes, AtomMask selectors, filtered rendering + vertex maps, layered coloring, MVS execution engine (ferritin-bevy/src/mvs_executor.rs), and the interactive bevy_molviewspec_viewer example. End-to-end verified."}}
104
+
{"id":"int-366236ba4dec8cb0068ddc476d2c625a","kind":"field_change","created_at":"2026-07-01T11:43:34.994407Z","actor":"Zachary Charlop-Powers","issue_id":"ferritin-2pr","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Migrated AtomCollection name fields (res_names/atom_names/chain_ids) from Vec<String> to Vec<CompactString> (compact_str). Public new() API unchanged; getters now return &str. 111 tests pass, workspace builds."}}
105
+
{"id":"int-8a0533bd2309bd6f0c8b6f102cd17a47","kind":"field_change","created_at":"2026-07-01T12:09:57.09461Z","actor":"Zachary Charlop-Powers","issue_id":"ferritin-eq4","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Added ColorThemeT enum (ElementSymbol, ChainId, SecondaryStructure, Uniform) to nodes.rs. Added color_theme: Option<ColorThemeT> to RepresentationParams. Refactored colors.rs: initial_colors_from_theme(), apply_mvs_colors_with_theme(), internal apply_color_overrides(). Executor now defaults to ElementSymbol (CPK) coloring when no theme specified. 4 new tests, 87 total bevy tests pass."}}
106
+
{"id":"int-abf1ef3a7381a9cde285221b42db6a9d","kind":"field_change","created_at":"2026-07-01T12:11:55.564456Z","actor":"Zachary Charlop-Powers","issue_id":"ferritin-zec","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Added Spacefill, Putty, Line to RepresentationTypeT in nodes.rs. map_representation now maps: Spacefill→Solid (VDW radii already used), Putty→Putty (already implemented), Line→Wireframe (CA backbone line trace, already implemented). 3 new map_repr tests, 90 total bevy tests pass."}}
107
+
{"id":"int-fdbcb439142e4cad18c803de9fb8f8ab","kind":"field_change","created_at":"2026-07-01T12:14:27.370599Z","actor":"Zachary Charlop-Powers","issue_id":"ferritin-zqm","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"residue_index field added to evaluate_expression() in selection.rs (was skipped before). All other ComponentExpression fields (auth_asym_id, auth_seq_id, beg/end ranges, label_atom_id, auth_atom_id, type_symbol, atom_index) were already fully implemented. 2 new tests: T2-25 (residue_index selects Nth residue) and T2-26 (residue_index + atom_name combo). 92 total bevy tests pass."}}
0 commit comments