Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@

## Unreleased

## 3.4.13 - 2026-11-10

- Review unsafe project roots and report unreadable project paths before copying.
- Add optional, reported exclusions for project entries named `node_modules`
and `.venv`. Show nested roots and merge equivalent WSL UNC aliases.
- Recognize junctions and WSL links, preserve readable file data when metadata
copying is unsupported, and retry short Windows file locks.
- Keep Codex-managed installer packages local through backup and restore.

## 3.4.12 - 2026-11-09

- Fix Windows backup preview and copying when a project contains a reserved device
Expand Down
2 changes: 1 addition & 1 deletion build.ps1
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[CmdletBinding()]
param(
[string]$Version = '3.4.12',
[string]$Version = '3.4.13',
[string]$PythonPath,
[switch]$SkipTests
)
Expand Down
24 changes: 12 additions & 12 deletions docs/RELEASE-CHECKLIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,31 @@

[Nederlands](nl/RELEASE-CHECKLIST.md)

This checklist publishes Codex Lifeboat 3.4.12 as a **stable release**. The tag
This checklist publishes Codex Lifeboat 3.4.13 as a **stable release**. The tag
workflow builds and validates fresh release assets, creates
their checksums and provenance attestations, and publishes the GitHub release.

## Before pushing

- Confirm that `git status --short` contains only intended 3.4.12 changes.
- Confirm that `git status --short` contains only intended 3.4.13 changes.
- Confirm that no real backup, database, token, `.env`, EXE, ZIP, or build
directory is staged.
- Keep the generated `dist` directory locally; `.gitignore` deliberately prevents
it from entering the repository.
- Do not create the `v3.4.12` tag until the `main` CI run is green.
- Do not create the `v3.4.13` tag until the `main` CI run is green.

## Publish with PowerShell

Run these commands from the repository directory:

```powershell
git switch -c dkw1/fix-issue-13
git switch -c dkw1/fix-issue-15
git add -u
git add -- docs/releases/v3.4.12.md docs/nl/releases/v3.4.12.md
git add -- docs/releases/v3.4.13.md docs/nl/releases/v3.4.13.md
git diff --cached --check
git commit -m "Fix Windows backup preview and copy edge cases"
git push -u origin dkw1/fix-issue-13
gh pr create --base main --head dkw1/fix-issue-13 --title "Fix Windows backup preview and copy edge cases" --body "Addresses issue #13."
git commit -m "Harden Windows and WSL project backups"
git push -u origin dkw1/fix-issue-15
gh pr create --base main --head dkw1/fix-issue-15 --title "Harden Windows and WSL project backups" --body "Addresses issue #15."
```

Merge the PR after its checks pass, then wait until the `main` CI run is green at
Expand All @@ -35,15 +35,15 @@ Merge the PR after its checks pass, then wait until the `main` CI run is green a
```powershell
git switch main
git pull --ff-only origin main
git tag -a v3.4.12 -m "Codex Lifeboat 3.4.12 stable release"
git push origin v3.4.12
git tag -a v3.4.13 -m "Codex Lifeboat 3.4.13 stable release"
git push origin v3.4.13
```

The tag triggers `.github/workflows/release.yml`. Do **not** also create a manual
release with the same tag: the workflow creates it as the stable latest release.
Follow it at
<https://github.com/dkwolf1/Codex-Lifeboat/actions/workflows/release.yml>, then
open <https://github.com/dkwolf1/Codex-Lifeboat/releases/tag/v3.4.12>.
open <https://github.com/dkwolf1/Codex-Lifeboat/releases/tag/v3.4.13>.

## Verify the published release

Expand All @@ -68,7 +68,7 @@ gh attestation verify .\Codex-Lifeboat-Windows-x64-Portable.zip --repo dkwolf1/C

## Stable-release evidence

The release workflow runs the 99-check source/EXE/ZIP gate, including 12 automated
The release workflow runs the 101-check source/EXE/ZIP gate, including 12 automated
Windows scenarios. A prior physical Windows 11 PC A → PC B → PC A workflow included
both verify operations and opening and continuing work in Codex after restore.
Windows 10 and USB-interruption coverage remain documented as pending. Public
Expand Down
24 changes: 12 additions & 12 deletions docs/nl/RELEASE-CHECKLIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,29 @@

[English](../RELEASE-CHECKLIST.md)

Deze checklist publiceert Codex Lifeboat 3.4.12 als **stabiele release**. De
Deze checklist publiceert Codex Lifeboat 3.4.13 als **stabiele release**. De
tag-workflow bouwt en controleert nieuwe releasebestanden, maakt de
checksums en herkomstverklaringen en publiceert de GitHub-release.

## Vóór het pushen

- Controleer dat `git status --short` alleen bedoelde 3.4.12-wijzigingen bevat.
- Controleer dat `git status --short` alleen bedoelde 3.4.13-wijzigingen bevat.
- Stage geen echte back-up, database, token, `.env`, EXE, ZIP of bouwmap.
- De lokale map `dist` hoort niet in Git en wordt bewust genegeerd.
- Maak tag `v3.4.12` pas nadat de CI-run van `main` groen is.
- Maak tag `v3.4.13` pas nadat de CI-run van `main` groen is.

## Publiceren met PowerShell

Voer in de repositorymap uit:

```powershell
git switch -c dkw1/fix-issue-13
git switch -c dkw1/fix-issue-15
git add -u
git add -- docs/releases/v3.4.12.md docs/nl/releases/v3.4.12.md
git add -- docs/releases/v3.4.13.md docs/nl/releases/v3.4.13.md
git diff --cached --check
git commit -m "Fix Windows backup preview and copy edge cases"
git push -u origin dkw1/fix-issue-13
gh pr create --base main --head dkw1/fix-issue-13 --title "Fix Windows backup preview and copy edge cases" --body "Addresses issue #13."
git commit -m "Harden Windows and WSL project backups"
git push -u origin dkw1/fix-issue-15
gh pr create --base main --head dkw1/fix-issue-15 --title "Harden Windows and WSL project backups" --body "Addresses issue #15."
```

Merge de pull request nadat de controles slagen. Wacht daarna tot de `main`-CI groen is op
Expand All @@ -33,15 +33,15 @@ Merge de pull request nadat de controles slagen. Wacht daarna tot de `main`-CI g
```powershell
git switch main
git pull --ff-only origin main
git tag -a v3.4.12 -m "Codex Lifeboat 3.4.12 stable release"
git push origin v3.4.12
git tag -a v3.4.13 -m "Codex Lifeboat 3.4.13 stable release"
git push origin v3.4.13
```

De tag start `.github/workflows/release.yml`. Maak niet daarnaast handmatig een
release met dezelfde tag: de workflow maakt deze als stabiele nieuwste release.
Volg de uitvoering op
<https://github.com/dkwolf1/Codex-Lifeboat/actions/workflows/release.yml> en open
daarna <https://github.com/dkwolf1/Codex-Lifeboat/releases/tag/v3.4.12>.
daarna <https://github.com/dkwolf1/Codex-Lifeboat/releases/tag/v3.4.13>.

## Gepubliceerde release controleren

Expand All @@ -64,7 +64,7 @@ Controleer na downloaden eventueel de GitHub-herkomstverklaring:
gh attestation verify .\Codex-Lifeboat-Windows-x64-Portable.zip --repo dkwolf1/Codex-Lifeboat
```

De releaseworkflow voert 99 bron-/EXE-/ZIP-controles uit, waaronder 12
De releaseworkflow voert 101 bron-/EXE-/ZIP-controles uit, waaronder 12
geautomatiseerde Windows-scenario's. Een eerdere fysieke Windows 11-route van
pc A naar pc B en terug bevatte
beide controles en verder werken in Codex na herstel. Windows 10 en USB-onderbreking
Expand Down
25 changes: 25 additions & 0 deletions docs/nl/releases/v3.4.13.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Codex Lifeboat 3.4.13 — projectback-ups op Windows en WSL

[English](../../releases/v3.4.13.md)

Deze update pakt de back-upfouten uit [issue #15](https://github.com/dkwolf1/Codex-Lifeboat/issues/15) aan.

- De voorvertoning markeert te brede roots en toont geneste projecten.
De twee WSL-UNC-schrijfwijzen voor hetzelfde pad worden samengevoegd.
Geneste projectroots blijven apart selecteerbaar.
- In de projectselectie kun je `node_modules` en `.venv` uitsluiten.
Het back-uprapport vermeldt de overgeslagen paden. De getoonde grootte
is een schatting vóór deze uitsluitingen.
- De leescontrole vindt geblokkeerde projectpaden vóór het kopiëren.
De gevonden problemen staan in `reports/project-read-errors.json`.
Je kunt een getroffen project uitsluiten en zijn gesprekken meenemen.
- Lifeboat slaat herkende symlinks en junctions over en meldt dat in het
rapport. Bij een WSL-leesfout kan het programma het bestandstype in de
distro controleren. Gewone bestanden die onleesbaar blijven blokkeren
de back-up.
- Korte Windows-locks worden opnieuw geprobeerd. Als alleen het kopiëren
van de bestandsbytes lukt na `EINVAL`, meldt het rapport dat metadata
kan afwijken.
- De Codex-installaties onder `packages/standalone` en
`packages/app-server-daemon` blijven lokaal. Andere items onder
`packages` blijven onderdeel van de back-up.
23 changes: 23 additions & 0 deletions docs/releases/v3.4.13.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Codex Lifeboat 3.4.13 — safer project backups on Windows and WSL

[Nederlands](../nl/releases/v3.4.13.md)

This update addresses the project backup failures in [issue #15](https://github.com/dkwolf1/Codex-Lifeboat/issues/15).

- The preview marks unsafe broad roots and shows when a project is nested
under another root. Equivalent WSL UNC spellings of the same root are copied
once. Separately registered nested roots remain selectable.
- The project selection screen offers opt-in exclusions for `node_modules`
and `.venv`. The backup report lists omitted entries. The size shown in
the preview is an estimate before these exclusions.
- The project preflight checks readability before copying payloads. When
required paths are blocked, `reports/project-read-errors.json` lists the
issues found. The selection screen allows users to exclude an affected
project while keeping its conversation history.
- Recognized symbolic links and junctions are reported and skipped. When a
WSL path fails to read, Lifeboat can ask the owning distro whether it is a
symbolic link. Regular files that remain unreadable block the backup.
- Copy operations retry short Windows locks. Where a byte copy succeeds
after `copy2` returns `EINVAL`, the report warns that metadata may differ.
- Codex's managed `packages/standalone` and `packages/app-server-daemon`
installations stay local. Other entries under `packages` remain portable.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "codex-lifeboat"
version = "3.4.12"
version = "3.4.13"
description = "One-click Codex backup, restore and Windows PC migration utility"
readme = "README.md"
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion src/codex_transfer/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "3.4.12"
__version__ = "3.4.13"
Loading
Loading