linersh 0.5.5 → 0.5.7

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.
@@ -1,28 +1,71 @@
1
1
  # Liner AI Handoff
2
2
 
3
- Last updated: 2026-05-31
3
+ Last updated: 2026-06-01
4
4
 
5
- This handoff summarizes the current Liner state after the 0.5.5 TUI/testing pass. It is intended for any AI agent continuing the work without the full chat history.
5
+ This handoff summarizes the current Liner state after the 0.5.6 TUI/core release,
6
+ marketing-site launch-prep pass, and 0.5.7 PDF-download hotfix prep. It
7
+ is intended for any AI agent continuing the work without the full chat history.
6
8
 
7
9
  ## Current Product State
8
10
 
9
- - `linersh@0.5.5` is the active TUI release candidate.
10
- - The Python core source is now versioned `0.5.5`; publish matching `linersh-*@0.5.5` platform packages before publishing `linersh@0.5.5`.
11
+ - `linersh@0.5.6` is published on npm and promoted to `latest`.
12
+ - The published Python core/platform packages are `0.5.6`; matching
13
+ `linersh-*@0.5.6` platform packages are published on npm and promoted to
14
+ `latest`.
15
+ - The repo is prepared for `0.5.7` (`pyproject.toml`, `src/liner/__init__.py`,
16
+ and `packages/tui/package.json`). It needs rebuilt platform packages because
17
+ the Python core changed.
11
18
  - Platform packages are available for macOS arm64/x64, Linux arm64/x64, and Windows x64.
12
19
  - The TUI is installed/tested locally from the packed tarball in `/tmp/liner-playwright-test`.
13
20
  - The main tested mixtape is `staff-design-engenieer` (typo preserved in the folder name).
21
+ - Clean npm smoke passed with `npx linersh@latest --version`: `liner 0.5.6 (tui) · 0.5.6 (core)`.
14
22
 
15
23
  ## Important Local Paths
16
24
 
17
- - Repo/worktree: `/Users/arturo/.codex/worktrees/44f8/liner`
25
+ - Active repo/worktree for this thread: `/Users/arturo/.codex/worktrees/7117/liner`
26
+ - Previous v0.5.5 implementation worktree: `/Users/arturo/.codex/worktrees/44f8/liner`
18
27
  - Original Liner project folder: `/Users/arturo/Documents/Projects/Youtube Grabber/liner`
19
28
  - Original mixtapes folder: `/Users/arturo/Documents/Projects/Youtube Grabber/liner/mixtapes`
20
29
  - CMD-UX copied mixtapes folder: `/Users/arturo/Documents/Projects/CMD-UX/Case Studies/mixtapes`
21
30
  - Local TUI test install: `/tmp/liner-playwright-test`
31
+ - 0.5.5 release artifacts: `/tmp/liner-release-artifacts-0.5.5`
32
+ - 0.5.6 release artifacts: `/tmp/liner-release-artifacts-0.5.6`
33
+ - 0.5.7 release artifacts: `/tmp/liner-release-artifacts-0.5.7`
22
34
  - Tested mixtape now moved back to: `/Users/arturo/Documents/Projects/Youtube Grabber/liner/mixtapes/staff-design-engenieer`
23
35
 
24
36
  ## What Was Fixed In This Pass
25
37
 
38
+ 0.5.7 PDF-download hotfix:
39
+
40
+ - `.pdf` sources that first hit a JavaScript or bot-detection stub and then
41
+ fall back to Playwright can make Chromium report `Page.goto: Download is
42
+ starting`. Liner now captures that Playwright download and extracts it
43
+ through the shared PDF helper.
44
+ - Verified against the failing resume mixtape PDFs:
45
+ - `TheLadders-EyeTracking-StudyC2.pdf?type=standard` -> 4,095 chars.
46
+ - `Formula-for-a-Winning-Resume.pdf` -> 7,208 chars.
47
+ - Full `staff-designer-resume-crafter` compile with `--no-cache` now reaches
48
+ `22/24 usable sources`; the remaining failures are PAIR cookie-consent-only
49
+ output and a Microsoft HAX network timeout.
50
+
51
+ 0.5.6 source-extraction hardening:
52
+
53
+ - Remote web PDFs are detected before HTML extraction and extracted through the
54
+ shared PDF helper. This prevents raw `%PDF-` bytes from entering generated
55
+ source Markdown.
56
+ - Bad web cache entries are purged and refetched when they contain raw PDF
57
+ bytes, stale PDF URL fallbacks, tiny soft/playwright fallback bodies, or
58
+ cookie-consent-only text.
59
+ - Server HTML that looks like an empty client-side app shell now raises
60
+ `JsRenderingRequired`, so existing auto-fallback can try Playwright.
61
+ - Cookie-consent-only output is rejected as unusable, including after Playwright
62
+ rendering. This is intentionally an honest failure, not an automatic
63
+ cookie-clicker.
64
+ - Partial compile output now says how many source files are usable versus
65
+ unavailable placeholders.
66
+
67
+ 0.5.5 TUI/core release:
68
+
26
69
  - Skill bundle resolution for npm installs:
27
70
  - TUI now resolves the bundled `cli-update-docs/SKILL.md` reliably from the installed package.
28
71
  - `LINER_SKILL_PATH` can point either at the skill directory or at `SKILL.md`.
@@ -57,10 +100,15 @@ This handoff summarizes the current Liner state after the 0.5.5 TUI/testing pass
57
100
 
58
101
  ```sh
59
102
  cd /tmp/liner-playwright-test
60
- LINER_BIN=/Users/arturo/.codex/worktrees/44f8/liner/.venv/bin/liner ./node_modules/.bin/liner
103
+ LINER_BIN=/Users/arturo/.codex/worktrees/7117/liner/.venv/bin/liner ./node_modules/.bin/liner
61
104
  ```
62
105
 
63
106
  - Running `./node_modules/.bin/liner` without `LINER_BIN` uses the bundled platform binary, which may not include local Python source edits until platform packages are rebuilt.
107
+ - If Python source changed, publishing only the main `linersh` package is not
108
+ enough. Rebuild and publish all platform packages at the same version first.
109
+ - Cookie-banner auto-dismissal is not implemented in 0.5.6. The safety net is
110
+ to reject cookie-only output; a future dismissal pass should keep that final
111
+ rejection in place.
64
112
  - The TUI package generated `packages/tui/cli-update-docs/` during `prepack`; the canonical docs live at repo-root `cli-update-docs/`.
65
113
  - The old root `docs/` folder was removed. `LINER-MASTER.md` now lives at `cli-update-docs/LINER-MASTER.md`.
66
114
  - The Jhey source URL currently 404s on the live site. The useful archived version is:
@@ -74,7 +122,7 @@ https://web.archive.org/web/20250408204038id_/https://jhey.dev/cheep/rotating-ga
74
122
  TUI package:
75
123
 
76
124
  ```sh
77
- cd /Users/arturo/.codex/worktrees/44f8/liner/packages/tui
125
+ cd /Users/arturo/.codex/worktrees/7117/liner/packages/tui
78
126
  npm run typecheck
79
127
  npm run build
80
128
  npm test
@@ -84,11 +132,44 @@ npm pack --json
84
132
  Python suite:
85
133
 
86
134
  ```sh
87
- cd /Users/arturo/.codex/worktrees/44f8/liner
135
+ cd /Users/arturo/.codex/worktrees/7117/liner
88
136
  uv run --extra dev pytest
89
137
  ```
90
138
 
91
- Result from the latest full Python run in this pass: `179 passed, 1 skipped, 1 deselected`.
139
+ Result from the latest full Python run in this pass: `190 passed, 1 deselected`.
140
+
141
+ Release-prep verification:
142
+
143
+ ```sh
144
+ cd /Users/arturo/.codex/worktrees/7117/liner/packages/tui
145
+ npm ci
146
+ npm run typecheck
147
+ npm test
148
+ npm run build
149
+ npm pack --dry-run
150
+
151
+ cd /Users/arturo/.codex/worktrees/7117/liner
152
+ python3 -m compileall -q src/liner
153
+ uv run --extra dev pytest
154
+ ```
155
+
156
+ Results: TUI `92 passed`; Python `179 passed, 1 skipped, 1 deselected`.
157
+
158
+ Platform artifact workflow:
159
+
160
+ ```text
161
+ Status: latest post-release-prep run is green; check `gh run list --workflow platform-bundles.yml --limit 3` if you need the current run ID.
162
+ Artifacts downloaded to: /tmp/liner-release-artifacts-0.5.5
163
+ Local npm bundle smoke: liner 0.5.5 (tui) · 0.5.5 (core)
164
+ ```
165
+
166
+ npm release smoke:
167
+
168
+ ```sh
169
+ rm -rf ~/.npm/_npx
170
+ npx linersh@latest --version
171
+ # liner 0.5.5 (tui) · 0.5.5 (core)
172
+ ```
92
173
 
93
174
  ## Useful Test Commands
94
175
 
@@ -96,29 +177,29 @@ Install the local TUI tarball into the scratch project:
96
177
 
97
178
  ```sh
98
179
  cd /tmp/liner-playwright-test
99
- npm install /Users/arturo/.codex/worktrees/44f8/liner/packages/tui/linersh-0.5.5.tgz
180
+ npm install /tmp/liner-release-artifacts-0.5.5/linersh-darwin-arm64/linersh-darwin-arm64-0.5.5.tgz /tmp/liner-release-artifacts-0.5.5/linersh-tui/linersh-0.5.5.tgz
100
181
  ```
101
182
 
102
183
  Run the TUI against the local Python core:
103
184
 
104
185
  ```sh
105
186
  cd /tmp/liner-playwright-test
106
- LINER_BIN=/Users/arturo/.codex/worktrees/44f8/liner/.venv/bin/liner ./node_modules/.bin/liner
187
+ LINER_BIN=/Users/arturo/.codex/worktrees/7117/liner/.venv/bin/liner ./node_modules/.bin/liner
107
188
  ```
108
189
 
109
190
  Force a fresh compile/fetch:
110
191
 
111
192
  ```sh
112
193
  cd /tmp/liner-playwright-test
113
- LINER_BIN=/Users/arturo/.codex/worktrees/44f8/liner/.venv/bin/liner ./node_modules/.bin/liner cache clear --yes
114
- LINER_BIN=/Users/arturo/.codex/worktrees/44f8/liner/.venv/bin/liner ./node_modules/.bin/liner
194
+ LINER_BIN=/Users/arturo/.codex/worktrees/7117/liner/.venv/bin/liner ./node_modules/.bin/liner cache clear --yes
195
+ LINER_BIN=/Users/arturo/.codex/worktrees/7117/liner/.venv/bin/liner ./node_modules/.bin/liner
115
196
  ```
116
197
 
117
198
  Run JS setup explicitly:
118
199
 
119
200
  ```sh
120
201
  cd /tmp/liner-playwright-test
121
- LINER_BIN=/Users/arturo/.codex/worktrees/44f8/liner/.venv/bin/liner ./node_modules/.bin/liner setup-js --yes
202
+ LINER_BIN=/Users/arturo/.codex/worktrees/7117/liner/.venv/bin/liner ./node_modules/.bin/liner setup-js --yes
122
203
  ```
123
204
 
124
205
  Clean local state for reinstall testing:
@@ -147,8 +228,14 @@ Package-specific docs still live in `packages/tui/`:
147
228
 
148
229
  ## Suggested Next Work
149
230
 
150
- - Publish/promote `linersh@0.5.5` once final smoke testing passes.
151
- - Rebuild/publish all platform packages for `0.5.5`, then publish/promote `linersh@0.5.5`.
231
+ - Deploy the marketing site from `marketing/site` once DNS/Vercel details are ready.
232
+ - Update the public website docs and changelog for 0.5.7 after the release
233
+ artifacts are ready.
234
+ - Consider a conservative Playwright cookie-banner dismissal pass for common,
235
+ low-risk labels, while still rejecting cookie-only output if dismissal fails.
236
+ - Consider surfacing extraction mode/body length in the TUI compile details.
237
+ - Consider adding `liner doctor-source <url>` or equivalent single-source
238
+ diagnostics.
152
239
  - Consider adding Wayback as an automatic fetcher tier between Playwright and agent-summary fallback.
153
240
  - Add per-source failure actions in CompileView: open URL, drop source, retry one source.
154
241
  - Add a regression test for completed Compile opening existing results rather than running `streamCompile`.
@@ -524,7 +524,7 @@ Liner's methodology exists to catch these before compile.
524
524
 
525
525
  ## Project Status
526
526
 
527
- As of v0.5.5 (published on npm `latest`):
527
+ As of v0.5.5:
528
528
 
529
529
  - The Python CLI is functional.
530
530
  - The TypeScript/Ink TUI is functional. The empirical-test phase has been removed from the driven flow — compilation is now the completion milestone (*compiled = complete*). The hub is a single summary view (status box + always-visible phase checklist), import auto-detects `.mixtape` files in the current folder, and completed/partial compiles open the existing compile result instead of rerunning by default.
@@ -26,13 +26,15 @@ The split is deliberate. Every invocation pulls SKILL.md's ~2,300 words into con
26
26
 
27
27
  ## Where the bundle lives
28
28
 
29
- **Local testing.** Drop the `curating-mixtapes/` folder into `~/.claude/skills/`. Claude Code and Claude Desktop both look there for user-installed skills. The skill fires when the user says something the description matches — "help me make a mixtape on [topic]" is the canonical trigger.
29
+ **Local testing.** Drop this directory into `~/.claude/skills/curating-mixtapes/`. Claude Code and Claude Desktop both look there for user-installed skills. The skill fires when the user says something the description matches — "help me make a mixtape on [topic]" is the canonical trigger.
30
30
 
31
- **Shipping.** The bundle lives at `liner/skills/curating-mixtapes/` in the main Liner repository. End users install it from there (installation flow TBD — likely a `liner skills install` command or a documented copy step in the Liner README).
31
+ **Shipping.** The canonical bundle lives at repo-root `cli-update-docs/`. The TUI copies this directory into `packages/tui/cli-update-docs/` during `prepack` and ships it inside the `linersh` npm package, so end users do not need a separate skill install for TUI-driven agent phases.
32
32
 
33
- **TUI subprocess.** The Liner TUI bundles the skill internally and invokes it via the Claude Agent SDK in quick mode. The user doesn't see the skill directly; they see the TUI's wizard UI. The methodology being applied is this skill's.
33
+ **Direct skill use.** A documented copy/install flow for using the skill outside the TUI is still planned. Until then, direct local use is a developer workflow.
34
34
 
35
- The same file contents work in all three locations. Don't fork between a local-test version and a ship version.
35
+ **TUI subprocess.** The Liner TUI bundles the skill internally and invokes it via the local Claude or Codex CLI in quick mode. The user doesn't see the skill directly; they see the TUI's wizard UI. The methodology being applied is this skill's.
36
+
37
+ The same file contents work in every location. Don't fork between a local-test version and the package-shipped version.
36
38
 
37
39
  ## Runtime requirements
38
40
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linersh",
3
- "version": "0.5.5",
3
+ "version": "0.5.7",
4
4
  "description": "Liner — interactive tape editor for building curated mixtapes (AI-consumable context bundles).",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -36,11 +36,11 @@
36
36
  "yaml": "^2.6.1"
37
37
  },
38
38
  "optionalDependencies": {
39
- "linersh-darwin-arm64": "0.5.5",
40
- "linersh-darwin-x64": "0.5.5",
41
- "linersh-linux-arm64": "0.5.5",
42
- "linersh-linux-x64": "0.5.5",
43
- "linersh-win32-x64": "0.5.5"
39
+ "linersh-darwin-arm64": "0.5.7",
40
+ "linersh-darwin-x64": "0.5.7",
41
+ "linersh-linux-arm64": "0.5.7",
42
+ "linersh-linux-x64": "0.5.7",
43
+ "linersh-win32-x64": "0.5.7"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@types/node": "^22.10.0",