Skip to content

v0.1.4: Historical sessions (build from history / combine), docs sync, CI releases - #4

Merged
wolfthefallen merged 3 commits into
masterfrom
fable
Aug 23, 2026
Merged

v0.1.4: Historical sessions (build from history / combine), docs sync, CI releases#4
wolfthefallen merged 3 commits into
masterfrom
fable

Conversation

@wolfthefallen

Copy link
Copy Markdown
Owner

What this ships

Historical sessions — build a session after the fact from a past date/time window (read straight from the gamelogs, including old\), or combine two or more saved sessions into one. Overlapping saved sessions are listed for the user to combine or exclude (a pilot is never counted in two sessions), partial fleet matches offer a union fleet, sources are archived with a merged_into pointer (delete = undo), and the new session gets its own market rows (window averages, today's prices as the fallback, with a notice). Schema v3 adds session.archived / session.merged_into via an idempotent migration. 81 new tests; manual-tests Section 12.6.

Comment / doc sweep — code comments no longer cite plan numbers or planning markdown; docs re-verified against the code.

Version 0.1.4 + its CHANGELOG.md section.

Commits

  • ab52c6b CI workflow (build + test on master/PRs, automatic release on a new version) — already committed on local master; it shows in this PR only because origin/master has not been pushed yet. Pushing master first drops it from the diff.
  • 207732a Scrub planning references from code comments and sync docs to the code
  • eec9c76 Historical sessions: build from a date range or combine saved sessions
  • 97a3664 Bump version to 0.1.4 and add its changelog section

Verification

  • dotnet build: 0 warnings / 0 errors. dotnet test: 1,229 passed, 0 failed (2 manual-only network tests skipped).
  • Startup smoke on a real store: clean; the v2 -> v3 migration ran once.
  • Manual verification still to do: tests/manual/manual-tests.md Section 12.6.

On merge

The CI workflow's release job sees <Version> = 0.1.4 with no v0.1.4 tag and publishes the release (EVEDashboard.exe + EVEDashboard.zip) with the ## v0.1.4 changelog section as its notes.

Code comments, XAML comments, csproj/props comments, test comments, and the
SQL comments inside the DDL strings no longer cite plan numbers, TODO/BUGS/
QUESTIONS/CLEANUP files, decision-round shorthand, or other markdown; each
comment now carries its rationale inline. The code is the source of truth.

Docs re-verified against the code and corrected: README feature list,
technical.md (solution layout, startup chain, logging, settings keys, session
state machine, Reports window), session-schema.md (widget_layout kinds,
NULL columns for Residue, missing settings keys, legacy id migration),
sde-schema.md, market-schema.md (session-bound reads, split-mode rule,
fetched_at shape, Haul Value path), manual-tests.md (schema version, log file
name, window titles, app version, Excel labels, Add-station scenario).
Stale comments that contradicted the code were fixed to match it.

Test helper Plan18PricingFactory renamed to PricingPipelineFactory.
Forgot to press Start? Reports now has Build from history... (pick a window
in EVE time + a fleet; the gamelogs, including old\, are parsed for the
untracked parts) and Combine selected... on the sidebar context menu (two or
more ticked sessions, no parsing). One dialog, one action button that walks
the user through Check overlaps -> Build.

Rules: a pilot belongs to one session at a time. Saved sessions that overlap
the window and share pilots with the fleet are listed; ticked ones are
combined (their log rows are copied verbatim), unticked ones have their
pilots' time excluded from the parse so nothing is counted twice. A ticked
session that brings extra pilots prompts to create a union fleet; declining
leaves it out instead. Sources are archived (hidden everywhere, never summed
into Lifetime Totals) with merged_into pointing at the new session; deleting
the combined session un-archives them. Show archived in the sidebar reveals
them for inspection / export / delete.

Time accounting mirrors a live session: merged sources' own session_time
rows govern their spans (active intervals unioned), and each untracked gap is
paused until its first Tick/Crit, active from there, with a pause synthesised
after any gap longer than auto_pause_idle_minutes. The new session gets its
own market_data rows: per-type averages of the rows captured inside the
window at the selected station, with a gap-fill at today's prices for
anything missing; the summary says which applied.

Schema v3: session.archived + session.merged_into via a pre-checked
ALTER TABLE ... ADD COLUMN (shared SqliteSchemaExtensions.TryAddColumnAsync,
now also used by the SDE initialiser). SQL comments stay outside CREATE
TABLE bodies because DROP COLUMN rewrites the stored statement text. JSON
export/import carry the two fields (older files default them).

Session name templates gain {{$STARTDATE}} / {{$ENDDATE}} (16Aug) and
{{$YYYY}}; the dialog defaults to '{{$STARTDATE}} - {{$ENDDATE}} {{$YYYY}} history'.

81 new tests across Core, Mining, Stats, MarketData, SessionIO, Persistence,
Reporting and App.Wpf; manual-tests Section 12.6; README, technical,
session-schema and market-schema docs updated.
@wolfthefallen
wolfthefallen merged commit c70446a into master Aug 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant