Skip to content

Changelog

All notable changes to PastPaths are documented here.

The format follows Keep a Changelog and the project uses Semantic Versioning.


[1.10.0] - [2026-10-19]

Added

Blog

  • New Blog tab on the person, place, and event pages, with the blog posts linked there. Click a post to open it. More posts are loaded with Show more.

Sources

  • The source form has an abbreviation field. The abbreviation is shown in the source dialog and can be searched for in the sources list and in the global search.

Changed

Persons

  • All tabs on the person page except Biography show a count: relationships, places, events, media, blog posts, and sources. The count stays visible when the tab row is scrolled with More, and the Sources tab's text is the same size as on the other tabs.

Research

  • Reports have moved from Administration to Research, as the last tab. Old links and shortcuts lead to the right place automatically. The card on the welcome page is now called Research.

Sources

  • The source dialog no longer fetches the whole source register when a source is edited or a source citation is deleted.

Import & Export

  • If a file is too large, the error message shows the maximum allowed size: 5 GB for a backup being restored and 500 MB for other uploads, such as a GEDCOM file.

Media

  • Images downloaded by the WordPress import get the description "WordPress:" followed by the image's address, the same in Swedish and English. Previously they said "Importerad från WordPress" in the English interface too. Images already imported keep their text.

Backups

  • "System backup" is now called "Backup" everywhere in the English interface.

Log file

  • The WordPress import no longer writes the images' addresses, titles, or file names to the log.

Fixed

Language

  • The search box in the sources list didn't mention call number and abbreviation in English, even though the search looks at them.
  • The example texts in the source form were in Swedish in the English interface.
  • In the source dialog, source citations on blog posts and relationships were shown with a technical type instead of "Blog post" and "Relationship".
  • The tag and category page showed blog posts' type in English and their status as a technical code, regardless of language.
  • In the Swedish interface, the -Utred vidare tag was shown in English in the tag selector and on the blog post page.
  • In the English interface, the tag is now called -Investigate further, matching the flag dialog. The dialog for flagging a person named the tag in Swedish in the English interface.
  • In the Swedish interface, the person card said "make/maka" (spouse) even when the person had several partners. It now says "partner" or "partners".

Sources

  • The source form closed even when the source couldn't be saved, so what you had entered was lost.
  • A change to the source made in the source dialog didn't show in the dialog until it was opened again.
  • A source citation deleted in the source dialog stayed on the person, place, event, or post page behind it until the page was reloaded.
  • In the source dialog, an attachment that isn't an image, for example a PDF, was shown as a broken image.

Reports

  • The source list couldn't be generated unless a person had been selected. It covers all of your research and doesn't need a focus person.

Blog

  • The blog list was missing the series filter, even though the manual described it. With a series selected, the posts are shown in the series order (1, 2, 3...).
  • Events on a blog post's page were shown with a technical type and with dates like 1850-01-01 even when only the year was known, and they couldn't be opened. They're now shown as in the rest of the app and open with a click.

Tags and categories

  • On the tag and category page, events without a title of their own were shown with only the type name.
  • An error when fetching the tag or category page showed the server's technical error text.

Events

  • The source citation dialog on the event page showed only the type name as the heading for events without a title of their own.

Import

  • WordPress import: if the import failed, the import history showed the error as technical text, and only in Swedish. A message in the chosen language is now shown, for example that the file isn't a WordPress export.
  • WordPress import: the summary after the import was shown in Swedish in the English interface too.
  • WordPress import: if the posts were imported but the images couldn't be downloaded, no warning was shown. A warning is now shown, with a tip about the Download WP images button.
  • The Download WP images button always gave an error message, because the function behind it was missing. The button was also only shown if the most recent blog post came from WordPress.
  • When undoing a WordPress import, the preview didn't show the blog posts, even though they were deleted.
  • A GEDCOM file that was too large gave "Couldn't analyze the file" instead of saying that the file was too large.

Backups

  • A backup that was too large gave "Restore failed" instead of saying that the file was too large.
  • An unexpected error when restoring a backup could show the program's technical error text in English.

Security

  • When an upload request arrived without a file, all of the request's details were written to the log file, including a login token.

[1.9.0] - [2026-10-11]

Added

Research (new menu item)

  • New Research menu item, between Administration and About, that gathers the research tools in tabs: Research notes, Bookmarks, Recently changed, Calendar, People statistics, and Place statistics. Old links to the calendar and the statistics pages lead there.
  • The welcome page now shows a "Continue where you left off" card with recently changed persons and places. Recently imported records that haven't been edited don't show up in the list. The Recently changed tab shows the same thing with more rows.

Research notes (new feature)

  • Research notes are notes with things you want to remember: a title, a "Reminder" text, an optional root person, a status (active/paused/completed), and the people, places, and events the note is about. A person, place, or event can be on several notes at the same time.
  • The notes are shown as cards with a status-colored top edge — yellow for active, blue for paused, and green for completed — and the status is also written out on the card.
  • Create a new note or link to an existing one directly from a person, place, event, or the branch view, using the note button next to the bookmark.
  • Notes can be sorted by last changed, name, status, or creation date. The choice is remembered.

Research branch (new feature)

  • New Research branch view that starts from a focus person and shows parents, partners, children, siblings, and other relations in tables with dates and places of birth and death — so you can tell whether the right people really belong together.
  • The Check column shows the parent's age at the child's birth, whether a child was born after the parent's death, and the age difference between partners and siblings, alongside the program's own validation warnings.
  • Relationships can be added (with an existing or a new person), edited, and removed directly in the tables. Click a name to move the focus there; a trail shows the people you've gone through.
  • Reached from the person page, the person dialog, the person cards in the family tree, bookmarks, and Recently changed.

Bookmarks (new feature)

  • Bookmark people, places, and events with the bookmark icon, with an optional note about why you want to come back. All bookmarks are gathered under Research → Bookmarks and can be filtered by type.
  • If a bookmarked record is deleted, the bookmark is removed with it, and the confirmation says so. If two bookmarked records are merged, you get one bookmark that keeps both notes.

Family tree

  • New Network view next to the tree — switch with the Tree and Network buttons. In the network, every person is drawn once, and parents and children are connected through small family points. That shows what the tree can't: cousin marriages and other pedigree collapse where two branches meet in the same ancestor, stepfamilies, and multiple marriages. The program remembers which view you chose.
  • In the network, adoptive, foster, and step-parents and guardians are drawn with a dashed line, and the type is written on the line down to the child. Ex-partners are drawn dashed with the label Ex. Stepchildren are shown with all their registered parents. If a parent is missing, no empty placeholder is shown.
  • The Show panel in the network controls what is drawn: parents and ancestors, children and descendants, partners without children together, siblings, stepfamilies, other relationships (godparents, witnesses, other), and roles in events. Other relationships and roles in events are turned off from the start. Your choices are remembered.
  • Other relationships are drawn as green dotted lines and roles in events as brown ones. Hover over a person to highlight the person's lines with labels, or over a line to read the full text, with who had the role and the date. Show all labels shows every label at once, also in the PDF.
  • Persons who are only included through another relationship or an event are placed in the row below the person they're connected to.
  • With parents and ancestors turned off, a parent can still be shown if they're connected to someone in the network through another relationship or an event, for example as a baptism witness. The parent–child line is then drawn too.
  • The PDF export of the tree and the network can include a list of persons after the image. Family shows name, lifespan, and relationship to the focus person — as a kinship term ("grandmother", "cousin", "sister-in-law") or as a chain ("mother's brother's son"). If there are several paths, the others follow after "also", and persons with no path through the relationships get "No known relationship". In the network, the list can also include Other relationships and roles in events and Events with date, place, and the participants' roles.

Relationships

  • New relationship type Child in the relationship dialog, so children can be added from the parent's side.
  • Other relations (godparent, witness, other) are now shown on the person page, in the person dialog, and in the branch view — in both directions — described with a full sentence, e.g. "Karl Svensson is the godparent of Anna Berg". A new type in the relationship dialog makes it possible to record that the person themselves has the role.
  • Relationship dates are now saved with precision: "1850" is shown as 1850 and "1850-07" as Jul 1850, just like for persons and events. Existing relationships have been given a precision based on how their dates were stored.
  • Relationships can be added, changed, and removed when you edit a person too, not only when you create a new one. The relationship section in the edit dialog is the same as in the branch view, with subtype, dates, validation, and plausibility checks. Changes to relationships are saved immediately, regardless of the Save button.
  • Notes on relationships are now shown directly under the person: in the branch view, in the edit dialog, on the person page's Relationships tab, and in the person panel in the family tree. Long notes show two lines, and the rest when you hover over them.

Events

  • The Link existing event button on the person's Events tab and in the person dialog: search for an event that already exists, choose a role, and link the person to it.
  • The title is optional. Without a title of its own, an event gets a heading built from the event type and the persons, e.g. "Anna Andersson born" or "Divorce: Anna Andersson & Erik Berg". If there are no persons, only the type's name is shown. The heading is shown in the title field while you fill in the form.
  • Events can be deleted directly from the timeline's menu (⋮), also on a place's Events tab.
  • New Through events section in the person dialog, in the branch view, and in the edit dialog. It shows who had a role (witness, officiant, attendee, or other) in the person's events and which roles the person had in other people's events — with the event, the place, and whether the event has a source. The role holder is linked to the event's primary person and spouse. If the event has neither, they're linked to the event's other persons. The links come from the event and are changed there.
  • If a person has several birth or death events, the person page's Events tab asks you to merge them — a person is only born and dies once. The Merge button opens the merge directly with the two most recently created events, and the most recent one is preselected to be kept.

Maintenance

  • New Relationships area: checks partner and sibling relationships where the two directions have different details, where one direction is missing, or where the subtype isn't valid, and fixes what can be decided automatically — without losing any notes.
  • New "Unused places" tab under Maintenance → Clean up places: finds places with no links to persons, events, media, or blog posts. Places from the Place Library are hidden by default (can be shown with a checkbox).

Persons

  • An A–Z index on the person list (with Å, Ä, Ö): click a letter to show the persons whose surname starts with it. Letters without persons (given the filters you've chosen) are grayed out. All shows the whole list again.
  • The person list can be sorted by name, year of birth, and year of death, ascending or descending — both from the sort list and by clicking the column headers.
  • The person list remembers your search, filters, letter, sorting, and page when you open a person and go back. The number of rows per page is kept until next time.

Media

  • The blog can show more than images: video and audio get a player right in the post, and documents (e.g. a PDF) become a link that opens outside PastPaths.
  • A source citation's attachment can be a document, e.g. a PDF — not just an image. In the list of citations, documents are shown with an icon.
  • Uploading shows which file types are allowed and the maximum file size (50 MB per file).

Installation and uninstallation

  • When uninstalling, you choose whether the database, the uploaded files, and the log files with the app's settings should be deleted. Anything left unchecked is kept. Cancel cancels the entire uninstallation.
  • If you start PastPaths while the program is already running, a message is shown instead of a second copy starting.

Import

  • Errors and warnings from an import are shown when the import is done and in the import history, in the language you have chosen.

Changed

Export folder

  • Everything PastPaths exports is now saved in one shared folder under Documents: Documents\PastPaths with the subfolders Reports (reports and the family tree PDF), GEDCOM, and Backups. Previously, GEDCOM exports and backups ended up in Downloads and reports in Documents\PastPaths\Rapporter. Older reports remain there.
  • The path is taken from Windows, so the folder is found even when Documents has been moved, for example to OneDrive.
  • The export folder is shown at the top of the Import & Export page, with buttons to open the folder and copy the path. The same button is on the Maintenance page. Open folder in the message after an export opens the right subfolder.

Import & Export and Maintenance

  • The Import & Export page has been reworked: the export folder at the top, the GEDCOM (import and export) and System backup cards side by side, then the WordPress import and the history.
  • Maintenance shows the areas in a compact list in alphabetical order, with buttons of equal width. The longer description is shown when you hover over the row.

Deletion

  • Deleting persons, places, events, media, sources, tags, and categories now shows what will be deleted or unlinked before you confirm, and blocks the deletion instead of giving a server error if it would have an irreversible consequence (e.g. a place still in use).

Calendar and statistics

  • The calendar, people statistics, and place statistics are now tabs under Research, so they're easier to find.

Relationships

  • When a relationship is edited, the type and the person are locked, with an explanation — they could be changed in the form before, but the change was never saved. To change the type or person, remove the relationship and create a new one.
  • Changing the subtype or dates of an existing relationship is now checked the same way as when the relationship is created, and gives a warning that can be confirmed with "Save anyway". Changing only the note isn't checked.
  • The confirmation when you remove a relationship now says what happens: the relationship and its citations are removed, but the persons and their events, places, media, and blog posts are not affected.

Places

  • On a place's People tab, the button is now called Link person via event, with a short explanation: people are linked to a place through an event, such as a birth, a move, or a residence.
  • The places list's tree is fetched one level at a time: 100 countries, counties, or towns at a time and 50 places under a town, with Load more. Searching and filters give a list with 50 places per page. The "Unknown country", "Unknown county", etc. groups are placed last on their level.

Sources

  • When sources are merged, everything from the removed source is now kept: details that differ (title, type, author, publication, repository, call number, URL, etc.) and its notes are added to the kept source's notes under a heading that shows which source they came from. Previously, differing details were lost.
  • The search in the sources list looks at title, author, repository, call number, and abbreviation, and ignores accents like the other searches.

Family tree

  • The right-click menu on the person cards has been removed — it never appeared in the program. Instead, a Research branch button is shown next to the focus button when you hover over a card.
  • The panel that opens when you click a person now shows all of the person's details (biography, notes, nickname, places) and all of the person's events, also when opened from the tree.
  • Clicking a relative's name in the panel opens the relative in a panel on top.
  • The person cards can no longer be dragged away — a moved card made the lines end up wrong. Dragging a card moves the whole view. The button that unlocked the cards has been removed.
  • The PDF export saves the file in the export folder Documents\PastPaths\Reports (see Export folder) and shows where. Save PDF saves the file and shows a button that opens the folder. Open and print saves the file and opens it in your PDF reader, where you can preview and print it.
  • The statistics count the persons in the family. Godparents, witnesses, and others who are only included through another relationship or an event aren't counted.

Faster with many persons, events, and places

  • The app no longer fetches all persons, places, or sources when a page or dialog opens — that made the app sluggish with thousands of records. The lists, the pickers, the map, the statistics, and the counts on the welcome page only fetch what they need.
  • All person pickers search the whole database — by name, place of birth and death, tag, and category — and load more results as you scroll ("Showing 50 of 214"). Previously, several pickers showed only the first 20, 30, 50, or 100 persons. This applies to, among others, events, relationships, the family tree's focus person, the timeline, media, the blog, the map, and reports.
  • Place pickers and source pickers search the whole database in the same way and load more results as you scroll ("Showing 30 of 412"). This applies to, among others, events, persons, media, the blog, and source citations.
  • The timeline, a place's and a person's events, the welcome page, and blog posts no longer fetch all events.
  • The timeline shows 20 events at a time with a page selector. Filters, sorting, and statistics apply to the whole selection, not just what's visible. In By year mode, all years are shown with their number of events; a year shows 100 events at a time, with Show more. Events without a date are gathered last under Unknown year.
  • Sorting the events list by date, title, and type applies to the whole database. Title sorting follows the heading that is shown, also for events without a title of their own.
  • Link existing event loads more results as you scroll ("Showing 30 of 120"). Previously only the first 30 were shown.

Birth and death

  • A person's birth and death details and the birth and death events are now linked both ways. A birth or death event that is added, changed, merged, or deleted — or that the person is added to or removed from — changes the person's date and place. This shows in the person list, the family tree, the network, and the search.
  • A person with a death event is shown as deceased, even if the event has no date and even if the person was marked as living.
  • If a person has several birth or death events, the date is taken from the most recently created one that has a date, and the place from the most recently created one that has a place. This only applies to birth and death — other events, for example moves, can occur any number of times.
  • If you clear both the date and the place of birth or death when editing a person, the person's link to the event is removed everywhere. If the person is the only one in the event, the event is deleted. A warning is shown first, with the tip to keep the details instead and add a tag, for example "To verify", if they're just uncertain.
  • The search box at the top shows tabs: All and one per type, with the number of results. All shows a few results per type, a selected type shows up to 20, and the box can be scrolled. Types without results are greyed out. The box stays open when you switch tabs.
  • The search box finds the same as the lists, and the number matches Show all: persons also by place of birth and death, tag, and category, places also by parish, county, and region, events also by the participants' names, place, tag, and category, and sources also by repository, call number, and abbreviation.
  • Events can be searched by type: "death" and "died" find deaths, "burial" finds burials. This also applies to the search field on the Events page.
  • Events are shown with the same heading and date as in the lists and open the event. Sources open the Sources tab with the source's title as the search term.

Sorting and searching

  • Names are sorted in Swedish order: A–Z with W as a letter of its own after V, followed by Å, Ä, Ö. É sorts as E, Æ as Ä, Ø as Ö, and Ü as Y. Surname prefixes (von, af, av, de, de la, du, van, van der, van den, zu, la, le) are ignored, so "von Essen" is found under E.
  • Searching for persons, events, media, places, sources, and blog posts, and the global search, ignores upper and lower case, accents, dots, and rings — both ways: "lundstrom" finds "Lundström", "ake" finds "Åke", and "öberg" finds "Öberg".
  • The place search looks at the name, address, city, parish, county, region, country, and description. The search on the map also ignores accents.

Categories

  • The button next to the category field (previously a gear icon that took you to Administration) now opens a dialog for creating a new category directly on top of the form. The new category is selected automatically, and nothing you've entered in the form is lost.

Media

  • Link existing on persons, events, and places, Add media on sources, the profile picture picker, the blog's media picker, and a source citation's attachment now search the whole media library — by title, description, file name, tag, and category — and load more results as you scroll ("Showing 30 of 412"). Previously the whole library was fetched every time, and the search only looked at title and file name. Files that are already linked are greyed out and marked Already linked.
  • When you link several files at once, a single summary message is shown, e.g. "3 files linked to the person", instead of one per file.
  • Only images can become a profile picture, both when choosing an existing one and when uploading a new one.
  • The same list of allowed file types now applies everywhere. New: TIFF (.tif/.tiff), SVG, PowerPoint, WEBM, and AAC can be uploaded. The media type is determined by the file extension, both when uploading and when importing via GEDCOM and TNG, so a video is no longer counted as a document when the computer doesn't report the file's type.
  • A file uploaded in the blog's media picker is inserted into the post right away, or becomes the featured image.
  • The addresses of images and other files in blog posts are now saved so that they keep working if the program's address changes. Older posts are fixed the next time they're saved.
  • The manual search for media duplicates shows 30 results at a time, with Show more.

Backups

  • The backup on the Import & Export page now always includes the latest changes, even while the app is running.
  • When restoring, a copy of the current database is first saved in Documents\PastPaths-Backups\pre-restore, and the app asks you to restart PastPaths.
  • Backups are saved in Documents\PastPaths\Backups (see Export folder). If a backup or a GEDCOM export fails, an error message is shown in the chosen language, and an incomplete backup is removed.

Log file

  • The log file no longer grows without limit — at most five files of 1 MB are kept. Search terms, names, and file names aren't written to the log during normal use.

Installer

  • An upgrade finds a previous installation even if it's in a folder of its own.
  • The backup the installer makes when upgrading includes the latest changes.
  • The privacy policy and the terms of use are now at version 1.1. The privacy policy describes where the export folder and the backups are saved. The terms of use and the license page make clear that the open source components have their own licenses.
  • The license texts for the open source components and the DejaVu typeface are included in THIRD-PARTY-NOTICES.txt in the _internal\legal folder, next to the list in THIRD-PARTY-LICENSES.md.

Fixed

  • Searching for words with å, ä, or ö sometimes returned no results at all — caused by how the database compared upper and lower case. Searching for persons, events, and media now compares letters in a way that handles å, ä, ö, and accents (see Changed → Sorting and searching).
  • The global search and the blog's search didn't find words with å, ä, and ö: "åsa" didn't find "Åsa".
  • In the global search, events without a title of their own were shown with the technical type code, and dates as 1856-01-01 when only the year was known. Events and sources only opened the list, not the right record, and Show all for sources lost the search term.
  • The number of results in the search box could differ from the list that Show all opened.
  • The search box closed when you clicked a type filter.
  • A slow response to an earlier search could overwrite the results of a later one.
  • The persons' years of birth and death in the search box were shown with Swedish abbreviations in the English interface too.

Persons

  • Deleting a person tagged in an image gave a server error instead of deleting the person.
  • The Places tab on the person page was missing the button for adding a place, e.g. for a move. The Add place button is back — both on the person page and in the person dialog — and opens the event dialog with the person preselected, since places are linked to people through events.
  • The person dialog closed even when the person couldn't be created, so everything you'd entered was lost. It now closes only when the person has been saved.
  • The family tree didn't reload after a person was edited from the tree.
  • Three error messages about the profile picture showed a technical key name instead of text.
  • Editing a person from the person list or the family tree erased the biography, notes, nickname, alternate names, and place of birth and death when the person was saved, because the form was filled with a shortened version of the person. The form now always fetches the complete person before it can be saved.
  • A person added from the welcome page was created twice.
  • After a person was saved, the person list's page was replaced by all persons, and the welcome page could show the wrong number of persons and media.
  • In the list view, the column headers could be clicked without anything being sorted, the paging arrows didn't respond, and "x–y of z" was wrong.
  • A deleted or merged person stayed in the person list until the page was reloaded, and the total was wrong.
  • The person cards didn't show the place of birth and death, the death row was only shown when there was a date of birth, and the relationship summary always said "No relationships".
  • Two green messages were shown when a person was saved.
  • A death event added on the person page's Events tab never reached the person. The date of death was missing in the person list, the tree, and the network, and the person could be shown as living. Existing persons are fixed automatically when upgrading — only empty details are filled in, nothing is overwritten.
  • When birth or death was changed on a person, the wrong event could be updated, for example a death where the person was only a witness.

Relationships

  • Changing the subtype of an existing relationship (e.g. married → ex-partner, or biological → adoptive) wasn't saved, even though the program said the relationship had been updated.
  • Changes to a partner or sibling relationship were saved in only one direction, so the two people could show different details about the same relationship. Changes are now saved in both directions, and if the directions had different notes, they're combined. Relationships that have already drifted apart can be fixed under Maintenance → Relationships.
  • Editing a parent from the person page showed the relationship the wrong way round in the dialog.
  • "Add relationship" in the person dialog could open a previously cancelled edit instead of a new relationship.
  • Relationship dates before the year 1000 couldn't be saved.
  • Validation messages containing person names with certain special characters were displayed incorrectly.
  • Relationships chosen when creating a new person weren't saved if the check gave a warning, even though the program showed "Relationship has been created". A summary of warnings and errors is now shown, and relationships with warnings can be saved with Save anyway.
  • The validation gave two warnings about the same thing when a parent was 12–15 years old at the child's birth, and an end date on a partner relationship was only checked if the relationship also had a start date.
  • Step-siblings were shown as "Step-parent", and the partner type Other was shown as "complex". The person statistics showed the subtypes with technical names.

Research notes

  • A research note (previously research track) couldn't be deleted — the check of what would be affected failed before the confirmation was shown.
  • The delete dialog for people, places, and events that were on a note showed technical key names instead of text.
  • The sorting of notes and the number of persons, places, and events on the notes showed technical key names in Swedish.

Places

  • Deleting a place used as a birth or death place could, in rare cases, cause a completely different person to later show the wrong birthplace. Deleting a place that's in use is now blocked instead.
  • Undoing an import could crash if an imported place had an image linked to it.
  • The place dialog's suggestions for country, region, county, parish, and city were empty unless the places list had been opened first, and the place type Diocese couldn't be chosen.
  • The "Unknown country" filter wasn't shown among the active filters, and the type filter showed Swedish names in English too. Two places with the same name that were both a level in the tree (e.g. two counties) couldn't be reached — only the first was shown.
  • A place created from the map didn't appear until the page was reloaded, and a place name containing < or & broke the box on the map pin.
  • The place statistics' icons and colors for place types were wrong, and the link to a county without a country opened the wrong branch in the places list.

Sources

  • Deleting a source with only an image link (but no citations) didn't work, even though it should have been allowed.
  • Merging two sources didn't move the source's image links to the one that was kept.
  • A source's abbreviation was never saved.
  • The citation dialog showed the source's number instead of its title when an existing citation was opened, and it closed even when the citation couldn't be saved. A source created from the event dialog wasn't selected automatically.

Merging

  • Merging persons, places, events, and media could silently drop links that weren't accounted for: blog post links, an image's link to an event or source, a person's profile picture, and a blog post's featured image. All links are now moved, and the merge dialog shows how many of each type are moved.
  • Merging two images where one was linked to an event gave a server error.
  • The merge dialog for events showed empty names for events without a title of their own, both when choosing which one to keep and in the confirmation.

Family tree

  • The Focus person field only showed the first 30 persons, and the focus person's name could be missing in the field, in the heading, and in the PDF export.
  • The person panel in the tree only showed those of the person's events that were among the 50 most recent in the whole database, and relatives could be missing.
  • Clicking a relative's name in the person panel did nothing, and "Edit" in a panel on top could open the wrong person.
  • The person panel had two "Add event" buttons.
  • The header of the person panel scrolled away, which made it easy to close the whole program instead of the panel. The header now stays at the top.
  • The PDF export's metadata page showed the heading "Search:" without the search term itself.
  • With cousin marriages and other pedigree collapse, an ancestor found in two branches could be shown without their parents, so part of the tree was missing.
  • In the last generation, an "Unknown" card was shown instead of the person's partner, even though the partner was registered.
  • After a click in the tree, the Focus person field showed an ID number instead of the name.
  • Siblings could end up on top of each other when one of them had a partner.
  • The vertical line down to the descendants had a small notch.
  • The PDF export didn't save any file when it was made in the app.
  • The PDF could lack the ancestors' lines.
  • The zoom buttons in the bottom left were shown as four empty boxes.
  • With the generation filter turned off, the sliders' values were still used, so the tree could show up to 10 generations. A turned-off filter now shows 3 generations up and down.
  • The network didn't update when an event was saved, linked, or deleted from the person dialog. Relationship changes in a panel on top didn't redraw the tree either.
  • Letters outside Western European alphabets, for example ł and Cyrillic letters, were shown incorrectly in the PDF export.

Media

  • Tagging a person in the media dialog didn't work.
  • The tooltip for "Add media" in compact media galleries showed a technical key name.
  • TIFF images with the .tif extension couldn't be uploaded, even though the manual said TIFF was supported.
  • A file larger than 50 MB disappeared from the upload without any message. Now a message with the file name and the maximum allowed size is shown. The same goes for file types that aren't allowed. The limit is now also checked by the server.
  • The upload showed "file(s) uploaded" even when the upload failed.
  • If you added files to the upload in several rounds, only the last round was uploaded, and a file you had removed from the list was uploaded anyway.
  • A PDF or another file that wasn't an image could be set as a profile picture and was then shown as a broken image in lists and in the family tree.
  • The media library's heading showed the number of files on the current page instead of the total.
  • Documents were shown as broken images in the dialog for linking existing media.
  • The sources' dialog for linking media could show an outdated list where recently uploaded files were missing.
  • Upload error messages sometimes showed technical text in English instead of the same messages as in the rest of the app.
  • The message "Person tagged" was shown even when the person was already tagged in the file.

Blog

  • The search field in the blog's media picker did nothing, only the 50 most recent images were shown, and images without a title had no name.
  • The blog's media picker showed all file types even though only images could be inserted.

Source citations

  • If a source citation's attachment wasn't an image, a broken image was shown in the list of citations.

Events

  • In "Add person", the persons' dates were always shown with Swedish abbreviations and with a full date even when only the year was known.
  • Changed participants weren't saved when an existing event was edited in the event dialog.
  • A person chosen in "Select person" but not added with Add person was silently lost when the event was saved. It's now added.
  • Sorting in the events list only applied to the page being shown: "Oldest first" showed the 50 newest in reverse order.
  • Going from the events list to an event and back, with a search active, landed on page 1 instead of the page you were on.
  • A place's Events tab only showed the first 25 events, and the person page showed at most 50 of the person's events.
  • The events list, the timeline, and the welcome page shared the same list, so whichever loaded last overwrote the others. The welcome page could therefore show the number of events in a filtered search.
  • The timeline's By year mode didn't show events without a date.
  • Filtering by person showed an event twice if the person had two roles in it.
  • The events list in the place dialog showed neither persons nor a heading for events without a title of their own.
  • The Delete button in the event dialog on the place page did nothing.
  • The delete confirmation showed an empty name for events without a title.
  • Two green messages were shown when an event was saved from the person, place, or event page, and when a person was removed from an event.

Dates and times

  • Seven different views in the app each had their own way of deciding whether to show dates in Swedish or English — in one of them (Maintenance → Clean up media) the date was always shown in Swedish regardless of language setting. Now works consistently everywhere.

Language

  • Several texts were shown in Swedish even when the app was set to English: the validation messages for relationships and events, the validation summary, the family tree's PDF export, and the place picker's default text.
  • A button could show "Uppdatera" in the English interface.

Import

  • GEDCOM import: marriage and divorce dates given with only a year (or year and month) were shown as January 1. The precision is now kept on import.
  • TNG import: divorced and cohabiting couples got relationship types the program doesn't recognize, so they couldn't be shown or chosen when editing. New imports get the correct type, and relationships already imported are fixed under Maintenance → Relationships.
  • The import dialog got stuck when an import failed and couldn't be closed. The error is now shown and the dialog can be closed.
  • TNG import: the profile picture was linked to the person incorrectly.

Backups

  • Backups could lack the latest changes if the app was running.
  • Restoring a backup could, in rare cases, damage the database.
  • The message after a restore said "Restart the server".

Security

  • Web pages open in the browser could, in theory, read data from PastPaths while the app was running.

Installer

  • An upgrade from an older version could result in two entries for PastPaths under Installed apps.
  • The English installer showed an old version of the privacy policy.

[1.8.0] - [2026-09-20]

Added

Persons

  • The merge dialog now shows profile photos side by side (if either person has one), the same way media already did — easier to tell whether two records really are the same person.

Media

  • New "Missing thumbnails" tab under Maintenance → Clean up media: finds image media without a generated thumbnail (common for older GEDCOM and WordPress imports) and generates them retroactively.

Place Library

  • The library now shows which packs you have already imported, with the date it happened, and the button reads "Import again" instead of "Import". Undone imports don't count — the pack can then be fetched again as though it had never been imported.
  • Packs now carry a version number. If a pack has been released in a newer version since you imported it, the list says so and the button reads "Update". An update brings in the places added to the pack, but never overwrites details you already have.

Fixed

General

  • Merging a pair in the automatic duplicate list (Persons, Places, Media, Events) used to re-run the entire duplicate search from scratch for every merge — extremely slow on large libraries. Merged pairs are now removed directly from the list instead.

Events

  • The "Place" field label in the merge dialog showed a broken text key instead of the word "Place".

Media

  • Media files without a generated thumbnail (e.g. imported via GEDCOM or WordPress) showed a generic icon in the duplicate and merge views instead of the actual image. Now falls back to showing the original image.
  • GEDCOM and WordPress imports now generate a thumbnail for imported images, just like manual uploads already did. Doesn't apply to previously imported media — see "Missing thumbnails" above to fix that retroactively.

Places

  • Filtering the places list by place type, tag, category, or missing coordinates used to just show the country list instead of a results list — now works as expected, the same way a free-text search does. The country filter (dropdown) now likewise shows a flat list across the whole country instead of just expanding a node in the hierarchy.
  • The "Sort by" setting on the places list had no effect, since only the now-removed table view used it — now sorts the new list view.
  • Places that represent a level of their own in the place hierarchy — provinces, dioceses and counties with no county field — appeared a second time inside the "Unknown county" group even though they already had a row of their own. The count next to "Unknown county" and the contents when the group was expanded could therefore disagree.
  • Places imported from the Place Library didn't appear in the places list until the app was restarted.
  • Places created by a GEDCOM import didn't appear either, if the import dialog was closed with the X instead of the Done button.
  • Undoing an import left the deleted places in the places list until the app was restarted, where they produced server errors when clicked.

Changed

Media, events and blog posts

  • The same kind of database indexes as for the person list have been added for the media, event and blog post lists, so sorting/pagination is faster there too on large libraries.

Media

  • The media tagging dialog's person and place pickers used to fetch the entire person/place register every time the dialog opened. Now searches directly against the server instead, like other search fields in the app.

Persons

  • Sorting and pagination in the person list are now faster on large family trees — the database has new indexes matching the four sort orders (last name, first name, birth date, death date). Free-text search itself isn't sped up by this.

Places

  • The places list now loads faster on large libraries — the list request avoids unnecessary per-place database queries, and the list no longer reloads every time you revisit the page within the same session.
  • The table view on the places list has been removed and replaced with a row-based list showing the same information (address, coordinates, etc.) — less cluttered, especially with many places.

[1.7.0] - [2026-09-13]

Added

General

  • New About page (available from the menu) showing the app's current version, a support email address, and a link to the manual at pastpaths.se.

Administration

  • The Place Library has its own tab ("Library"), structured to accommodate more pack types in the future.

Persons

  • Search now also matches the names of linked tags and categories.

Events

  • Search now also matches the names of linked persons, places, tags, and categories — fixes, among other things, that imported events without their own title couldn't be found.

Media

  • The media library now has page-based pagination (choose items per page, browse page by page) instead of loading everything at once.
  • Search now also matches the names of linked tags and categories.

Place Library

  • Three new packs: Provinces of Sweden (25 places), Dioceses of Sweden (30 places), and Ports and routes of the Swedish emigration (31 places).
  • Packs now come in a Swedish and an English version, written in the respective language. The library only shows the packs in your language.
  • Packs carry citations. On import, the sources are created as real sources and every place gets a citation pointing to its source.
  • A place that already exists in the database now has its empty fields filled in from the pack and is marked with the pack's tag, instead of being skipped entirely. Filled-in values are never overwritten.
  • Packs can carry address, city, tags, and categories per place.
  • Sweden's historical counties has been completed with the seats for Småland County (Kronoberg Castle) and for the City of Stockholm (the Tessin Palace).

Places

  • New place type: Diocese.
  • Provinces and dioceses now appear as rows of their own at the county level in the place hierarchy, instead of ending up under "Unknown county".

Import & Export

  • The GEDCOM export now writes place coordinates in standard form (MAP/LATI/LONG under PLAC). Previously coordinates weren't carried over at all.
  • The GEDCOM export writes PastPaths' own subtags under PLAC, preserving address, city, parish, county, region, country, place type, and description separately. Other programs ignore them; PastPaths reads them back exactly on re-import.
  • PastPaths recognises its own export files on import and shows "PastPaths" as the source program in the import log.
  • Undoing an import now also removes the sources and citations the import created. Sources that have picked up other citations in the meantime are left alone.
  • A note on the GEDCOM export explains that citations on places can't be carried over in the format.

Changed

Administration

  • The Place Library has moved from the Import & Export tab to its own Library tab.

Tags

  • Every automatically generated tag now starts with a hyphen — -gedcom-import-…, -ancestry-import-…, -wordpress-import-…, -seed-… — so they sort to the top of the tag list alongside the system tags. Existing tags aren't renamed; that should happen deliberately, through merging.

Places

  • Places you create or edit in the form now have their source text (raw_text) worked out by the server. Previously, manually entered places had no source text at all, which meant they could never match an imported place during duplicate detection or a place library import.

Import & Export

  • The "places added" counter now counts only newly created places. Previously it also counted places that already existed, giving a number that looked like import but was reuse.

Persons

  • The persons list is now fetched page by page directly from the server (all filters included), instead of fetching every person at once and filtering in the browser — noticeably faster with large family trees.
  • The list view's pagination now uses the same style as the sources list; the card view's pagination has been redesigned into a narrower, arrow-based style without page numbers.

Media

  • The tag filter (a multi-select list) has been replaced by typing the tag name directly into the search box — the old list wasn't searchable once you had many tags, only "jump to letter."

Blog

  • Pagination has been redesigned into the same narrow, arrow-based style used by persons and media.

Fixed

Persons

  • The persons list's pagination could render hundreds of unusable page-number buttons with large family trees, instead of a manageable page navigation.

Events

  • Search, as well as the tag and category filters, on the events list only searched among the events already fetched for the current page, not the whole register — giving incomplete search results as soon as there was more than one page of events.

About

  • The packaged app (.exe) could show "Version unknown" on the About page instead of the actual version number.

General

  • On the very first start against an empty database, several simultaneous API calls could each try to create the default user, with all but one failing with a server error. Affected every new installation.
  • Long texts in the GEDCOM export were only split at line breaks, never at the format's 255-character line limit. This also affected source publication details and citation text.
  • Multi-line place descriptions were cut off at the first line break when a PastPaths export was read back.
  • The place form never sent any source text, leaving manually entered places invisible to all matching.

Removed

Events

  • The card view on the events list has been removed — only the list view remains, which already has pagination, search, and filtering.

[1.6.0] - 2026-09-06

Fixed

Places

  • Undoing a GEDCOM import never removed places created by the import, because they were never recorded in the import history in the first place. New places are now tracked correctly and removed on undo, just like persons, events, media, and sources already were.
  • Undoing an import could, in rare cases, delete person-less events that had nothing to do with the import being undone, because the check covered every event on the whole account instead of just the ones orphaned by that specific undo. Now scoped to the correct import.
  • In the place hierarchy, a place that had its own information and places underneath it (e.g. a historical county with a county seat) could no longer be opened directly — only expanded. Opening and expanding now work independently of each other.
  • The count shown next to an expandable row included the place itself, so the number you found after expanding didn't match what the row said. Now shows only the count actually found underneath.
  • Certain place types (e.g. historical buildings) were incorrectly nested under an extra "unknown parish" level in the place hierarchy instead of being shown directly, because only a handful of place types were recognized as able to "stand on their own" in the tree.
  • A place whose only searchable name was in the parish field wasn't found by place search, because that field was mistakenly left out of the search (name, city, county, region, country, and address were searched — not parish). Now included.
  • Duplicate detection for places sometimes missed obvious duplicates when the same real-world place had landed in different fields between the two records (e.g. county on one, parish on the other) after a re-import with a differently structured source string. The comparison now recognizes that regardless of which field the value happens to be in.
  • The page jumped to the top every time a step in the place hierarchy was expanded or collapsed, instead of staying where you clicked.

Added

Places

  • The Place Library has a second pack: "Sweden's historical counties" — counties that have been merged, renamed, or dissolved since the 1600s (Kristianstad County, Malmöhus County, Gothenburg and Bohus County, Älvsborg County, Skaraborg County, Kopparberg County, and others), with their county seats and a description of when each county was active. Useful when researching church records and other sources that reference the older county divisions.

Changed

Places

  • The "Counties of Sweden" pack now also includes each county's county seat as its own searchable place, not just the county itself.
  • Further refinement of place browsing: the innermost level (parish) now shows the actual places as individual rows to choose between, instead of either jumping straight to a single match or showing an arrow that led nowhere.
  • The "open" icon for a place in the place hierarchy now sits next to the name instead of on the far right, clearer on wide screens. The expand/collapse arrow has moved down in line with the place count, separate from the open icon.
  • The Place Library dialog now has a clear close button.

Import and export

  • The import history now shows which Place Library pack an import came from (the "Pack name" column), not just the filename.

Removed

Places

  • The card/list view toggle on the Places page has been removed — hierarchy browsing now covers that need, and the innermost level (parish) shows the actual places as individual rows to choose between.

[1.5.0] - 2026-09-04

Added

Places

  • New Place Library: import ready-made packs of reference places (counties, states, parishes, etc.) instead of typing them in by hand — accessible via Administration → Import & Export → Place Library. Gives you a shared, consistently spelled foundation to build on, so the same real-world place doesn't end up as several different entries depending on how it was typed at the time. Requires an internet connection for the import itself (the pack list and pack files are fetched from pastpaths.se) — the rest of the app is unaffected and works offline as usual. First pack: the 21 counties of Sweden.
  • Place Library imports can be undone just like a GEDCOM import, via the same import history. Places you've already linked to a person or event are never removed automatically during an undo.
  • Place browsing (the Places page) now shows country/region/county/parish as an inline, expandable list (one branch at a time) instead of replacing the whole view on each click. A place whose own type matches a level in the hierarchy (e.g. an imported county) is now shown directly at the right level, with a shortcut to open the place directly.

[1.4.0] - 2026-08-30

Added

Events

  • New event type: "Adult baptism" — distinct from regular baptism (infant christening), since a person can have undergone both. Fully supported in forms, GEDCOM export (BAPM), and GEDCOM import.

Sources

  • Citations can now be added to blog posts, places, and events (previously only persons) — same interface (add, edit, delete, link to an existing or new source) across all four.
  • Citations can now be copied and reused on another person, event, or place, without filling in everything again.

Persons

  • A person's profile picture can now be linked from media already in the library, not just uploaded directly — the same "link existing" flow already used for events.

Maintenance

  • New Maintenance section: "Unused media" — finds media items no longer linked to any person, place, source, event, or citation, so they can be deleted intentionally.
  • New "Ignored" tab in the duplicate views (person, place, event, media) — browse and undo previous "not duplicate" markings at any time, instead of only having 5 seconds right after marking.

Blog

  • The blog list view now shows an "edited" indicator on posts modified after creation.
  • Ability to delete a blog series — posts in the series are unlinked (not deleted).
  • The blog list can now be filtered by series.

Search

  • Global search now has a type filter — choose which categories (persons, places, events, sources, blog posts) to search.

Changed

GEDCOM export

  • GEDCOM export now follows the standard more closely in several places: occupation, education, and residence now write their description in the correct place in the file (previously exported without any text); nicknames and alternate names are now included; media file descriptions are now included; genders outside male/female are now preserved as a note instead of being silently dropped on export.

Media

  • The media association tables (event-media, source-media, media-person, media-place) now track a last-modified timestamp, matching how person associations already worked — groundwork for future source/research tracking.
  • Profile pictures are now regular media: they appear in the media library, can be reused elsewhere, and are handled consistently during person merges and GEDCOM export/import — instead of a separate, hidden image system used only for profile pictures.
  • Deleting media is now blocked if it's still linked to a person, place, source, event, or citation — the links must be actively removed first. Protects against accidentally losing old, hard-to-replace photos.

Fixed

GEDCOM export

  • A place with only a name filled in (no other address fields) was previously exported as a broken line ("PLAC None") in the GEDCOM file.
  • Military service was previously exported with a non-standard tag (_MILI) that PastPaths' own import didn't recognize — exporting and reimporting the same data didn't round-trip correctly. Now exported as a generic event with clear classification, following accepted practice for event types without their own GEDCOM tag.
  • Event types without their own GEDCOM tag (military service, visit, other) wrote their classification lowercase in the export file (e.g. "military"). Now written with an initial capital ("Military"), following English GEDCOM convention.

Sources

  • Creating a new source directly from within the citation dialog (the plus button) didn't automatically select the new source — you had to find it in the list yourself, otherwise the citation was never saved, with no clear error message. The new source is now selected automatically.
  • Citations linked to places didn't appear on the place page, even though they were saved correctly — the place's API response was built through a separate, outdated serialization schema that was missing the citations field. Fixed.

Blog

  • WordPress import previously saved the publish date (and media upload date) in the wrong timezone unless the export source specified UTC time — could be off by up to two hours. Import now uses WordPress export's UTC field instead.
  • Saving a blog post with a URL slug already used by another post previously caused a server error. Now automatically picks a unique slug, same as when creating new posts.

Persons

  • Editing a person could previously show an incorrect/incomplete entry in the person list until the page was reloaded, due to an incorrect data type in the frontend code.
  • Uploading a new image directly through the profile picture field while editing a person saved the image to the media library but never actually set it as the profile picture — only "Link existing" did. Now works for uploads too.
  • Non-square profile pictures were stretched out of proportion instead of being cropped, in several places (edit person, person list, family tree, the "persons without connections" list).

Media

  • Removing an image from a person previously deleted the entire media item permanently (from the whole library), instead of just unlinking it from that person — now just unlinks, matching how places, events, and sources already worked. The media tab also now updates immediately without needing a page reload.
  • Deleting media could in some cases leave behind a broken record (file removed from disk, but the database entry still present) if deletion failed after the file had already been removed. The file is now never touched until the database record has actually been deleted.
  • Image URLs were hardcoded to a fixed local address in several places (person list, person cards, media gallery, a person's main photo, the blog editor, the blog list view, the account page, the family tree, citations, and the "persons without connections" list) instead of using the app's actual base address, which could produce broken image links depending on how the app was run. Fixed consistently everywhere.
  • Thumbnails appeared as broken links in the media gallery and person list, regardless of how the app was run — a backend route had accidentally been assigned the wrong web address. Full-size images on detail and media pages were unaffected.

Places

  • Place statistics with details, and the "Migration patterns" card on the place page, could crash with an internal error due to a broken code reference in the backend. Fixed.

Tags and categories

  • Creating a brand-new tag (instead of selecting an existing one) while linking tags to an event caused a server error with no clear message, and was never saved. Fixed.
  • Database errors when linking or removing tags and categories on events, persons, places, and media — as well as when creating, updating, deleting, or merging tags and categories themselves — previously produced a broken, unformatted page instead of a clear error message. Fixed.
  • Creating a new tag in Admin → Taxonomy didn't show up in the list until switching tabs or reloading the page (categories already worked correctly there). Now updates immediately.
  • The main navigation menu would disappear when scrolling down a page taller than the window — you had to scroll back up to find it again. The menu now stays visible regardless of scroll position.
  • An invalid or misspelled tab parameter in the URL (e.g. via a shared link) could previously still set a tab that doesn't exist on the Admin page, due to duplicated code that bypassed validation. Fixed.

Language support (messages now respect selected language)

  • Auto-generated event titles (e.g. "X born", "X died", marriage/baptism/other GEDCOM-imported events) and date text ("Unknown date", "Around...", "Before...", "After...") previously stayed in Swedish regardless of the selected interface language, since they were saved or built as finished text in the backend, or rendered directly from the server response instead of through the app's translation system. Now correctly follows the selected language. Affects, among others, the person page's places tab, event lists, the calendar, the timeline, the blog editor, and events' duplicate view and merge dialog. Existing events with old Swedish title/date text are not corrected retroactively.
  • Place notifications (create, update, delete, duplicate handling) now respect the selected language instead of always showing Swedish text.
  • Error and confirmation messages for import, export, undoing an import, deleting import logs, and restoring a backup now respect the selected language, instead of either always showing Swedish text or a blank/generic error. "Undo import" also now shows the correct reason if the import was already undone or no longer exists, instead of the same generic message in both cases. Restoring a backup now shows the specific problem (e.g. wrong file type or invalid backup file) instead of a generic error.
  • Events: error and confirmation messages (create, update, delete, duplicate handling, person/media links, tags) now respect the selected language.
  • Persons: error and confirmation messages (create, update, delete, duplicate handling, image upload, profile picture, birth/death place, review flagging, tags) now respect the selected language — the person page wasn't previously connected to the translation system for these messages at all.
  • Blog: error and confirmation messages (fetching, creating, updating, and deleting posts, creating series, WordPress import) now respect the selected language.
  • Sources: the error message shown when the source list fails to load now respects the selected language.
  • Tags and categories: error messages for failed fetches (categories, category tree, tags) now respect the selected language.
  • Media: error and confirmation messages (viewing, uploading, updating, deleting, duplicate handling, and person/place/source links) now respect the selected language — several previously showed raw, technical English error text straight from the server instead of a readable, translated message.

[1.3.0] - 2026-08-01

Added

  • New event type: "Visit"
  • The place page now shows actual persons born or deceased at the place (the feature existed in the UI before but never displayed anything)

Calendar on the welcome page

  • The welcome page now shows today's birthdays and other life events (deaths, marriages, etc.) that fall on today's date, regardless of year — grouped by type, with the names of the persons involved
  • Persons born on a leap day (February 29) are shown on March 1 in other years, with a clear note explaining why

Calendar page

  • New calendar page (accessed via a link from the "Today" card on the welcome page, not in the main menu) — browse between months and see which events and birthdays fall on a given day, regardless of year
  • Statistics on the calendar page: most common days overall and by event type, with color and icon coding per type

Person statistics

  • New person statistics page, linked from a summary card on the welcome page — most common surnames and first names (split by gender, filterable by birth decade), gender distribution, relationship counts by type and subtype, most common birth and death places, children per family, partner status, and lifespan/birth-decade statistics for deceased persons
  • The persons list can now be filtered directly to persons missing a registered birthplace or place of death, linked from the corresponding statistics card, making it easy to find and correct incomplete records

Tags and categories

  • Tags and categories can now be added directly in the form when creating or editing a person or event — not just afterwards via the pencil icon on the detail page

Places

  • New hierarchical navigation for the places list (country → county → parish/city) replaces the previous flat list — much easier to find your way around a large number of places
  • New place statistics page, linked from a summary card on the welcome page — most common countries/counties/parishes, places with the most connected persons or events, most common place types, places missing coordinates, most common cemeteries, oldest and most recent recorded event, and most common emigration/immigration places
  • Place detail page: filter connected persons by century (e.g. "who lived here in the 1930s")
  • Place detail page: new "Migration patterns" card shows where people came from and moved on to
  • The Media tab on the place detail page now has card/list view switching, just like the Media page
  • New setting under Account: default country, suggested automatically when adding a new place
  • Country, county, parish, and city in the place form now suggest existing values in a dropdown, while still allowing new values to be typed in
  • New "Region" field and an optional fourth hierarchy level in the places list, for countries that need it (e.g. Belgium, USA, Germany) — only shown when actually used, doesn't appear at all for Swedish places
  • GEDCOM import's place parsing now recognizes and separates a region level for countries that normally have one

Changed

  • Unified data model for all place connections (residence, occupation, education, marriage, visits, etc.) — everything is now handled consistently as events, which fixes several related issues:
  • Duplicate or inconsistent place connections in some views
  • The "Persons" tab on place pages could show the wrong count or appear empty
  • The per-type statistics breakdown on place pages now shows accurate categories
  • GEDCOM import's place parsing now checks whether the last comma-separated part is actually a recognized country name before assuming it's the country — prevents county or parish names ending up in the country field for sources that don't specify a country at all (common in Swedish parish register exports, e.g. "Estuna, Stockholms län")
  • The place detail page's Events tab now shows connected persons directly in the list, in the same style as the Events page — no more extra click per event needed to see who it involves
  • Icons now show in the place-type dropdown (form and filter), not just text

Fixed

  • The person edit dialog sometimes retained unsaved changes after clicking Cancel and reopening the same person
  • The event-type filter on a place's Events tab could appear empty even when events existed
  • An undefined function (parse_partial_date) in persons.py flagged by Pylance — replaced with the existing _parse_date_with_precision. Didn't affect actual behavior (the code path was never reached in practice), but was a landmine for future changes.
  • The gender filter on the persons list had no option for persons without a registered gender, making them impossible to find via the filter
  • The place detail page's "Persons" tab could show the wrong count of connected persons and couldn't be filtered correctly by century
  • The statistics card on the place detail page showed a misleading combined "Residence" count that mixed arrivals and departures
  • Creating a new place never saved a filled-in parish — only worked when editing an existing place
  • MediaPerson and MediaPlace were missing the UTC marker (Z) on timestamps, unlike the other association tables — could cause up to a two-hour display error during daylight saving time

[1.2.0] - 2026-07-24

Added

GEDCOM import

  • REPO records now resolve to the archive's real name in sources, instead of the raw pointer string
  • The standard WWW tag now sets the source's URL
  • EVEN, MARB, and FAM-level NOTE are now imported as events
  • TNG's ADDR move records are now imported as residence events
  • FACT, _MDCL (medical), and _MILT (military) are now imported
  • SPFX (surname prefix) is now combined with the surname
  • Structured address linked to a specific event is now added to that event's notes
  • Standalone NOTE records (common in Gramps exports) are now resolved correctly instead of showing a raw pointer string
  • Coordinates on an event's place are now saved on the place
  • Citation retrieval dates are now saved
  • TNG's _LIVING now mirrors TNG's own rule for living/deceased
  • DEAT Y (known deceased, no date) now marks the person as deceased
  • GPS coordinates are now read automatically — both the standard format's MAP/LATI/LONG tags and TNG's central place register (_PLAC)
  • TNG's entire place register is now imported as real, searchable places, regardless of whether any person or event in the file actually references the place
  • TNG import: persons marked as Living (_LIVING Y) but who, based on birth date, would be older than 110 years are now automatically tagged -Utred hög ålder for manual review. The source's living/deceased value is not changed automatically.

Sources and relationships

  • Sources: new fields for repository contact details and call number
  • Relationships: new "Other relationship" type (associated) with subtypes Godparent, Witness, and Other — for baptism witnesses, godparents, and other important relationships that aren't family ties. Can be added and edited manually via the relationship dialog.

Person and person detail

  • Person: new fields for nickname and alternate names
  • The Sources tab now shows a combined list of all sources linked to the person (direct, via events, and via relationships)
  • The Places tab now shows places from the person's events, not just manual place links
  • New "Biography" tab shows biography and notes in the wide column with rich text formatting (bold, italic, lists), same editor component used in the blog
  • Name and tabs stay fixed at the top while scrolling (sticky header)

Merging and maintenance

  • Duplicate merging for categories, tags, and sources
  • Maintenance: find persons with no family connections, with options to review, flag for follow-up, or delete
  • Maintenance: find and clean up orphaned media files left on disk after merges or interrupted imports

Blog and events

  • Blog: new list view (table) with title, type, status, date, and categories, alongside the existing card view
  • Events: searchable person filter in the events list — finds events linked to a specific person across the whole database, not just the current page

Other

  • Welcome page with summary of content

Changed

Merging

  • Tagging persons for further investigation when merging
  • Commenting the merge
  • Compare parents, siblings, partners, and children (grouped by partner) before merging persons
  • Save diverging information as category Merged and deleted information as tags
  • The person duplicates list (automatic search) can now be sorted alphabetically, in addition to by score
  • The manual search tab for person merging now shows results in alphabetical order

Media

  • Uploaded media files now keep their original name in the on-disk filename, instead of just a random hash
  • Orphaned media files now show an image preview in the list, not just the filename

Lists and filters

  • List view is now the default on Places, Media, and Events (previously card/grid view); Persons already had this
  • The events list now shows the names of linked persons directly (up to 5, then "+X more") instead of just a count — easier to tell apart, e.g., multiple deaths in the list
  • The events filter row has been regrouped: general filters (search, type, person, sort, view) separated from the date range, which now has a clear, always-visible format hint (YYYY-MM-DD)
  • The Maintenance page now links directly to Sources and Taxonomy, with a short description of how merging works there

Look and navigation

  • Consistent avatar size (40/20 px) in the left edge of list rows, started on Events
  • Person detail: clearer tab overflow arrows when tabs don't fit, with color and text for better accessibility
  • Sticky header (title/name + any tabs) is now used on all list and detail pages, not just Persons

Fixed

GEDCOM import

  • REPO and SUBM records leaked into the previous record in the file
  • Several notes-related bugs shared the same root cause: CHAN (last changed) could pollute generic notes/date/place fields, a citation's own notes could leak into the event's notes, and an event's NOTE text was dropped if the event also had its own value. All of these are now fixed.
  • The note text on a RESI (residence) entry was never imported. Now added as the event's description.
  • A citation's own retrieval date (DATA/DATE within a source citation) could previously overwrite the event's own date by mistake. These are now kept separate.
  • Marriage and divorce (MARR/DIV on the family record) were never imported as events, and the dates were never set on the partner relationship. Now imported correctly and shown for both spouses.
  • Adoption and foster pedigree (the PEDI tag) was never read — all parent–child relationships were set to "Biological" regardless of what the file specified. The correct subtype (adoptive/foster/step) is now applied.
  • Media could previously be linked to the wrong event if a person had several events of the same type (e.g. two census records). Now linked to the exact correct event.
  • Places with the same name but different parish or county (e.g. after a historical parish reorganization) could previously be linked to the wrong place during import. Matching is now based only on the exact place text, never on the name alone.
  • Places with no specified country (e.g. "North America") previously defaulted to "Sweden". Now saved without a country if the file doesn't specify one.
  • Repeated events of the same type (e.g. multiple residences, census records, or occupations for the same person) previously overwrote each other — only the last entry was kept. Every occurrence is now imported separately.
  • Media files referenced via standard OBJE/FILE entries (e.g. TNG exports without _PHOTO tags) weren't found if organized into a subfolder the user created — the search only looked directly in the folder containing the .ged file. The search is now recursive across all subfolders.
  • NOTE text (including multi-line NOTE/CONT/CONC) on media objects (OBJE) is now copied into the media's description field. Previously only the title (TITL) was imported.

Person detail and relationships

  • Clicking a source in the Sources tab navigated away to the admin page with no way back — now opens in a dialog instead
  • Relationship subtype (Biological/Adoptive/Foster/Guardian) was shown for partners and siblings but missing for parents and children
  • Edit relationship showed no existing values when editing — type, person, dates, and notes were always blank

Merging

  • Merging persons in automatic search re-scanned the entire list after every merge — unnecessarily slow on large GEDCOM imports. The list now updates locally instead.
  • Notes and biography were shown truncated to 50 characters with no way to see the rest. Now shown in full in a scrollable box.

Events and navigation

  • Filters, page, search, and sorting were reset when opening an event and navigating back to the list — now preserved via the URL, so navigating back returns to the same filtered view
  • Navigating back from the error state and after deleting an event always went to the unfiltered list instead of respecting browser history — now consistent

Other

  • The "Go to tab" links for Sources and Taxonomy on the Maintenance page led nowhere
  • Logging in the packaged .exe didn't correctly emit INFO-level logs, making log-file-based troubleshooting unreliable
  • overflow-x: hidden on several global elements (body, .q-page-container, .q-page, .q-layout) changed to overflow-x: clip — was blocking position: sticky app-wide
  • The tab-badge count was clipped at the top edge on the Place, Event, and Media detail pages (Quasar's internal overflow handling in q-tabs)
  • The Tag media dialog showed raw i18n key paths (e.g. "PERSONS.DETAILPAGE.TABPERSONS") instead of tab labels
  • The category selector (tags and categories) showed hardcoded English text ("Categories", "Select one or more categories") instead of the existing sv/en translations

[1.1.0] – 2026-07-11

Added

  • English as an interface language (full i18n of the UI)
  • Central administration page that gathers maintenance functions
  • Duplicate merging for media, places, and events
  • Parish as a field in the place description
  • Default profile pictures for persons without their own
  • Features in the admin section that were missing per the documentation

Changed

Family tree

  • Rebuilt from the ground up; the tree now displays more logically
  • Arrow-based partner switching
  • Smarter choices when merging persons

Other

  • Better column pinning in the persons list
  • Better handling of deceased persons without a date of death
  • Better map handling; coordinates are used more actively in display
  • Years down to 0 can now be entered for birth and death

Fixed

  • Date handling UTC → local time
  • Image metadata on import from WordPress
  • Various bug fixes in media
  • Bug fixes in GEDCOM import
  • Bug fixes in merging persons
  • Bug fixes in the timeline

[1.0.1] – 2026-05-12

Fixed

  • Tags and categories are now clickable to the overview page
  • Import history for WordPress implemented; images in the blog editor restored; automatic tagging of imports works again

Changed

  • Reverted to Alembic for handling database updates and migrations
  • Tabs are now used instead of popups on the media, event, and place pages

[1.0.0] – 2026-04-25

Fixed

  • Errors in the family-based tree layout
  • Profile picture now displays correctly in the family tree
  • Editing a person directly from the family tree works again

Changed

  • Overall improved layout in the family tree
  • Installation format changed from zip to .exe for easier download

Added (0.9.0 → 1.0.0, full feature list)

Core features

  • Persons – add, edit, and remove persons with name, gender, birth data, death data, biography, and notes
  • Events – register life events (birth, baptism, marriage, death, etc.) with date, place, participants, media, and sources
  • Places – manage places with coordinates, type, address, and description; link to events and persons
  • Media – upload images and documents; link a file to multiple persons, events, and places
  • Sources – document where information comes from
  • Relationships – parenthood, marriage, and siblings; indirect relationships (cousin, grandmother's sister, etc.) are calculated automatically

Views and visualizations

  • Family tree – interactive view with descendant and ancestor views, generation filter, and partner switching
  • Map – Leaflet/OpenStreetMap with all places; click for details
  • Timeline – events visualized chronologically
  • Blog – write longer stories with a rich text editor and image insertion
  • Reports – ancestor chart, descendant chart, family group sheet, source list, and person profile with PDF export

Import and export

  • GEDCOM import (generic, Ancestry, MyHeritage, TNG)
  • WordPress import (blog posts and media)
  • GEDCOM export
  • Undo import – removes all entities from a specific import
  • Automatic tagging on import: {prefix}-import-YYYY-MM-DD

Other

  • Duplicate handling with automatic identification
  • Global tag and category system linked to all entity types
  • Local SQLite database in %LOCALAPPDATA%\PastPaths\
  • Automatic DB migration on startup via Alembic
  • Rotating log file (pastpaths.log, 5 MB, 3 backup copies)
  • Automated build script (build.ps1): Quasar → PyInstaller → Inno Setup
  • EULA and privacy policy in the installer
  • Complete Swedish user manual on pastpaths.se

[0.9.0] – 2026-04-22

First beta version for external testing.

Added

  • Complete person registry with relationships and events
  • Place management with coordinates and map display
  • Media library for images and documents
  • GEDCOM import and export
  • Duplicate handling with automatic identification
  • Source management and citations
  • Family tree view
  • Timeline for events
  • 10 different color themes

[0.8.5] – 2026-04-15 (internal testing)

Changed

  • Optimized database queries for better performance
  • Improved date handling with precision (year/month/day)

Fixed

  • GEDCOM import now handles media tags correctly
  • Fixed an issue with the place picker in forms

[0.8.0] – 2026-04-08 (internal testing)

Added

  • Desktop packaging with PyInstaller
  • Autostart on system startup (optional)

Changed

  • Redesigned login and registration pages

Fixed

  • Resolved an issue with SQLAlchemy cascade during import undo