Repository navigation
Releases: Stalagmight/Stalagmight
Release list
Stalagmight v0.5.0-rc5
Release candidate for 0.5.0. Not a final release - published so
testers can try it. The notes below are the notes for 0.5.0; anything
in them may still change before that version ships.
The first release with builds for all three platforms. The headline additions are
Plan mode, a gas- and range-aware dive planner built on the survey graph, and
SpeleoDB integration, which lets a project live on a server and be handed
between divers.
Highlights
- Plan mode - plan a dive against the actual survey: gas-limited reach, a turn frontier, ordered way points, movable stage drops, DPV support, and a depth profile you can export (#38)
- SpeleoDB integration - open a project from SpeleoDB, edit it under the server's single-writer lock, and push it back without leaving the app (#182)
- Export mode - a what-you-see-is-what-you-get export surface over the map, sharing the survey map's coloring (#239)
- The data table is a spreadsheet - an in-house grid with real copy/paste, draft rows, column families and per-column validation (#61)
- Loop closures are non-destructive - a Display toggle between measured and closure-adjusted geometry; your raw shots are never rewritten
- A custom WebGL map renderer - large surveys hold far less memory and edits update the picture in place (#80)
- Walls import and Windows support -
.wpj/.srvsurveys import, and the app builds and runs on Windows - Downloads for macOS and Windows - releases now ship
.dmg,.msiand-setup.exealongside the Linux packages (#324) - The map moves like a map - drag to pan and scroll to zoom whatever tool you are holding, rather than switching to a Pan tool first (#409)
- Declination per section - your measured bearings are stored exactly as recorded, and the correction to true north is applied only where the map or an export needs it (#438)
Added
Plan mode
- Gas-limited reach - Plan mode colors the survey by the gas it takes to reach each point and marks the turn frontier, the stations where the dive has to turn around. Set up back-gas and stage cylinders (any can be disabled without deleting the row), RMV and swim speed, then pick a Gas strategy: All thirds, Half Minus: 1 stage, Half Minus: 2 stages, or Free, where you set each cylinder's allowance yourself. A safety margin holds gas back from every cylinder. Every number shown - usable gas, turn pressure, drop pressures - comes from the same engine that draws the map, so a readout cannot drift from the reach it claims (#38, #228, #245)
- Routes you steer - click a turn-frontier dot, or right-click anywhere, to set the endpoint and re-solve for it. Way points are stations the dive must visit in order, paid for by the whole solve rather than silently skipped; an unreachable one stalls the plan, because it is a constraint, not a hint. Marked points are free annotation. Every stage cylinder gets a drop marker you can drag or nudge: dropping deeper than the safe point is allowed but flagged red, dropping shallower honestly shortens the reach. Plan reports distance to the turnaround and the maximum and average depth along the route, with jump legs faded so a swum line reads differently from a shortcut (#236, #243, #246, #298)
- DPV planning with per-segment speeds - model a scooter rig (a primary plus a mandatory backup) in the Equipment tab. Way points divide the route into segments, and the Segments tab gives each one a speed and an on-DPV flag, with its own color on the route. A scootered span spends the rig's usable one-way range by the battery clock, so riding slower than cruise costs more range than line, and the panel says when it is range rather than gas that turns the dive. The park point is derived from the segments and marked on the map (#317)
- The planned dive as a profile - a Profile tab charts depth across the round trip against distance or runtime, marking the turnaround, stage drops and way points. Every number is the one the gas engine already solved, so the chart cannot drift from the plan beside it. Exports as Subsurface-shaped dive XML or a fixed-width text table for a slate. Both carry a header saying what the file is not: Stalagmight has no decompression model - no ascent schedule, no stops, no tissue loading - and a profile must never be read as one (#299)
- Named dive plans persist - saved in a sibling
.plnxfile next to the.stalx, never inside it, so a SpeleoDB push is untouched by it. Plans store stable station anchors, so they keep pointing at the same physical stations across later survey edits (#244) - Survey, Plan and Export workspace modes - three top-level modes from a carousel in the top bar. Plan and Export show the read-only closure-adjusted map and drop the mutating tools, so the survey cannot change under a plan or a preview (#38)
SpeleoDB
- Open, lock, edit and push - a remote project is read-only until you take the write lock; local edits are fenced against the server tip, and when the two diverge a prompt offers keep-local, save-as-a-local-copy, or take-the-server-version behind a second confirmation. Lock holders are badged in the project lists, a lock left by a crashed session can be resumed or released, and revision history can be viewed and restored from. Remote projects you have access to appear in Global View, an Ariane-only remote project can be adopted as a native
.stalx, and an opt-in force-edit lets you work offline or while someone else holds the lock. Your token lives in the OS keychain and never crosses into the web view (#182) - Publish and manage projects in-app - publish a local project (name, description, country, visibility, map location, collaborators), then manage details, per-user and per-team collaborators, lock release and deletion from a dedicated dialog with General, Collaborators, History and Admin tabs. Admin holds force-release of another user's lock, because that is stuck-lock recovery rather than part of editing. Links go straight to the same project on your server, and the toolbar's status mark right-clicks to the full menu (#182)
- Revert without taking the lock first - the revision history offers Revert on a read-only project: it takes the lock, puts the revision back, uploads it as a new revision, and releases the lock, ending exactly as read-only as it started. History is never rewritten. Offered even when the local copy has changes the server has never seen, behind a two-step confirmation naming what it replaces - a state that previously offered nothing at all
- A server dump with more than one openable file can be opened - when a SpeleoDB project's dump holds several survey files, the app asks which one to use rather than dead-ending with an instruction to go tidy the server. The question is asked before the write lock is taken, the answer is remembered for the session, and it applies to opening a project as well as viewing and restoring a revision (#258)
- Credential storage you can see - Settings reports whether your API key is in the OS keychain, a plaintext file, or held for the session, without interrogating the keyring (on Linux that is itself what raises the unlock prompt). If the keychain refuses the key at sign-in, it asks then and there whether to keep it for the session or write a file, rather than leaving you to discover later that you were signed out
- One local file per SpeleoDB project - a
.stalxthat belongs to a remote project now lives in exactly one place, the cache that Stalagmight pulls it into. Two local copies of the same remote project was a state where it was never clear which one your edits and pushes were going to, and it could be reached by ordinary use: Save As, or opening a copy someone sent you. Opening a linked file from anywhere else is now refused before the file is even read, and the refusal is a question rather than a dead end - open the managed copy instead, or cut this file's link to the server and keep it as a plain local project. Signed out or offline, cutting the link still works. Save As on a project you have open from SpeleoDB is now "Save a Copy": it writes a.stalxwith the server link removed and leaves your session on the managed file, so exporting a copy for someone can no longer quietly move which file you are editing - or which file gets pushed - Undo history that follows a SpeleoDB project through its history - a linked project now stores the operations that produced each revision, so undo is no longer confined to one session. Undo to the start of your session, then use Unwind to previous SpeleoDB version at the bottom of the undo hist...
Stalagmight v0.5.0-rc4
Release candidate for 0.5.0. Not a final release - published so
testers can try it. The notes below are the notes for 0.5.0; anything
in them may still change before that version ships.
The first release with builds for all three platforms. The headline additions are
Plan mode, a gas- and range-aware dive planner built on the survey graph, and
SpeleoDB integration, which lets a project live on a server and be handed
between divers.
Highlights
- Plan mode - plan a dive against the actual survey: gas-limited reach, a turn frontier, ordered way points, movable stage drops, DPV support, and a depth profile you can export (#38)
- SpeleoDB integration - open a project from SpeleoDB, edit it under the server's single-writer lock, and push it back without leaving the app (#182)
- Export mode - a what-you-see-is-what-you-get export surface over the map, sharing the survey map's coloring (#239)
- The data table is a spreadsheet - an in-house grid with real copy/paste, draft rows, column families and per-column validation (#61)
- Loop closures are non-destructive - a Display toggle between measured and closure-adjusted geometry; your raw shots are never rewritten
- A custom WebGL map renderer - large surveys hold far less memory and edits update the picture in place (#80)
- Walls import and Windows support -
.wpj/.srvsurveys import, and the app builds and runs on Windows - Downloads for macOS and Windows - releases now ship
.dmg,.msiand-setup.exealongside the Linux packages (#324) - The map moves like a map - drag to pan and scroll to zoom whatever tool you are holding, rather than switching to a Pan tool first (#409)
- Declination per section - your measured bearings are stored exactly as recorded, and the correction to true north is applied only where the map or an export needs it (#438)
Added
Plan mode
- Gas-limited reach - Plan mode colors the survey by the gas it takes to reach each point and marks the turn frontier, the stations where the dive has to turn around. Set up back-gas and stage cylinders (any can be disabled without deleting the row), RMV and swim speed, then pick a Gas strategy: All thirds, Half Minus: 1 stage, Half Minus: 2 stages, or Free, where you set each cylinder's allowance yourself. A safety margin holds gas back from every cylinder. Every number shown - usable gas, turn pressure, drop pressures - comes from the same engine that draws the map, so a readout cannot drift from the reach it claims (#38, #228, #245)
- Routes you steer - click a turn-frontier dot, or right-click anywhere, to set the endpoint and re-solve for it. Way points are stations the dive must visit in order, paid for by the whole solve rather than silently skipped; an unreachable one stalls the plan, because it is a constraint, not a hint. Marked points are free annotation. Every stage cylinder gets a drop marker you can drag or nudge: dropping deeper than the safe point is allowed but flagged red, dropping shallower honestly shortens the reach. Plan reports distance to the turnaround and the maximum and average depth along the route, with jump legs faded so a swum line reads differently from a shortcut (#236, #243, #246, #298)
- DPV planning with per-segment speeds - model a scooter rig (a primary plus a mandatory backup) in the Equipment tab. Way points divide the route into segments, and the Segments tab gives each one a speed and an on-DPV flag, with its own color on the route. A scootered span spends the rig's usable one-way range by the battery clock, so riding slower than cruise costs more range than line, and the panel says when it is range rather than gas that turns the dive. The park point is derived from the segments and marked on the map (#317)
- The planned dive as a profile - a Profile tab charts depth across the round trip against distance or runtime, marking the turnaround, stage drops and way points. Every number is the one the gas engine already solved, so the chart cannot drift from the plan beside it. Exports as Subsurface-shaped dive XML or a fixed-width text table for a slate. Both carry a header saying what the file is not: Stalagmight has no decompression model - no ascent schedule, no stops, no tissue loading - and a profile must never be read as one (#299)
- Named dive plans persist - saved in a sibling
.plnxfile next to the.stalx, never inside it, so a SpeleoDB push is untouched by it. Plans store stable station anchors, so they keep pointing at the same physical stations across later survey edits (#244) - Survey, Plan and Export workspace modes - three top-level modes from a carousel in the top bar. Plan and Export show the read-only closure-adjusted map and drop the mutating tools, so the survey cannot change under a plan or a preview (#38)
SpeleoDB
- Open, lock, edit and push - a remote project is read-only until you take the write lock; local edits are fenced against the server tip, and when the two diverge a prompt offers keep-local, save-as-a-local-copy, or take-the-server-version behind a second confirmation. Lock holders are badged in the project lists, a lock left by a crashed session can be resumed or released, and revision history can be viewed and restored from. Remote projects you have access to appear in Global View, an Ariane-only remote project can be adopted as a native
.stalx, and an opt-in force-edit lets you work offline or while someone else holds the lock. Your token lives in the OS keychain and never crosses into the web view (#182) - Publish and manage projects in-app - publish a local project (name, description, country, visibility, map location, collaborators), then manage details, per-user and per-team collaborators, lock release and deletion from a dedicated dialog with General, Collaborators, History and Admin tabs. Admin holds force-release of another user's lock, because that is stuck-lock recovery rather than part of editing. Links go straight to the same project on your server, and the toolbar's status mark right-clicks to the full menu (#182)
- Revert without taking the lock first - the revision history offers Revert on a read-only project: it takes the lock, puts the revision back, uploads it as a new revision, and releases the lock, ending exactly as read-only as it started. History is never rewritten. Offered even when the local copy has changes the server has never seen, behind a two-step confirmation naming what it replaces - a state that previously offered nothing at all
- A server dump with more than one openable file can be opened - when a SpeleoDB project's dump holds several survey files, the app asks which one to use rather than dead-ending with an instruction to go tidy the server. The question is asked before the write lock is taken, the answer is remembered for the session, and it applies to opening a project as well as viewing and restoring a revision (#258)
- Credential storage you can see - Settings reports whether your API key is in the OS keychain, a plaintext file, or held for the session, without interrogating the keyring (on Linux that is itself what raises the unlock prompt). If the keychain refuses the key at sign-in, it asks then and there whether to keep it for the session or write a file, rather than leaving you to discover later that you were signed out
- One local file per SpeleoDB project - a
.stalxthat belongs to a remote project now lives in exactly one place, the cache that Stalagmight pulls it into. Two local copies of the same remote project was a state where it was never clear which one your edits and pushes were going to, and it could be reached by ordinary use: Save As, or opening a copy someone sent you. Opening a linked file from anywhere else is now refused before the file is even read, and the refusal is a question rather than a dead end - open the managed copy instead, or cut this file's link to the server and keep it as a plain local project. Signed out or offline, cutting the link still works. Save As on a project you have open from SpeleoDB is now "Save a Copy": it writes a.stalxwith the server link removed and leaves your session on the managed file, so exporting a copy for someone can no longer quietly move which file you are editing - or which file gets pushed - Undo history that follows a SpeleoDB project through its history - a linked project now stores the operations that produced each revision, so undo is no longer confined to one session. Undo to the start of your session, then use Unwind to previous SpeleoDB version at the bottom of the undo hist...
Stalagmight v0.5.0-rc3
Release candidate for 0.5.0. Not a final release - published so
testers can try it. The notes below are the notes for 0.5.0; anything
in them may still change before that version ships.
The first release with builds for all three platforms. The headline additions are
Plan mode, a gas- and range-aware dive planner built on the survey graph, and
SpeleoDB integration, which lets a project live on a server and be handed
between divers.
Highlights
- Plan mode - plan a dive against the actual survey: gas-limited reach, a turn frontier, ordered way points, movable stage drops, DPV support, and a depth profile you can export (#38)
- SpeleoDB integration - open a project from SpeleoDB, edit it under the server's single-writer lock, and push it back without leaving the app (#182)
- Export mode - a what-you-see-is-what-you-get export surface over the map, sharing the survey map's coloring (#239)
- The data table is a spreadsheet - an in-house grid with real copy/paste, draft rows, column families and per-column validation (#61)
- Loop closures are non-destructive - a Display toggle between measured and closure-adjusted geometry; your raw shots are never rewritten
- A custom WebGL map renderer - large surveys hold far less memory and edits update the picture in place (#80)
- Walls import and Windows support -
.wpj/.srvsurveys import, and the app builds and runs on Windows - Downloads for macOS and Windows - releases now ship
.dmg,.msiand-setup.exealongside the Linux packages (#324)
Added
Plan mode
- Gas-limited reach - Plan mode colors the survey by the gas it takes to reach each point and marks the turn frontier, the stations where the dive has to turn around. Set up back-gas and stage cylinders (any can be disabled without deleting the row), RMV and swim speed, then pick a Gas strategy: All thirds, Half Minus: 1 stage, Half Minus: 2 stages, or Free, where you set each cylinder's allowance yourself. A safety margin holds gas back from every cylinder. Every number shown - usable gas, turn pressure, drop pressures - comes from the same engine that draws the map, so a readout cannot drift from the reach it claims (#38, #228, #245)
- Routes you steer - click a turn-frontier dot, or right-click anywhere, to set the endpoint and re-solve for it. Way points are stations the dive must visit in order, paid for by the whole solve rather than silently skipped; an unreachable one stalls the plan, because it is a constraint, not a hint. Marked points are free annotation. Every stage cylinder gets a drop marker you can drag or nudge: dropping deeper than the safe point is allowed but flagged red, dropping shallower honestly shortens the reach. Plan reports distance to the turnaround and the maximum and average depth along the route, with jump legs faded so a swum line reads differently from a shortcut (#236, #243, #246, #298)
- DPV planning with per-segment speeds - model a scooter rig (a primary plus a mandatory backup) in the Equipment tab. Way points divide the route into segments, and the Segments tab gives each one a speed and an on-DPV flag, with its own color on the route. A scootered span spends the rig's usable one-way range by the battery clock, so riding slower than cruise costs more range than line, and the panel says when it is range rather than gas that turns the dive. The park point is derived from the segments and marked on the map (#317)
- The planned dive as a profile - a Profile tab charts depth across the round trip against distance or runtime, marking the turnaround, stage drops and way points. Every number is the one the gas engine already solved, so the chart cannot drift from the plan beside it. Exports as Subsurface-shaped dive XML or a fixed-width text table for a slate. Both carry a header saying what the file is not: Stalagmight has no decompression model - no ascent schedule, no stops, no tissue loading - and a profile must never be read as one (#299)
- Named dive plans persist - saved in a sibling
.plnxfile next to the.stalx, never inside it, so a SpeleoDB push is untouched by it. Plans store stable station anchors, so they keep pointing at the same physical stations across later survey edits (#244) - Survey, Plan and Export workspace modes - three top-level modes from a carousel in the top bar. Plan and Export show the read-only closure-adjusted map and drop the mutating tools, so the survey cannot change under a plan or a preview (#38)
SpeleoDB
- Open, lock, edit and push - a remote project is read-only until you take the write lock; local edits are fenced against the server tip, and when the two diverge a prompt offers keep-local, save-as-a-local-copy, or take-the-server-version behind a second confirmation. Lock holders are badged in the project lists, a lock left by a crashed session can be resumed or released, and revision history can be viewed and restored from. Remote projects you have access to appear in Global View, an Ariane-only remote project can be adopted as a native
.stalx, and an opt-in force-edit lets you work offline or while someone else holds the lock. Your token lives in the OS keychain and never crosses into the web view (#182) - Publish and manage projects in-app - publish a local project (name, description, country, visibility, map location, collaborators), then manage details, per-user and per-team collaborators, lock release and deletion from a dedicated dialog with General, Collaborators, History and Admin tabs. Admin holds force-release of another user's lock, because that is stuck-lock recovery rather than part of editing. Links go straight to the same project on your server, and the toolbar's status mark right-clicks to the full menu (#182)
- Revert without taking the lock first - the revision history offers Revert on a read-only project: it takes the lock, puts the revision back, uploads it as a new revision, and releases the lock, ending exactly as read-only as it started. History is never rewritten. Offered even when the local copy has changes the server has never seen, behind a two-step confirmation naming what it replaces - a state that previously offered nothing at all
- A server dump with more than one openable file can be opened - when a SpeleoDB project's dump holds several survey files, the app asks which one to use rather than dead-ending with an instruction to go tidy the server. The question is asked before the write lock is taken, the answer is remembered for the session, and it applies to opening a project as well as viewing and restoring a revision (#258)
- Credential storage you can see - Settings reports whether your API key is in the OS keychain, a plaintext file, or held for the session, without interrogating the keyring (on Linux that is itself what raises the unlock prompt). If the keychain refuses the key at sign-in, it asks then and there whether to keep it for the session or write a file, rather than leaving you to discover later that you were signed out
- One local file per SpeleoDB project - a
.stalxthat belongs to a remote project now lives in exactly one place, the cache that Stalagmight pulls it into. Two local copies of the same remote project was a state where it was never clear which one your edits and pushes were going to, and it could be reached by ordinary use: Save As, or opening a copy someone sent you. Opening a linked file from anywhere else is now refused before the file is even read, and the refusal is a question rather than a dead end - open the managed copy instead, or cut this file's link to the server and keep it as a plain local project. Signed out or offline, cutting the link still works. Save As on a project you have open from SpeleoDB is now "Save a Copy": it writes a.stalxwith the server link removed and leaves your session on the managed file, so exporting a copy for someone can no longer quietly move which file you are editing - or which file gets pushed
Survey and data
- Structural-integrity safety net - Stalagmight now protects the relationships in a survey (station merges, loop closures, zero datums, comments). Edits that would corrupt them are refused before they take effect, and opening a project re-checks it; a banner offers Review & Repair, which lists what is wrong and repairs it in one click, dropping only invalid data. Cross-references are tied to each shot's stable identity, so inserting or deleting shots can no longer silently re-point a merge, closure, datum or comment onto the wrong station (#17)
- The data table is a spreadsheet - shots and stations moved onto an in-house grid with a spreadshee...
Stalagmight v0.5.0-rc2
Release candidate for 0.5.0. Not a final release - published so
testers can try it. The notes below are the notes for 0.5.0; anything
in them may still change before that version ships.
The first release with builds for all three platforms. The headline additions are
Plan mode, a gas- and range-aware dive planner built on the survey graph, and
SpeleoDB integration, which lets a project live on a server and be handed
between divers.
Highlights
- Plan mode - plan a dive against the actual survey: gas-limited reach, a turn frontier, ordered way points, movable stage drops, DPV support, and a depth profile you can export (#38)
- SpeleoDB integration - open a project from SpeleoDB, edit it under the server's single-writer lock, and push it back without leaving the app (#182)
- Export mode - a what-you-see-is-what-you-get export surface over the map, sharing the survey map's coloring (#239)
- The data table is a spreadsheet - an in-house grid with real copy/paste, draft rows, column families and per-column validation (#61)
- Loop closures are non-destructive - a Display toggle between measured and closure-adjusted geometry; your raw shots are never rewritten
- A custom WebGL map renderer - large surveys hold far less memory and edits update the picture in place (#80)
- Walls import and Windows support -
.wpj/.srvsurveys import, and the app builds and runs on Windows - Downloads for macOS and Windows - releases now ship
.dmg,.msiand-setup.exealongside the Linux packages (#324)
Added
Plan mode
- Gas-limited reach - Plan mode colors the survey by the gas it takes to reach each point and marks the turn frontier, the stations where the dive has to turn around. Set up back-gas and stage cylinders (any can be disabled without deleting the row), RMV and swim speed, then pick a Gas strategy: All thirds, Half Minus: 1 stage, Half Minus: 2 stages, or Free, where you set each cylinder's allowance yourself. A safety margin holds gas back from every cylinder. Every number shown - usable gas, turn pressure, drop pressures - comes from the same engine that draws the map, so a readout cannot drift from the reach it claims (#38, #228, #245)
- Routes you steer - click a turn-frontier dot, or right-click anywhere, to set the endpoint and re-solve for it. Way points are stations the dive must visit in order, paid for by the whole solve rather than silently skipped; an unreachable one stalls the plan, because it is a constraint, not a hint. Marked points are free annotation. Every stage cylinder gets a drop marker you can drag or nudge: dropping deeper than the safe point is allowed but flagged red, dropping shallower honestly shortens the reach. Plan reports distance to the turnaround and the maximum and average depth along the route, with jump legs faded so a swum line reads differently from a shortcut (#236, #243, #246, #298)
- DPV planning with per-segment speeds - model a scooter rig (a primary plus a mandatory backup) in the Equipment tab. Way points divide the route into segments, and the Segments tab gives each one a speed and an on-DPV flag, with its own color on the route. A scootered span spends the rig's usable one-way range by the battery clock, so riding slower than cruise costs more range than line, and the panel says when it is range rather than gas that turns the dive. The park point is derived from the segments and marked on the map (#317)
- The planned dive as a profile - a Profile tab charts depth across the round trip against distance or runtime, marking the turnaround, stage drops and way points. Every number is the one the gas engine already solved, so the chart cannot drift from the plan beside it. Exports as Subsurface-shaped dive XML or a fixed-width text table for a slate. Both carry a header saying what the file is not: Stalagmight has no decompression model - no ascent schedule, no stops, no tissue loading - and a profile must never be read as one (#299)
- Named dive plans persist - saved in a sibling
.plnxfile next to the.stalx, never inside it, so SpeleoDB pushes and Ariane collaboration are untouched. Plans store stable station anchors, so they keep pointing at the same physical stations across later survey edits (#244) - Survey, Plan and Export workspace modes - three top-level modes from a carousel in the top bar. Plan and Export show the read-only closure-adjusted map and drop the mutating tools, so the survey cannot change under a plan or a preview (#38)
SpeleoDB
- Open, lock, edit and push - a remote project is read-only until you take the write lock; local edits are fenced against the server tip, and when the two diverge a prompt offers keep-local, save-as-a-local-copy, or take-the-server-version behind a second confirmation. Lock holders are badged in the project lists, a lock left by a crashed session can be resumed or released, and revision history can be viewed and restored from. Remote projects you have access to appear in Global View, an Ariane-only remote project can be adopted as a native
.stalx, and an opt-in force-edit lets you work offline or while someone else holds the lock. Your token lives in the OS keychain and never crosses into the web view (#182) - Publish and manage projects in-app - publish a local project (name, description, country, visibility, map location, collaborators), then manage details, per-user and per-team collaborators, lock release and deletion from a dedicated dialog with General, Collaborators, History and Admin tabs. Admin holds force-release of another user's lock, because that is stuck-lock recovery rather than part of editing. Links go straight to the same project on your server, and the toolbar's status mark right-clicks to the full menu (#182)
- Revert without taking the lock first - the revision history offers Revert on a read-only project: it takes the lock, puts the revision back, uploads it as a new revision, and releases the lock, ending exactly as read-only as it started. History is never rewritten. Offered even when the local copy has changes the server has never seen, behind a two-step confirmation naming what it replaces - a state that previously offered nothing at all
- A server dump with more than one openable file can be opened - when a SpeleoDB project's dump holds several survey files, the app asks which one to use rather than dead-ending with an instruction to go tidy the server. The question is asked before the write lock is taken, the answer is remembered for the session, and it applies to opening a project as well as viewing and restoring a revision (#258)
- Credential storage you can see - Settings reports whether your API key is in the OS keychain, a plaintext file, or held for the session, without interrogating the keyring (on Linux that is itself what raises the unlock prompt). If the keychain refuses the key at sign-in, it asks then and there whether to keep it for the session or write a file, rather than leaving you to discover later that you were signed out
Survey and data
- Structural-integrity safety net - Stalagmight now protects the relationships in a survey (station merges, loop closures, zero datums, comments). Edits that would corrupt them are refused before they take effect, and opening a project re-checks it; a banner offers Review & Repair, which lists what is wrong and repairs it in one click, dropping only invalid data. Cross-references are tied to each shot's stable identity, so inserting or deleting shots can no longer silently re-point a merge, closure, datum or comment onto the wrong station (#17)
- The data table is a spreadsheet - shots and stations moved onto an in-house grid with a spreadsheet selection and keyboard model: copy/cut/paste, fill from a copied tile, column hide and reorder with position memory, a frozen gutter, per-column validation that flashes rejected input, and required cells that clear to a visible "missing" state rather than silently keeping or zeroing a value. Shots get draft rows for creating shots anywhere in a section, and azimuth/inclination Avg and In+Out column families that swap in place. Stations get coordinate groups, a zero-datum cell, and connection cells that open a merges/closures picker. A full-screen mode trades the map for room (#61)
- Warnings tab is a workflow - Resolve / Resolve all with a live on-map ghost preview of each proposed fix, a virtualized list, double-click to pan, and per-warning fixes for azimuth, length, depth, LRUD and inclination-vs-depth-vs-length geometry. Resolved and ignored warni...