linkedin-apply-assistant 0.1.1 → 0.1.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
@@ -6,6 +6,15 @@ This file follows the spirit of Keep a Changelog and uses semantic version label
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.1.2] - 2026-06-13
10
+
11
+ ### Changed
12
+
13
+ - Simplified README and npm package-page install instructions to one npm
14
+ command plus one direct PowerShell installer command.
15
+ - Kept extended Python, Playwright, source checkout, and troubleshooting details
16
+ in the canonical install guide instead of duplicating them in the README.
17
+
9
18
  ## [0.1.1] - 2026-06-13
10
19
 
11
20
  ### Added
package/README.md CHANGED
@@ -7,7 +7,7 @@ LinkedIn-apply-assistant is an experimental local browser automation assistant f
7
7
 
8
8
  The package is local-first. It does not require credentials in config, copied browser profiles, private documents, or generated reports to import, inspect, or run its deterministic tests.
9
9
 
10
- Current package metadata version: `0.1.1`.
10
+ Current package metadata version: `0.1.2`.
11
11
 
12
12
  ## Safety Boundary
13
13
 
@@ -28,56 +28,30 @@ Read [SAFETY.md](SAFETY.md) before using visible-browser workflows. Read [LEGAL.
28
28
 
29
29
  ## Install
30
30
 
31
- NPM global launcher:
31
+ NPM:
32
32
 
33
- ```powershell
33
+ ```bash
34
34
  npm install -g linkedin-apply-assistant
35
- linkedin-apply-assistant --help
36
35
  ```
37
36
 
38
- The npm package is a Node launcher plus bundled Python source. If the launcher
39
- reports missing Python imports, install the bundled Python package from the
40
- global npm package directory:
37
+ Windows PowerShell:
41
38
 
42
39
  ```powershell
43
- $pkg = Join-Path (npm root -g) 'linkedin-apply-assistant'
44
- py -3 -m pip install $pkg
40
+ powershell -NoProfile -ExecutionPolicy Bypass -Command "iwr https://raw.githubusercontent.com/MohammedGhazal09/linkedin-apply-assistant/main/install.ps1 -OutFile $env:TEMP\linkedin-apply-assistant-install.ps1; & $env:TEMP\linkedin-apply-assistant-install.ps1"
45
41
  ```
46
42
 
47
- PowerShell no-admin installer:
43
+ Verify:
48
44
 
49
45
  ```powershell
50
- $script = Join-Path $env:TEMP 'install-linkedin-apply-assistant.ps1'
51
- Invoke-WebRequest -UseBasicParsing https://raw.githubusercontent.com/MohammedGhazal09/linkedin-apply-assistant/main/install.ps1 -OutFile $script
52
- powershell -ExecutionPolicy Bypass -File $script
53
- ```
54
-
55
- From the package directory:
56
-
57
- ```powershell
58
- python -m pip install -e ".[dev]"
59
- linkedin-apply-assistant --help
60
- ```
61
-
62
- For Bash/macOS/Linux:
63
-
64
- ```bash
65
- python -m pip install -e ".[dev]"
66
46
  linkedin-apply-assistant --help
67
47
  ```
68
48
 
69
- For editable local development, this module fallback is available from the package root:
70
-
71
- ```powershell
72
- $env:PYTHONPATH=(Resolve-Path 'src').Path
73
- python -m linkedin_apply_assistant.cli --help
74
- ```
75
-
76
- Use Python 3.11 or newer. Install Playwright Chromium before visible-browser workflows such as `search`, `assist`, or browser-dependent `apply` preparation. Browser-free `dry-run` and `report` do not require Chromium.
77
-
78
- The package also includes a local npm launcher shape for package dry-run validation. It delegates to the Python CLI and still requires Python 3.11+ and the package dependencies to be installed or importable.
79
-
80
- Source checkout is available at <https://github.com/MohammedGhazal09/linkedin-apply-assistant>. See [docs/install-and-configuration.md](docs/install-and-configuration.md) for the full npm, PowerShell, source, Python, and Playwright install matrix. PyPI remains a future package channel; the package-channel decision is documented in the [registry publication strategy](docs/registry-publication-strategy.md).
49
+ Use Python 3.11 or newer. The npm package is the current public registry path;
50
+ the PowerShell command downloads the installer from GitHub and runs it locally.
51
+ See [docs/install-and-configuration.md](docs/install-and-configuration.md) for
52
+ source, Python, Playwright, and troubleshooting details. PyPI remains a future
53
+ package channel; the package-channel decision is documented in the
54
+ [registry publication strategy](docs/registry-publication-strategy.md).
81
55
 
82
56
  ## Quick Start
83
57
 
@@ -354,6 +354,47 @@ Distribution safety boundary:
354
354
  - PyPI and TestPyPI uploads stay out of this release.
355
355
  - `v0.1.0` remains source-only and is not backfilled to any registry.
356
356
 
357
+ ## v0.1.2 Install Documentation Simplification Release
358
+
359
+ This patch refreshes the npm package page, README, and GitHub Release wording so
360
+ the default install path matches common open-source README conventions: one npm command, one direct PowerShell installer command, and a link to detailed setup docs.
361
+
362
+ Scope:
363
+
364
+ - Package version: `0.1.2`
365
+ - npm package: `linkedin-apply-assistant`
366
+ - npm dist-tag: `latest`
367
+ - GitHub Release: `v0.1.2`
368
+ - Repository: `MohammedGhazal09/linkedin-apply-assistant`
369
+ - Runtime behavior, browser safety posture, and public CLI contract are unchanged.
370
+ - PyPI and TestPyPI remain future channels.
371
+
372
+ Required local evidence before public sync:
373
+
374
+ ```powershell
375
+ python -m pytest tests\test_distribution_metadata.py tests\test_docs_smoke.py tests\test_registry_publication_strategy.py tests\test_release_readiness.py tests\test_npm_launcher.py tests\test_distribution_smoke.py tests\test_release_manifest.py -q
376
+ python scripts\release.py clean
377
+ python scripts\release.py manifest --check
378
+ python scripts\release.py verify
379
+ npm pack --dry-run --json
380
+ ```
381
+
382
+ Post-publish verification:
383
+
384
+ ```powershell
385
+ npm view linkedin-apply-assistant version --json
386
+ npm view linkedin-apply-assistant dist-tags --json
387
+ gh release view v0.1.2 --repo MohammedGhazal09/linkedin-apply-assistant --json tagName,name,url,isDraft,isPrerelease,targetCommitish
388
+ ```
389
+
390
+ Distribution safety boundary:
391
+
392
+ - this is a docs-only package refresh to update the immutable npm README for the
393
+ latest package version
394
+ - no lifecycle install, publish, or token scripts are added to `package.json`
395
+ - `install.ps1` continues to avoid `Invoke-Expression` pipe-install behavior
396
+ - PyPI and TestPyPI uploads stay out of this release
397
+
357
398
  ## Required Public Metadata
358
399
 
359
400
  `package.json` must include exactly these public project fields:
@@ -407,7 +448,7 @@ Do not publish while any hard blocker remains unresolved.
407
448
  - `LEGAL.md` and `SAFETY.md` remain linked from README.
408
449
  - `MIGRATION.md` explains extraction scope and excluded root surfaces.
409
450
  - `CONTRIBUTING.md` and `SECURITY.md` are standalone-scoped.
410
- - Changelog has `Unreleased`, `0.1.1`, and `0.1.0`.
451
+ - Changelog has `Unreleased`, `0.1.2`, `0.1.1`, and `0.1.0`.
411
452
  - Source, Python, npm launcher, and PowerShell installer docs are current and tested.
412
453
  - Phase 21 terminal UX docs and help stay current: `docs\commands.md`, `tests\test_cli_help.py`, and `tests\test_config_diagnostics.py`.
413
454
  - Public package metadata points to the canonical GitHub repository and issue tracker.
package/SECURITY.md CHANGED
@@ -34,4 +34,4 @@ Never attach browser profiles, cookies, credentials, screenshots, private docume
34
34
 
35
35
  ## Supported Versions
36
36
 
37
- The initial standalone GitHub source release is `0.1.0`. Current package metadata is `0.1.1`. Security guidance applies to the current unreleased, `0.1.1`, and `0.1.0` package-local surfaces.
37
+ The initial standalone GitHub source release is `0.1.0`. Current package metadata is `0.1.2`. Security guidance applies to the current unreleased, `0.1.2`, `0.1.1`, and `0.1.0` package-local surfaces.
@@ -4,13 +4,32 @@ This package runs locally. You install the Python package, choose a local worksp
4
4
 
5
5
  This file is the canonical install matrix. The README keeps only a short quick start.
6
6
 
7
- Current package metadata version: `0.1.1`.
7
+ Current package metadata version: `0.1.2`.
8
8
 
9
- The npm launcher and PowerShell installer are the current quick-install paths.
9
+ The npm launcher and PowerShell no-admin installer are the current quick-install paths.
10
10
  PyPI remains a future package channel. The package-channel decision, approval
11
11
  gates, and `v0.1.0` no-backfill policy are documented in the
12
12
  [registry publication strategy](registry-publication-strategy.md).
13
13
 
14
+ ## Fast Install
15
+
16
+ NPM:
17
+
18
+ ```bash
19
+ npm install -g linkedin-apply-assistant
20
+ linkedin-apply-assistant --help
21
+ ```
22
+
23
+ Windows PowerShell without npm:
24
+
25
+ ```powershell
26
+ powershell -NoProfile -ExecutionPolicy Bypass -Command "iwr https://raw.githubusercontent.com/MohammedGhazal09/linkedin-apply-assistant/main/install.ps1 -OutFile $env:TEMP\linkedin-apply-assistant-install.ps1; & $env:TEMP\linkedin-apply-assistant-install.ps1"
27
+ ```
28
+
29
+ The PowerShell command downloads [install.ps1](../install.ps1) from GitHub raw
30
+ content to your temporary directory, then runs that local file. It does not use
31
+ an `Invoke-Expression` pipe-install pattern.
32
+
14
33
  ## Prerequisites
15
34
 
16
35
  - Python 3.11 or newer.
@@ -53,15 +72,13 @@ local virtual environment, installs the Python package, and writes
53
72
  does not require admin rights.
54
73
 
55
74
  ```powershell
56
- $script = Join-Path $env:TEMP 'install-linkedin-apply-assistant.ps1'
57
- Invoke-WebRequest -UseBasicParsing https://raw.githubusercontent.com/MohammedGhazal09/linkedin-apply-assistant/main/install.ps1 -OutFile $script
58
- powershell -ExecutionPolicy Bypass -File $script
75
+ powershell -NoProfile -ExecutionPolicy Bypass -Command "iwr https://raw.githubusercontent.com/MohammedGhazal09/linkedin-apply-assistant/main/install.ps1 -OutFile $env:TEMP\linkedin-apply-assistant-install.ps1; & $env:TEMP\linkedin-apply-assistant-install.ps1"
59
76
  ```
60
77
 
61
78
  Optional visible-browser setup during install:
62
79
 
63
80
  ```powershell
64
- powershell -ExecutionPolicy Bypass -File $script -InstallBrowser
81
+ powershell -NoProfile -ExecutionPolicy Bypass -Command "iwr https://raw.githubusercontent.com/MohammedGhazal09/linkedin-apply-assistant/main/install.ps1 -OutFile $env:TEMP\linkedin-apply-assistant-install.ps1; & $env:TEMP\linkedin-apply-assistant-install.ps1 -InstallBrowser"
65
82
  ```
66
83
 
67
84
  ## Current Source Checkout
@@ -6,18 +6,19 @@ registry token, log in to a registry, create a tag, upload a GitHub Release
6
6
  asset, or grant publish-capable workflow permissions.
7
7
 
8
8
  The first GitHub source release, `v0.1.0`, remains source-only and is not a
9
- registry backfill candidate. The npm launcher release starts at `0.1.1`; PyPI
10
- and TestPyPI remain future channels.
9
+ registry backfill candidate. The npm launcher release starts at `0.1.1`; the
10
+ current docs-only npm package page refresh is `0.1.2`. PyPI and TestPyPI remain
11
+ future channels.
11
12
 
12
13
  ## Current Boundary
13
14
 
14
- - Current package metadata version: `0.1.1`.
15
+ - Current package metadata version: `0.1.2`.
15
16
  - Current install path: npm global launcher, PowerShell installer, source
16
17
  checkout, local Python install, local editable install, and local npm launcher
17
18
  dry-run validation.
18
19
  - Current public channel: GitHub repository source checkout and GitHub source
19
- release archives; npm launcher package for `0.1.1` after the approved npm
20
- publish step verifies successfully.
20
+ release archives; npm launcher package for `0.1.2` after the approved npm
21
+ patch publish step verifies successfully.
21
22
  - Not current: PyPI package, TestPyPI package, GitHub Packages package, PyPI
22
23
  trusted-publisher setup, npm trusted-publisher setup, registry automation,
23
24
  release asset uploads, artifact attestations, provenance, or signing.
@@ -33,14 +34,14 @@ action, and exact mutation.
33
34
  | GitHub Releases | Current source-only channel for `v0.1.0`. No wheel, sdist, npm tarball, or other release asset is attached. | Keep as the source-of-truth release record. Future assets require explicit approval. | Users can inspect and install from source without introducing registry auth or package-name ownership. | Clean local verification, changelog, release checklist, source manifest, approved tag or release mutation. | Explicit GitHub Release approval naming repo, tag, target commit, release state, and assets, if any. | `gh release view`, `gh release list`, source archive inspection, release manifest verification. | Remove mistaken assets from the release, correct the release notes, or delete a draft. Source tags need separate explicit remediation because asset removal does not undo a tag. |
34
35
  | PyPI | Not published and not reserved. | Primary future Python registry for direct package publication. | The project is a Python CLI with Playwright-driven browser automation, so PyPI is the natural long-term install path. | Maintainer or maintainer-controlled organization ownership, account 2FA where supported, PyPI Trusted Publishing with GitHub Actions OIDC, protected `pypi` environment, clean build and metadata gates. | Explicit PyPI approval naming repository, version, PyPI project, workflow or manual action, and exact upload mutation. | Read-only JSON API check, `python -m build`, `twine check dist/*`, local wheel install smoke, release scan, manifest verification. | Prefer yanking a broken release where appropriate. Deletion is disruptive and permanent; never rely on deleting and reusing the same version. |
35
36
  | TestPyPI | Not published and not reserved. | Required preflight for the first registry release and for publish-workflow changes. Routine patch preflights can become optional only after a proven release cycle. | It exercises package metadata, artifacts, and installer behavior before the real PyPI release. | Same artifact gates as PyPI, protected `testpypi` environment, explicit preflight approval, no production token. | Explicit TestPyPI approval naming repository, version, TestPyPI project, workflow or manual action, and exact upload mutation. | TestPyPI JSON API check, metadata validation, test-index install smoke, package contents review. | Clean up mistaken TestPyPI releases where possible and move forward with a new version if needed. Do not treat TestPyPI cleanup as production rollback proof. |
36
- | npm | Public thin-launcher channel for `0.1.1`. | Keep as the JavaScript ecosystem convenience launcher; use PyPI later for direct Python package installs. | npm provides a familiar global command on systems that already have Node.js, but the launcher delegates to the Python CLI and cannot install Python itself. | Maintainer or maintainer-controlled ownership, account 2FA where supported, first-publish token bootstrap if trusted publishing cannot create the package, exact package contents review. | Explicit npm approval naming repository, version, npm package, workflow or manual action, and exact registry mutation. | `npm pack --dry-run --json`, package contents inspection, no lifecycle install/publish scripts, npm read-only registry check after publication. | Prefer deprecation for bad packages when unpublish criteria are not met. A used npm `package@version` cannot be reused, even after unpublish. |
37
+ | npm | Public thin-launcher channel for `0.1.2`; `0.1.1` was the first npm and PowerShell distribution release. | Keep as the JavaScript ecosystem convenience launcher; use PyPI later for direct Python package installs. | npm provides a familiar global command on systems that already have Node.js, but the launcher delegates to the Python CLI and cannot install Python itself. | Maintainer or maintainer-controlled ownership, account 2FA where supported, first-publish token bootstrap if trusted publishing cannot create the package, exact package contents review. | Explicit npm approval naming repository, version, npm package, workflow or manual action, and exact registry mutation. | `npm pack --dry-run --json`, package contents inspection, no lifecycle install/publish scripts, npm read-only registry check after publication. | Prefer deprecation for bad packages when unpublish criteria are not met. A used npm `package@version` cannot be reused, even after unpublish. |
37
38
  | PowerShell installer | Current GitHub-hosted installer script at `install.ps1`. | Keep as the no-admin Windows convenience path for users who prefer a single script. | It can create a local virtual environment, install dependencies from the public source archive, create command shims, and optionally install Chromium. | Public GitHub source archive availability, Python 3.11+, script syntax validation, no `Invoke-Expression` pipe-install pattern, and local install smoke. | Push the verified installer to the public repository; no registry mutation is required. | PowerShell parser check, temp-directory install smoke, command shim help smoke, and docs link checks. | Fix forward in `main`; users can reinstall from the corrected script or pin `-Ref` to a known tag. |
38
39
  | GitHub Packages | Not used. | Deferred. | It adds `packages: write` and authenticated consumption friction without improving the primary Python install path. | A future reason to publish a package to GitHub Packages, explicit package type, permission model, and install documentation. | Separate approval naming package type, repository, version, and exact mutation. | GitHub Packages read-only checks and package permission review. | Delete or deprecate only according to the package type's GitHub Packages support. This is not a substitute for PyPI/npm remediation. |
39
40
 
40
41
  ## Package Names
41
42
 
42
43
  The target package name for PyPI, TestPyPI, and npm publication is
43
- `linkedin-apply-assistant`. The current npm launcher version is `0.1.1`.
44
+ `linkedin-apply-assistant`. The current npm launcher version is `0.1.2`.
44
45
 
45
46
  If the unscoped npm name becomes unavailable or ownership changes later, the
46
47
  fallback is a future scoped npm package under a maintainer-controlled scope.
@@ -53,6 +54,8 @@ fallback is a future scoped npm package under a maintainer-controlled scope.
53
54
  - The npm launcher release uses `0.1.1` because it changes distribution
54
55
  metadata, includes the Python source in the npm tarball, and adds the
55
56
  PowerShell installer without changing the browser workflow contract.
57
+ - The docs-only npm package page refresh uses `0.1.2` because published npm
58
+ README content is immutable for an existing package version.
56
59
  - If user-visible behavior changes before registry publication, the default
57
60
  future version example is `0.2.0`.
58
61
  - Future behavior changes remain SemVer decisions at the publish phase.
@@ -124,7 +127,7 @@ Use these templates verbatim before any future registry or release mutation.
124
127
  ### npm Launcher Release
125
128
 
126
129
  - Repository: `MohammedGhazal09/linkedin-apply-assistant`
127
- - Version: `0.1.1`
130
+ - Version: `<version>`
128
131
  - Channel: npm
129
132
  - Workflow or manual action: `<workflow filename or manual command owner>`
130
133
  - Exact mutation: publish the verified npm launcher package for `<version>` to
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linkedin-apply-assistant",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Thin npm launcher for the Python LinkedIn apply assistant package",
5
5
  "license": "MIT",
6
6
  "repository": {
package/pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "linkedin-apply-assistant"
7
- version = "0.1.1"
7
+ version = "0.1.2"
8
8
  description = "Local LinkedIn application assistant with user-visible browser workflows"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,6 +1,6 @@
1
1
  """Package identity for the standalone LinkedIn application assistant."""
2
2
 
3
- __version__ = "0.1.1"
3
+ __version__ = "0.1.2"
4
4
 
5
5
  APP_DISPLAY_NAME = "LinkedIn-apply-assistant"
6
6
  APP_PACKAGE_NAME = "linkedin-apply-assistant"