linersh 0.5.5 → 0.5.6

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,57 @@
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.5 TUI/core release,
6
+ marketing-site launch-prep pass, and 0.5.6 source-extraction hardening 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.5` is published on npm and promoted to `latest`.
12
+ - The published Python core/platform packages are `0.5.5`; matching
13
+ `linersh-*@0.5.5` platform packages are published on npm and promoted to
14
+ `latest`.
15
+ - The repo is prepared for `0.5.6` (`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.5 (tui) · 0.5.5 (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/875c/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`
22
33
  - Tested mixtape now moved back to: `/Users/arturo/Documents/Projects/Youtube Grabber/liner/mixtapes/staff-design-engenieer`
23
34
 
24
35
  ## What Was Fixed In This Pass
25
36
 
37
+ 0.5.6 source-extraction hardening:
38
+
39
+ - Remote web PDFs are detected before HTML extraction and extracted through the
40
+ shared PDF helper. This prevents raw `%PDF-` bytes from entering generated
41
+ source Markdown.
42
+ - Bad web cache entries are purged and refetched when they contain raw PDF
43
+ bytes, stale PDF URL fallbacks, tiny soft/playwright fallback bodies, or
44
+ cookie-consent-only text.
45
+ - Server HTML that looks like an empty client-side app shell now raises
46
+ `JsRenderingRequired`, so existing auto-fallback can try Playwright.
47
+ - Cookie-consent-only output is rejected as unusable, including after Playwright
48
+ rendering. This is intentionally an honest failure, not an automatic
49
+ cookie-clicker.
50
+ - Partial compile output now says how many source files are usable versus
51
+ unavailable placeholders.
52
+
53
+ 0.5.5 TUI/core release:
54
+
26
55
  - Skill bundle resolution for npm installs:
27
56
  - TUI now resolves the bundled `cli-update-docs/SKILL.md` reliably from the installed package.
28
57
  - `LINER_SKILL_PATH` can point either at the skill directory or at `SKILL.md`.
@@ -57,10 +86,15 @@ This handoff summarizes the current Liner state after the 0.5.5 TUI/testing pass
57
86
 
58
87
  ```sh
59
88
  cd /tmp/liner-playwright-test
60
- LINER_BIN=/Users/arturo/.codex/worktrees/44f8/liner/.venv/bin/liner ./node_modules/.bin/liner
89
+ LINER_BIN=/Users/arturo/.codex/worktrees/875c/liner/.venv/bin/liner ./node_modules/.bin/liner
61
90
  ```
62
91
 
63
92
  - 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.
93
+ - If Python source changed, publishing only the main `linersh` package is not
94
+ enough. Rebuild and publish all platform packages at the same version first.
95
+ - Cookie-banner auto-dismissal is not implemented in 0.5.6. The safety net is
96
+ to reject cookie-only output; a future dismissal pass should keep that final
97
+ rejection in place.
64
98
  - The TUI package generated `packages/tui/cli-update-docs/` during `prepack`; the canonical docs live at repo-root `cli-update-docs/`.
65
99
  - The old root `docs/` folder was removed. `LINER-MASTER.md` now lives at `cli-update-docs/LINER-MASTER.md`.
66
100
  - The Jhey source URL currently 404s on the live site. The useful archived version is:
@@ -74,7 +108,7 @@ https://web.archive.org/web/20250408204038id_/https://jhey.dev/cheep/rotating-ga
74
108
  TUI package:
75
109
 
76
110
  ```sh
77
- cd /Users/arturo/.codex/worktrees/44f8/liner/packages/tui
111
+ cd /Users/arturo/.codex/worktrees/875c/liner/packages/tui
78
112
  npm run typecheck
79
113
  npm run build
80
114
  npm test
@@ -84,11 +118,44 @@ npm pack --json
84
118
  Python suite:
85
119
 
86
120
  ```sh
87
- cd /Users/arturo/.codex/worktrees/44f8/liner
121
+ cd /Users/arturo/.codex/worktrees/875c/liner
88
122
  uv run --extra dev pytest
89
123
  ```
90
124
 
91
- Result from the latest full Python run in this pass: `179 passed, 1 skipped, 1 deselected`.
125
+ Result from the latest full Python run in this pass: `190 passed, 1 deselected`.
126
+
127
+ Release-prep verification:
128
+
129
+ ```sh
130
+ cd /Users/arturo/.codex/worktrees/875c/liner/packages/tui
131
+ npm ci
132
+ npm run typecheck
133
+ npm test
134
+ npm run build
135
+ npm pack --dry-run
136
+
137
+ cd /Users/arturo/.codex/worktrees/875c/liner
138
+ python3 -m compileall -q src/liner
139
+ uv run --extra dev pytest
140
+ ```
141
+
142
+ Results: TUI `92 passed`; Python `179 passed, 1 skipped, 1 deselected`.
143
+
144
+ Platform artifact workflow:
145
+
146
+ ```text
147
+ 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.
148
+ Artifacts downloaded to: /tmp/liner-release-artifacts-0.5.5
149
+ Local npm bundle smoke: liner 0.5.5 (tui) · 0.5.5 (core)
150
+ ```
151
+
152
+ npm release smoke:
153
+
154
+ ```sh
155
+ rm -rf ~/.npm/_npx
156
+ npx linersh@latest --version
157
+ # liner 0.5.5 (tui) · 0.5.5 (core)
158
+ ```
92
159
 
93
160
  ## Useful Test Commands
94
161
 
@@ -96,29 +163,29 @@ Install the local TUI tarball into the scratch project:
96
163
 
97
164
  ```sh
98
165
  cd /tmp/liner-playwright-test
99
- npm install /Users/arturo/.codex/worktrees/44f8/liner/packages/tui/linersh-0.5.5.tgz
166
+ 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
167
  ```
101
168
 
102
169
  Run the TUI against the local Python core:
103
170
 
104
171
  ```sh
105
172
  cd /tmp/liner-playwright-test
106
- LINER_BIN=/Users/arturo/.codex/worktrees/44f8/liner/.venv/bin/liner ./node_modules/.bin/liner
173
+ LINER_BIN=/Users/arturo/.codex/worktrees/875c/liner/.venv/bin/liner ./node_modules/.bin/liner
107
174
  ```
108
175
 
109
176
  Force a fresh compile/fetch:
110
177
 
111
178
  ```sh
112
179
  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
180
+ LINER_BIN=/Users/arturo/.codex/worktrees/875c/liner/.venv/bin/liner ./node_modules/.bin/liner cache clear --yes
181
+ LINER_BIN=/Users/arturo/.codex/worktrees/875c/liner/.venv/bin/liner ./node_modules/.bin/liner
115
182
  ```
116
183
 
117
184
  Run JS setup explicitly:
118
185
 
119
186
  ```sh
120
187
  cd /tmp/liner-playwright-test
121
- LINER_BIN=/Users/arturo/.codex/worktrees/44f8/liner/.venv/bin/liner ./node_modules/.bin/liner setup-js --yes
188
+ LINER_BIN=/Users/arturo/.codex/worktrees/875c/liner/.venv/bin/liner ./node_modules/.bin/liner setup-js --yes
122
189
  ```
123
190
 
124
191
  Clean local state for reinstall testing:
@@ -147,8 +214,14 @@ Package-specific docs still live in `packages/tui/`:
147
214
 
148
215
  ## Suggested Next Work
149
216
 
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`.
217
+ - Deploy the marketing site from `marketing/site` once DNS/Vercel details are ready.
218
+ - Update the public website docs and changelog for 0.5.6 after the release
219
+ artifacts are ready.
220
+ - Consider a conservative Playwright cookie-banner dismissal pass for common,
221
+ low-risk labels, while still rejecting cookie-only output if dismissal fails.
222
+ - Consider surfacing extraction mode/body length in the TUI compile details.
223
+ - Consider adding `liner doctor-source <url>` or equivalent single-source
224
+ diagnostics.
152
225
  - Consider adding Wayback as an automatic fetcher tier between Playwright and agent-summary fallback.
153
226
  - Add per-source failure actions in CompileView: open URL, drop source, retry one source.
154
227
  - 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.6",
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.6",
40
+ "linersh-darwin-x64": "0.5.6",
41
+ "linersh-linux-arm64": "0.5.6",
42
+ "linersh-linux-x64": "0.5.6",
43
+ "linersh-win32-x64": "0.5.6"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@types/node": "^22.10.0",