windowsweep 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -9,6 +9,42 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [1.3.2] - 2026-09-28
13
+
14
+ No change to what is cleaned, how it is decided, or what is refused: the engine is 1.3.1's, file for file.
15
+ The version moves so the desktop app and the engine it bundles keep one number, and `desktop-v1.3.2` fixes
16
+ the app's Google sign-in.
17
+
18
+ ### Changed
19
+
20
+ - **The version is 1.3.2, the desktop app's number.** The app bundles this engine and the two keep one number;
21
+ the app's 1.3.2 fixes its Google sign-in. No section, target, flag or protection changed.
22
+
23
+ ## [1.3.1] - 2026-09-25
24
+
25
+ No change to what is cleaned, how it is decided, or what is refused. This release names the team as the
26
+ tool's maker instead of one person, and points the web address it prints at the product's own site.
27
+
28
+ ### Changed
29
+
30
+ - **The maker lines name the team.** The end-of-run line, the walkthrough and the usage header read
31
+ *by the windowsweep team*; `--version` and the session log's header read `Author: The windowsweep team`.
32
+ - **The web address the tool prints is the product's own site**, `https://windowsweep.aoneahsan.com`,
33
+ instead of a personal site: the `Web:` row of `--version` and `--feedback`, the session log's header and
34
+ the walkthrough. The contact form lives there.
35
+ - **The report credits** keep their four keys and their string type, so a reader of `schema_version: 1`
36
+ keeps working: `author.name` is `the windowsweep team`, `author.website` is the product's site, and
37
+ `author.email` and `author.linkedin` are empty strings. A report written earlier keeps what it recorded.
38
+ - **The Email and LinkedIn rows of `--version` are gone**, and so is the email address in the usage
39
+ header and the session log's header. The address stays where it is a contact channel: the crash message
40
+ and `--feedback`.
41
+
42
+ ### Fixed
43
+
44
+ - **The README's install-size row inside the 1.3.0 package** said 44 files and about 396 kB unpacked;
45
+ that package held 46 files and about 400 kB, because the two files 1.3.0 split out were never counted.
46
+ The row is measured from this package.
47
+
12
48
  ## [1.3.0] - 2026-09-17
13
49
 
14
50
  No change to what is cleaned, how it is decided, or what is refused. This release moves one printed
@@ -20,9 +56,6 @@ version rows inside the published package.
20
56
  - **The documentation address the tool carries is now the documentation site**,
21
57
  `https://windowsweep-docs.aoneahsan.com`, instead of the README on GitHub. The site has served the
22
58
  same pages over HTTPS since 2026-09-12.
23
-
24
- ### Internal
25
-
26
59
  - **`lib/external.ps1`** takes `Invoke-External`, `Test-CommandPresent`, `Test-ProcessRunning`,
27
60
  `Test-IsAdmin`, `Test-CanElevate` and `Invoke-Elevated` out of `lib/safety.ps1`, which is back under
28
61
  500 lines. The deletion chokepoint stays where it was: running a process and raising privilege are a
@@ -30,9 +63,13 @@ version rows inside the published package.
30
63
  - **`modules/self_test_contract.ps1`** takes self-test group [18] out of `modules/self_test_extra.ps1`,
31
64
  same fixture, same checks. Both moves are verbatim, and each was watched failing on a planted defect
32
65
  before it was believed.
33
- - The self-test reports **160 checks**, up from 156, because groups [3] and [4] check every engine file
34
- by name and there are now two more files. No check was added, changed or removed.
35
- - The README's at-a-glance rows inside the published package were stale at 1.1.0 through the 1.2.0
66
+ - **The self-test grew by the two new files**, because groups [3] and [4] check every engine file by
67
+ name. No check was added, changed or removed - the suite is the same suite, counting one more file
68
+ twice.
69
+
70
+ ### Fixed
71
+
72
+ - **The README at-a-glance rows inside the published package** were stale at 1.1.0 through the 1.2.0
36
73
  cascade. They are correct here.
37
74
 
38
75
  ## [1.2.0] - 2026-09-08
package/README.md CHANGED
@@ -36,14 +36,14 @@ It is the Windows member of a family with [linux-cleanup](https://github.com/aon
36
36
 
37
37
  | | |
38
38
  |---|---|
39
- | **Version** | `1.3.0` |
39
+ | **Version** | `1.3.2` |
40
40
  | **License** | MIT |
41
41
  | **Node** | `>=14` (launcher only) |
42
42
  | **Runtime** | Windows PowerShell 5.1 (built in) or PowerShell 7 |
43
43
  | **Platforms** | Windows 10 (1809+) and Windows 11 |
44
- | **Install size** | ~117 kB packed · ~396 kB unpacked · 44 files · no dependencies |
44
+ | **Install size** | ~120 kB packed · ~401 kB unpacked · 46 files · no dependencies |
45
45
  | **Undo** | Recycle Bin for personal files; none for caches (they regenerate) |
46
- | **Status** | Stable · 1.3.0, released 2026-09-17 |
46
+ | **Status** | Stable · 1.3.2, released 2026-09-28 |
47
47
 
48
48
  <a id="table-of-contents"></a>
49
49
  ## 🧭 Table of Contents&nbsp;[#](#table-of-contents)
@@ -451,15 +451,16 @@ More: [FAQ](https://windowsweep-docs.aoneahsan.com/faq).
451
451
  <a id="changelog"></a>
452
452
  ## 🔄 Changelog&nbsp;[#](#changelog)
453
453
 
454
- Latest release: **`1.3.0`** - nothing about what is cleaned, how it is decided or what is refused changed.
455
- The documentation address the tool carries is now the documentation site, two files that had grown past the
456
- project's own 500-line ceiling are split (the deletion chokepoint stays exactly where it was), and the
457
- at-a-glance rows inside the published package are correct again.
454
+ Latest release: **`1.3.2`** - the engine is 1.3.1's, file for file. The version moves so the desktop app and
455
+ the engine it bundles keep one number, and the desktop app's 1.3.2 fixes its Google sign-in.
458
456
 
459
- Before it, **`1.2.0`** - `--exclude-path` honoured in every section at the deletion chokepoint (it
460
- protected one section out of twenty-six, and never a folder's children), a dry-run that counts exactly what a
461
- real run removes, `newest_write_utc` on every scanned target, `protected` in `--list --json`, `excluded[]` in
462
- the summary, and the console and report strings in one voice.
457
+ Before it, **`1.3.1`** - nothing about what is cleaned, how it is decided or what is refused changed. The tool
458
+ names the windowsweep team as its maker instead of one person, and the web address it prints is the product's
459
+ own site.
460
+
461
+ Before that, **`1.3.0`** - the documentation address the tool carries became the documentation site, two files
462
+ that had grown past the project's own 500-line ceiling were split (the deletion chokepoint stayed exactly where
463
+ it was), and the at-a-glance rows inside the published package were corrected.
463
464
  Full history: [CHANGELOG.md](https://github.com/aoneahsan/windowsweep/blob/main/CHANGELOG.md).
464
465
 
465
466
  <a id="contributing"></a>
@@ -504,8 +505,8 @@ this tool deletes files, so review what it proposes before confirming.
504
505
  <a id="author"></a>
505
506
  ## 👤 Author&nbsp;[#](#author)
506
507
 
507
- **Ahsan Mahmood** - [aoneahsan.com](https://aoneahsan.com) · [GitHub](https://github.com/aoneahsan) ·
508
- [LinkedIn](https://linkedin.com/in/aoneahsan) · [aoneahsan@gmail.com](mailto:aoneahsan@gmail.com)
508
+ **The windowsweep team** - [team page](https://windowsweep-docs.aoneahsan.com/about) ·
509
+ [contact form](https://windowsweep.aoneahsan.com/contact), after signing in
509
510
 
510
511
  <a id="links"></a>
511
512
  ## 🔗 Links&nbsp;[#](#links)
package/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.0
1
+ 1.3.2
package/lib/constants.ps1 CHANGED
@@ -4,15 +4,16 @@
4
4
  # Single source of truth for the version is package.json: the Node launcher exports it as
5
5
  # WINDOWSWEEP_VERSION. A direct checkout falls back to this literal; the version:check script
6
6
  # asserts the two never drift.
7
- $Script:WS_VERSION_FALLBACK = '1.3.0'
7
+ $Script:WS_VERSION_FALLBACK = '1.3.2'
8
8
 
9
9
  $Script:WS_NAME = 'windowsweep'
10
10
  $Script:WS_TAGLINE = 'Developer-aware Windows cleanup CLI: dry-run first, personal folders refused, zero install via npx.'
11
- $Script:WS_AUTHOR = 'Ahsan Mahmood'
11
+ # The maker is the team, never one person. WS_AUTHOR lands mid-line ("by the windowsweep team");
12
+ # WS_TEAM is the form a label shows standing alone ("Author: The windowsweep team").
13
+ $Script:WS_AUTHOR = 'the windowsweep team'
14
+ $Script:WS_TEAM = 'The windowsweep team'
12
15
  $Script:WS_EMAIL = 'aoneahsan@gmail.com'
13
- $Script:WS_WEB = 'https://aoneahsan.com'
14
- $Script:WS_LINKEDIN = 'https://linkedin.com/in/aoneahsan'
15
- $Script:WS_GITHUB = 'https://github.com/aoneahsan'
16
+ $Script:WS_WEB = 'https://windowsweep.aoneahsan.com'
16
17
  $Script:WS_REPO = 'https://github.com/aoneahsan/windowsweep'
17
18
  $Script:WS_ISSUES = 'https://github.com/aoneahsan/windowsweep/issues'
18
19
  $Script:WS_NPM = 'https://www.npmjs.com/package/windowsweep'
package/lib/log.ps1 CHANGED
@@ -14,7 +14,7 @@ function Initialize-Log {
14
14
  $header = @(
15
15
  '# ============================================================'
16
16
  "# $Script:WS_NAME v$(Get-ToolVersion) - session log"
17
- "# Author: $Script:WS_AUTHOR <$Script:WS_EMAIL>"
17
+ "# Author: $Script:WS_TEAM"
18
18
  "# Web: $Script:WS_WEB"
19
19
  "# License: $Script:WS_LICENSE"
20
20
  "# Started: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss zzz')"
@@ -106,7 +106,7 @@ function Save-Report {
106
106
  schema_version = 1
107
107
  credits = [ordered]@{
108
108
  tool = $Script:WS_NAME; tool_version = (Get-ToolVersion); tool_homepage = $Script:WS_REPO; tool_license = $Script:WS_LICENSE
109
- author = [ordered]@{ name = $Script:WS_AUTHOR; email = $Script:WS_EMAIL; website = $Script:WS_WEB; linkedin = $Script:WS_LINKEDIN }
109
+ author = [ordered]@{ name = $Script:WS_AUTHOR; email = ''; website = $Script:WS_WEB; linkedin = '' }
110
110
  }
111
111
  meta = [ordered]@{
112
112
  started_at = $ws.Report.startedAt
@@ -5,10 +5,8 @@ function Show-Version {
5
5
  Write-Host (" $Script:WS_NAME v$(Get-ToolVersion)")
6
6
  Write-Host (" $Script:WS_TAGLINE")
7
7
  Write-Host ''
8
- Write-Host (" Author: $Script:WS_AUTHOR")
9
- Write-Host (" Email: $Script:WS_EMAIL")
8
+ Write-Host (" Author: $Script:WS_TEAM")
10
9
  Write-Host (" Web: $Script:WS_WEB")
11
- Write-Host (" LinkedIn: $Script:WS_LINKEDIN")
12
10
  Write-Host (" Source: $Script:WS_REPO")
13
11
  Write-Host (" License: $Script:WS_LICENSE")
14
12
  Write-Host ''
@@ -187,10 +187,10 @@ function Show-SessionSummary {
187
187
  Write-Kv 'Duration:' (Format-Duration $secs)
188
188
  $ran = @($ws.Report.steps | Where-Object { $_.status -in 'ran', 'dry-run' }).Count
189
189
  $skipped = @($ws.Report.steps | Where-Object { $_.status -notin 'ran', 'dry-run' }).Count
190
- # C-091: 'skipped' is every step that did not run, so it folds in REFUSED and FAILED as well as skipped.
191
- # The label is kept deliberately - the exported report was aligned to this exact wording on purpose, and
192
- # renaming both costs two surfaces and a stored artefact's vocabulary to buy a word. The fact lives here,
193
- # beside the slot, so a reader of `9 / 2` can find out which.
190
+ # C-091: 'skipped' is every step that did not run, so it folds in REFUSED and FAILED as well as skipped.
191
+ # The label is kept deliberately - the exported report was aligned to this exact wording on purpose, and
192
+ # renaming both costs two surfaces and a stored artefact's vocabulary to buy a word. The fact lives here,
193
+ # beside the slot, so a reader of `9 / 2` can find out which.
194
194
  Write-Kv 'Sections run / skipped:' "$ran / $skipped"
195
195
  Write-Kv 'Log:' $ws.LogFile
196
196
  $rep = Save-Report
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windowsweep",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "Developer-aware Windows cleanup CLI: dry-run first, personal folders refused, zero install via npx.",
5
5
  "bin": {
6
6
  "windowsweep": "bin/windowsweep.js"
package/windowsweep.ps1 CHANGED
@@ -103,7 +103,7 @@ OUTPUT
103
103
  Logs: $($Script:WS.LogsDir)
104
104
  Reports: $($Script:WS.ReportsDir)
105
105
 
106
- $Script:WS_NAME v$v by $Script:WS_AUTHOR <$Script:WS_EMAIL> $Script:WS_WEB
106
+ $Script:WS_NAME v$v by $Script:WS_AUTHOR $Script:WS_WEB
107
107
  $Script:WS_REPO - $Script:WS_LICENSE
108
108
  "@
109
109
  Write-Host $text