linersh 1.0.0 → 1.0.1
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/README.md +26 -1
- package/bin/liner.js +7 -0
- package/package.json +1 -1
- package/cli-update-docs/ABOUT.md +0 -69
- package/cli-update-docs/AI-HANDOFF.md +0 -99
- package/cli-update-docs/CURATION.md +0 -290
- package/cli-update-docs/JTBD-MASTER-PROMPT-ABOUT.md +0 -130
- package/cli-update-docs/JTBD-MASTER-PROMPT.md +0 -147
- package/cli-update-docs/LINER-MASTER.md +0 -560
- package/cli-update-docs/LINER-MD-PRD.md +0 -531
- package/cli-update-docs/MIXTAPE-FORMAT.md +0 -430
- package/cli-update-docs/PLATFORM.md +0 -211
- package/cli-update-docs/TUI-BACKLOG.md +0 -334
|
@@ -1,334 +0,0 @@
|
|
|
1
|
-
# TUI backlog
|
|
2
|
-
|
|
3
|
-
Running list of work deferred from earlier slices. Newest at the top of each section. When something ships, move it to **Done** with the date.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Go Charm TUI migration
|
|
8
|
-
|
|
9
|
-
- **V2 Liner project shape adopted.** New projects now create `liner.yaml` at
|
|
10
|
-
the root and put corpus artifacts under `mixtape/`: `tape.yaml`,
|
|
11
|
-
`synthesis.md`, `MIXTAPE.md`, `sources/`, `local-sources/`, `.liner-runs/`,
|
|
12
|
-
and methodology `working/`. Root `LINER.md`, `skills/`, audits, impact tests,
|
|
13
|
-
composition, children, and lineage remain project capabilities. Legacy
|
|
14
|
-
root-level mixtape folders still open, compile, share, import, and report
|
|
15
|
-
status through fallback path resolution.
|
|
16
|
-
- **Visual cleanup checklist refreshed.** The Go plan now marks methodology, source review, and compile source-list linear/table cleanup as done, matching the current tests and implementation instead of leaving stale visual-debt notes.
|
|
17
|
-
- **Project screen sectioned.** The Go Project workspace now opens on a Health detail with methodology completion, missing next step, status source, source count, local files, and folder path. Deeper status moved behind selectable sections for Steps, Quality, Usage, and Capabilities. Project action hints live only in the global footer/help row.
|
|
18
|
-
- **Home is the command list.** The Go Home screen now renders the selectable/filterable command list directly. There is no separate Home hub plus Commands page; Projects stays as the dedicated library browser.
|
|
19
|
-
- **Semantic style token pass expanded.** `internal/styles` now owns shared table header/selection, focused/blurred input, input cursor, progress bar, warning, muted, and accent text styles; data tables, setup inputs, logs, audit details, quality warnings, spinners, cursors, and progress bars use those tokens instead of duplicating raw Lip Gloss foreground/background rules.
|
|
20
|
-
- **Selected-skill readiness reports shipped.** The Go Skills manager can now write and preview `working/audits/*-skill-readiness.md` from a selected skill with source grounding, boundary, maintenance, and disabled-state checks. The report is a skill-alignment audit and does not mutate the skill.
|
|
21
|
-
- **Charm TUI shell is the branch default.** `packages/go-tui/` contains the Bubble Tea/Lip Gloss/Glamour interface slice: Home command list, Projects browser, Project Workspace, Add Sources, Review Import, agent-backed Methodology, Assembly Review, table-based Source Board, Compile Console, Preview, `.mixtape` import, Capabilities read-only managers, copy/share/open actions, and Provider Preferences. It calls the existing Python core instead of reimplementing compile/fetch/share/import behavior.
|
|
22
|
-
- **Add Sources is the first UX replacement target.** The Go importer supports batched URLs, pasted article text, `--- source ---` article splitting, local files, skill names/paths, and GitHub skill URLs. In v2 projects it creates `mixtape/local-sources/`, `mixtape/local-sources/captured/`, and `mixtape/local-sources/skills/`; legacy projects keep the root-level equivalents.
|
|
23
|
-
- **Rollout switch flipped.** No-arg `liner` now launches the Go TUI through the npm shim. `LINER_TUI=go` remains accepted for compatibility, and `LINER_TUI=ink` is intentionally unsupported because the old Ink UI has moved to the repo-root `ink/` archive.
|
|
24
|
-
- **Next migration work.** Broaden live methodology acceptance only where it changes release risk. Full Codex no-custom-source and custom-source Go TUI passes now exist, along with imported-project no-refetch, deterministic failure/retry, scoped Claude Framing, and local preflight/release-smoke evidence. Repeat preflight/release-smoke from the release or platform-packaging context before publishing the default broadly. Repeat Claude only if bridge or isolation behavior changes. Use Huh only for isolated setup/config forms where it clearly improves the linear flow.
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Lessons from cli-writer-6 (2026-05-22)
|
|
29
|
-
|
|
30
|
-
Captured after comparing cli-writer-3 (v0.3 methodology, 15 sources) and cli-writer-6 (v0.4 methodology, 23 sources) on the same JTBD lineage. The v0.4 methodology changes are visibly paying off (sharper JTBD, task-oriented sections, source-kind chips, framing-gap audit firing). The items below are the next layer of methodology, prompt, and UX tightening suggested by what the artifact shows.
|
|
31
|
-
|
|
32
|
-
### Methodology — unverified content and the verification re-check
|
|
33
|
-
|
|
34
|
-
- **Auto re-run the perspectives audit at compile time when previously-unverified sources became verified.** v6 kept two YouTube sources (Küber, Pinsker) with curator notes acknowledging transcripts were unfetched at evaluation. By compile time `yt-dlp` produced real transcripts, but the perspectives audit's "unverified does not count" verdict from Phase 5 was never revisited. A `liner verify <folder>` command (or a compile-time hook) could re-check whether unverified perspective slots are now verifiable, and flag the gap closing as a soft signal back to the curator.
|
|
35
|
-
- **Curator-added sources should default to a sensible kind and prompt for it before commit.** The new `[+] add own` flow leaves `kind` unset. Either default to `principle` (the synthesis-writing default per `prompts.ts`) or open a four-button kind picker after URL submission. Cheap UX add; saves the curator a tape.yaml edit pass.
|
|
36
|
-
|
|
37
|
-
### Quality of evaluation — note-quality smell test
|
|
38
|
-
|
|
39
|
-
- **Add a Phase 5 note-quality smell test.** Notes that read as filler (e.g., "Skim a few command pages to calibrate density and rhythm") aren't earning weight in the consuming AI's loading decisions. A simple rubric — note must (a) cite what to read for, (b) name the bar it sets, (c) flag one limitation or scope boundary — would force the agent to deepen thin notes before shipping. This should be added after the required source-role fit test, not as "Test 6" (that slot is now taken).
|
|
40
|
-
|
|
41
|
-
### Compile-time fetcher chain
|
|
42
|
-
|
|
43
|
-
- **Wayback Machine as a fetcher tier between Playwright and the agent-summary fallback.** Cheap, no tokens, returns raw HTML the trafilatura extractor can use — full article instead of summary. Right move when richer fallback content matters for production-quality mixtapes. Discussed in the v6 session; deferred at curator's request because the agent-summary fallback is sufficient for current scope.
|
|
44
|
-
- **Source-specific compile retry.** Go Compile now lets the curator select a warning, open the source, or drop the matching source from `tape.yaml` before retrying the full compile. A true source-only retry remains future work if the Python compile core exposes a targeted refetch contract.
|
|
45
|
-
|
|
46
|
-
### Surface improvements
|
|
47
|
-
|
|
48
|
-
- **Library cross-reference at JTBD time (deferred — needs library).** When the library exists, surface "mixtapes in your library that match these JTBD keywords" during Phase 1 so the curator can opt to start from a related one and preserve sources/framings that worked.
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## Up next (functional — needed to "get everything working")
|
|
53
|
-
|
|
54
|
-
### Capture yourself / browser extension (next version)
|
|
55
|
-
|
|
56
|
-
- **Browser extension for authenticated/private sources.** Current safe workflow: the curator opens a paid/authenticated source in their own browser, copies the useful rendered article/body text, and pastes it into Liner's source inbox or saves it under `local-sources/` as a local file. Next version should make this explicit with a browser extension that captures from the already-authenticated browser session only after the user clicks the extension. It should not read Chrome cookies directly, install credentials, or run arbitrary commands.
|
|
57
|
-
- **Extension capture contract.** The extension should send a structured capture payload to Liner: title, canonical/current URL, captured_at, selected rendered text or readable rendered HTML, optional screenshot, and `private: true` by default. Liner stores the payload under `local-sources/captured/` and adds a `local_file` source with citation/provenance. Rendered HTML/text is preferred over raw "view source" because modern pages often ship app shells, scripts, hidden content, and cookie banners rather than the article the user sees.
|
|
58
|
-
- **Visual capture follow-up.** For pages where images, charts, layout, or UI state matter, add a later `visual_file`/image-aware source path instead of forcing screenshots through the text-only local-file pipeline. The extension can capture screenshots early, but Liner should label them clearly until downstream vision support is first-class.
|
|
59
|
-
|
|
60
|
-
### Slice 3 — agent integration polish
|
|
61
|
-
|
|
62
|
-
- **Post-default release guard.** Codex no-custom-source and custom-source now have full Go TUI passes through Quality, Synthesis, Assembly Review, Compile, and Preview; imported compiled projects have live no-refetch preview/share/copy/open-folder evidence; deterministic failure/retry has Go TUI smoke evidence; Claude Framing has scoped Go TUI evidence; and local preflight plus release smoke prove source-tree and clean-consumer packaging with default-Go shim dispatch. Latest local reports: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-14T21-49-23-208Z.md` and `/tmp/liner-go-live-acceptance/go-tui-release-smoke-2026-06-14T21-49-41-044Z.md`. Next acceptance work is repeating preflight/release-smoke from the release or platform-packaging context before publishing broadly.
|
|
63
|
-
- **Background-banner concurrent runs.** Current architecture cancels the run when the user navigates away from PhaseRunner. If we want to support "leave the agent working while I edit elsewhere," we need to lift run state to app context and add a hub banner. Not blocking — pause-and-resume is a real product question, not just an implementation one.
|
|
64
|
-
|
|
65
|
-
### Empirical-test path (now optional, post-0.5.2)
|
|
66
|
-
|
|
67
|
-
- **Optional empirical-test capture.** The empirical test was removed as a driven TUI phase in 0.5.2 (*compiled = complete*); it now lives as methodology guidance. If we ever want to bring it back as an *opt-in* tool, it could run the same question through two agent sessions (with and without `MIXTAPE.md`) and write the comparison to an artifact — invoked explicitly, never as a step that parks the hub.
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## Visual polish (optional, after functional work is done)
|
|
72
|
-
|
|
73
|
-
- **Boot logo screen.** Use `ink-gradient` + `ink-big-text` for a real branded splash on first paint. ~40KB extra deps.
|
|
74
|
-
- **Animated phase-transition flash.** When a phase moves to `complete` (status change detected on refresh), briefly flash the row with a pulsing background color.
|
|
75
|
-
- **Notification fade-out.** Right now notifications time out at 3500ms with a hard cut. A 200ms fade would feel more polished.
|
|
76
|
-
- **Custom mode picker.** Replace the current arrow + cyan-text mode chooser in the wizard with background-color chips (`[ Quick ]` / `[ Methodology ]`) styled like the brand chip.
|
|
77
|
-
- **measureElement-based responsive sizing.** For artifact previews, table widths in Gate UIs, etc. The hub uses percentage widths already; this would tighten the rest.
|
|
78
|
-
- **Per-screen color discipline pass.** The skill says magenta = "highlights / special items." We use it for header brand and step chips; could pick one home and be more consistent.
|
|
79
|
-
- **`ux-intro-outro` outro.** On `q` exit, show a one-line outro (Clack-style). The chip in the header is the intro; we don't currently have an outro.
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## Quality / hygiene
|
|
84
|
-
|
|
85
|
-
- **`ink-link` for clickable URLs** in error messages (e.g., the "missing agent" install hints).
|
|
86
|
-
- **Smoke test that mounts the TUI** — vitest currently only covers `yaml-io`. Could use `ink-testing-library` to render-test the wizard and hub.
|
|
87
|
-
- **NO_COLOR + FORCE_COLOR test.** Ink respects these; we should manually verify on a real `NO_COLOR=1` run that the brand chip degrades gracefully.
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Project-level (not TUI but related)
|
|
92
|
-
|
|
93
|
-
The TUI work isn't blocking on these, but they shape what we build next.
|
|
94
|
-
|
|
95
|
-
- Curating-mixtapes skill bundle second pass (worked examples for the five companion files).
|
|
96
|
-
- Methodology-mode validation: a planned side-by-side CLI vs. TUI design comparison.
|
|
97
|
-
- First library entry (Cowork synthesis → methodology-mode mixtape folder).
|
|
98
|
-
- MCP server scaffolding.
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
## Done
|
|
103
|
-
|
|
104
|
-
- 2026-06-25 — **Ink TUI decommissioned and archived.** The old React/Ink implementation moved to repo-root `ink/` for historical reference. `packages/tui` now remains only as the npm shim, Go launcher, TypeScript headless methodology runner, and curation-skill packaging surface. `LINER_TUI=ink` intentionally fails with a decommissioning message. The GitHub npm tarball workflow is paused while the Go TUI package shape is finalized.
|
|
105
|
-
- 2026-06-25 — **Phase 1 now validates the evidence plan before source discovery.** Framing must produce a `Capability Brief` and `Required source roles` in `working/01-jtbd-and-knowledge-map.md`. Each source role must say why it matters, what good evidence looks like, and minimum coverage. The TUI keeps the project on Phase 1 and resumes the agent with a repair request if the agent exits cleanly but misses this contract. The methodology docs now carry source-role searching in Phase 2 and source-role fit as a Phase 5 quality test.
|
|
106
|
-
- 2026-06-21 — **Codex reasoning effort became a per-phase setting.** `models.<agent>.<phase>` still accepts the original string shorthand, but now also accepts `{ model, reasoning_effort }`. Codex candidate discovery + evaluation default to `gpt-5-mini` with `model_reasoning_effort="low"` via `codex exec -c`, while framing/quality/synthesis/assembly stay on the user's Codex defaults unless configured. Object overrides patch the default setting field-by-field, so curators can raise just `reasoning_effort` without restating the model. String `""` still clears the phase back to the agent default. Tests cover model resolution, config parsing/round-trip, and Codex/Claude arg construction.
|
|
107
|
-
- 2026-06-17 — **Import Project uses the Bubbles file picker.** Go Home now says
|
|
108
|
-
`Import Project`, and the Import screen uses `charm.land/bubbles/v2/filepicker`
|
|
109
|
-
with `.mixtape` filtering instead of a custom scan table plus typed path row.
|
|
110
|
-
The screen shows current folder, destination, and no-refetch mode as
|
|
111
|
-
label/value facts while the footer owns picker navigation and import keys.
|
|
112
|
-
The Ink fallback copy now uses the same `Import Project` name.
|
|
113
|
-
- 2026-06-16 — **V2 Liner project shape adopted.** New project scaffolds now use root `liner.yaml` plus `mixtape/` for corpus artifacts, with legacy root-level mixtape folders still readable. Go, TypeScript, and Python path helpers resolve corpus files through the canonical layout; local files, skills, status, share/import, replay, methodology progress, usage, and composition paths were updated. Visible Go labels now use `New Liner` and `Capabilities` instead of the old duplicated mixtape/capability wording. Tests: full Python suite, full Go suite, full TUI Vitest suite, package builds, and Go preflight. Evidence: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-16T20-56-45-853Z.md`.
|
|
114
|
-
- 2026-06-16 — **Provider Preferences and navigation footer cleaned up.** The former Settings body no longer includes command help or current-project banner metadata; it is now focused on provider preference, active provider, installed CLIs, model defaults, config path, and the `a` provider-switch action. The Home command row is `Provider Preferences`, footer help labels `g` as provider, non-text screens advertise `h home` and `esc back`, and Source Board now handles `esc` instead of swallowing it. Tests: focused Go app suite.
|
|
115
|
-
- 2026-06-16 — **Projects detail wrapping and footer keys polished.** The Projects browser detail pane now budgets the right column with its gutter and wraps long metadata values as indented continuation rows instead of allowing terminal soft-wrap back into the left list. The selected-project metadata label changed from `State` to `Status`, status values render display-cased, Provider Preferences uses `g`, and Projects short help now includes `esc back`. Tests: Projects detail/status regression, narrow Projects wrapping regression, provider key regression, full Go suite, package builds, and Go preflight. Evidence: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-16T20-21-15-360Z.md`.
|
|
116
|
-
- 2026-06-16 — **Go TUI navigation chrome deduplicated.** Home/Commands no longer renders the in-body `Commands ... System` divider, Bubble's built-in command-list `up/down/filter/more help` row is disabled, and expanded `?` help stays in the footer instead of opening a body `Keys` table. Command-list selected/filter-match styling now uses Liner orange instead of Bubble's default purple, selected descriptions stay muted grey, and `Just next` cues use a softer orange than primary actions. Tests: Home command-list/body-help regressions, color-token regressions, full Go suite, package builds, and Go preflight. Evidence: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-16T20-11-46-819Z.md`.
|
|
117
|
-
- 2026-06-16 — **Go TUI UX cleanup pass tightened Health, Capabilities, Projects, and narrow widths.** Project Health now surfaces provider readiness when methodology is next, labels local artifact inference, and shows status failure cause/core-binary detail. Capabilities now renders `Area` / `Status` / `Next` readiness rows for `LINER.md`, skills, audits, impact tests, children, lineage, and composition instead of raw counts. Projects no longer has a body shortcut strip, and narrow-width regressions now cover Projects, Project Health, Capabilities, Settings, and LINER review. Tests: focused Go app/core suites, full Go suite, package builds, Go preflight, and release smoke. Evidence: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-16T19-49-23-455Z.md`, `/tmp/liner-go-live-acceptance/go-tui-release-smoke-2026-06-16T19-49-52-677Z.md`.
|
|
118
|
-
- 2026-06-16 — **Project duplicate action row removed.** Project no longer renders the orange inline action row above `Just next`; the global footer/help row is the only action-hint surface. The now-stale Project inline-action helper was removed so the duplicate row does not come back accidentally. The Go status bridge now retries without `--no-write` when an older bundled core rejects that option. Tests: Project action-row regression, status fallback regression, focused Go core/app suites.
|
|
119
|
-
- 2026-06-16 — **Go terminal handoff refreshed and stale runbooks archived.** The current continuation document now lives at `docs/tui/GO_TERMINAL_AGENT_HANDOFF_2026-06-16.md`, with `docs/README.md` as the docs entrypoint. Older Go migration runbooks moved to `/Users/arturo/Documents/Projects/0-archive/liner-archive/2026-06-25-root-cleanup/go-tui-legacy-runbooks/go-tui-archive-2026-06-16/` and should be treated as historical evidence only. Root/package READMEs now describe the Go default and Ink fallback accurately.
|
|
120
|
-
- 2026-06-16 — **Home collapsed into Commands.** The Go Home screen now uses the command-list surface directly instead of a separate splash/action-line hub plus a Commands page. Launch/home shows the selectable command list, Enter runs the selected command, `/` filters commands, the visible `Home` command row was removed, and `h`/`:` from other screens return to the same Home commands surface. When a project is open, Home exposes a `Current project` command so users can get back to the workspace without relying on hidden previous-screen behavior. Tests: Home command list rendering, selected command routing, app package suite.
|
|
121
|
-
- 2026-06-16 — **Project screen reorganized into selectable sections.** Project now defaults to a Health view instead of dumping workspace, progress, quality, usage, capabilities, and actions all at once. The left section list exposes Health, Steps, Quality, Usage, and Capabilities; the detail pane shows the selected content. Health makes project completion legible with status, primary action, methodology completion count, missing next step, status source, source count, local files, and folder. Steps shows the full methodology table when selected, so completed/missing phases are easier to inspect without needing a separate doctor command. Tests: Project section/detail regressions, Project action-row removal, run estimate/usage/quality/capabilities section coverage, full Go TUI suite.
|
|
122
|
-
- 2026-06-15 — **Home split into command hub plus Projects browser.** Historical intermediate: Home stopped rendering the project table directly and Projects became a separate browser. Superseded on 2026-06-16 by Home using the command list directly.
|
|
123
|
-
- 2026-06-15 — **Home actions and provider page added.** Historical intermediate: Home exposed New, Import, Settings, filter, and command access before the command-list Home replaced the inline action row. Superseded by Provider Preferences, which no longer includes command help in the body.
|
|
124
|
-
- 2026-06-14 — **Assembly/compile review confidence fixes.** Review Local Sources and Review Draft Sources now render an explicit `>` marker in the selected row so scrolling and toggling stay visually trustworthy. Compile Console exposes `v` to open the full compile log in a scrollable preview, and previews now remember their origin screen so `esc` returns to Compile Console or the originating manager instead of dropping to Project. Tests: selected-row/toggle regressions, compile-log preview return, MIXTAPE preview return, app package suite.
|
|
125
|
-
- 2026-06-14 — **Impact Tests can write readiness reports.** Selecting a run-linked artifact and pressing `v` now writes/previews `working/evals/readiness/*-readiness.md` with per-variant context readiness, output coverage, score coverage, next action, and blocking items before comparison or judge review. It does not execute model runs, run a judge, or mutate outputs/scores. Tests: readiness action/help visibility, report creation/content, readiness area discovery, full Go TUI suite.
|
|
126
|
-
- 2026-06-14 — **Unused Go box style tokens removed.** `internal/styles` no longer exports `SummaryBox` or `ModalBox`, keeping the shared visual grammar aligned with the linear/table-first screens. Tests: full Go TUI suite.
|
|
127
|
-
- 2026-06-14 — **Go TUI release evidence refreshed after Home and style polish.** `npm --prefix packages/tui run acceptance:go` passed package build, Go binary version, default/explicit Go shim dispatch, Ink fallback, Go tests, and npm package dry-run. `npm --prefix packages/tui run acceptance:go -- release-smoke` passed clean-consumer tarball install plus installed shim/binary version/default-Go checks. Evidence: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-14T21-49-23-208Z.md` and `/tmp/liner-go-live-acceptance/go-tui-release-smoke-2026-06-14T21-49-41-044Z.md`.
|
|
128
|
-
- 2026-06-14 — **Go TUI preflight refreshed after child-routing and Project table slices.** `npm --prefix packages/tui run acceptance:go` passed package build, Go binary version, default/explicit Go shim dispatch, Ink fallback, Go tests, and npm package dry-run after generated child-routing and Project capability-summary table changes. Evidence: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-14T21-07-59-919Z.md`.
|
|
129
|
-
- 2026-06-14 — **Project capability inventory is table-first.** The Project screen now renders `LINER.md`, skills, audits, Impact Tests, and child/lineage status through the shared `Field`/`Value` metadata table instead of stacked label/value lines. This keeps the main management landing page aligned with the simpler capability-manager grammar. Tests: Project capability-summary table regression, full Go TUI suite.
|
|
130
|
-
- 2026-06-14 — **Generated LINER.md routes child mixtapes.** When `children/*` references exist, the reviewed deterministic draft now includes a Child Routing table with child name, route, status, and reference path using the same route/status helpers as Composition. The rules keep children nested by reference, route specialized work to the narrowest matching child, and require a Composition route audit for overlaps or review-status children. Tests: focused child-routing LINER draft regression, full Go TUI suite.
|
|
131
|
-
- 2026-06-14 — **Generated LINER.md indexes existing skills.** When `skills/*.md` files exist, the reviewed deterministic draft now renders an available-skill table with each skill path, local grounding/boundary status, and usage caution instead of generic no-skill starter copy. The Skills section tells external agents to load matching skills, check `MIXTAPE.md` before relying on weak skills, and draft new skills under `working/skills/` for review. Tests: focused skill-aware LINER draft regression, full Go TUI suite.
|
|
132
|
-
- 2026-06-14 — **Go TUI preflight refreshed after source/LINER slices.** `npm --prefix packages/tui run acceptance:go` passed package build, Go binary version, default/explicit Go shim dispatch, Ink fallback, Go tests, and npm package dry-run after the source metadata and strengthened LINER.md operating-contract changes. Evidence: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-14T20-58-27-111Z.md`.
|
|
133
|
-
- 2026-06-14 — **Generated LINER.md has a stronger operating contract.** The deterministic reviewed draft now includes an agent entry contract, working loop, resource map, and `Impact Test Rules`. The entry contract frames `LINER.md` as the artifact's operating conscience, tells external agents to load it before `MIXTAPE.md`, apply the specific corpus instead of generic advice, name grounding for strong recommendations, and draft artifact changes under `working/` for review. Tests: focused LINER draft/audit regressions, full Go TUI suite.
|
|
134
|
-
- 2026-06-14 — **Source-selection details use metadata tables.** Review Local Sources and Source Board now show selected source metadata as compact `Field`/`Value` rows, including state, destination, priority, kind, section, and note. Assembly Review now shows a selected proposed-source metadata section before accept/toggle actions. Tests: focused source/assembly regressions, full Go TUI suite.
|
|
135
|
-
- 2026-06-14 — **Go TUI acceptance refreshed after metadata tables.** `npm --prefix packages/tui run acceptance:go` passed package build, Go binary version, default/explicit Go shim dispatch, Ink fallback, Go tests, and npm package dry-run after the latest capability-manager polish. `npm --prefix packages/tui run acceptance:go -- release-smoke` passed clean-consumer tarball install plus installed shim/binary version/default-Go checks. Evidence: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-14T20-48-59-976Z.md` and `/tmp/liner-go-live-acceptance/go-tui-release-smoke-2026-06-14T20-50-32-647Z.md`.
|
|
136
|
-
- 2026-06-14 — **Selected capability details use metadata tables.** Skills, Audits, Impact Tests, and Composition now show selected artifact metadata as compact `Field`/`Value` tables. Cleanup packets surface their source audit/type, Impact Tests surface run/taskset/summary/source-artifact links, and Composition surfaces route/reference fields before opening Markdown. Tests: focused metadata regressions, full Go TUI suite.
|
|
137
|
-
- 2026-06-14 — **Impact Tests packet artifacts inherit run context.** Automation and judge packets that contain a `Run packet:` reference now show the selected run's coverage table and expose contextual comparison/judge actions instead of the generic taskset action. Comparison reports can also be created from these packet artifacts. Tests: automation-packet coverage/actions and comparison creation, full Go TUI suite.
|
|
138
|
-
- 2026-06-14 — **Audit Center can create external cleanup packets.** Selecting an audit report now shows `p Create agent cleanup packet`, which writes/previews `working/audits/<date>-<type>-agent-cleanup-packet.md` with parsed findings, allowed outputs, and hard boundaries for an external cleanup agent. It does not run an agent or apply changes. Tests: packet creation, type inference, no production mutation, help/action visibility, full Go TUI suite.
|
|
139
|
-
- 2026-06-14 — **Audit Center can route skill-alignment findings into reviewed skill repair.** Selecting a `skill alignment` audit now shows `g Draft first skill repair`; it reads the selected report, chooses the first repairable skill finding, and opens the existing Skill Grounding review draft. The active skill file is unchanged until the repair draft is accepted. Tests: audit-to-skill repair routing, no pre-review mutation, help/action visibility, full Go TUI suite.
|
|
140
|
-
- 2026-06-14 — **Impact Tests show selected-run coverage.** Selecting a run packet, summary, or comparison now renders a compact `Run coverage` table with per-variant output completion, score completion, and context readiness. This makes manual with-vs-without runs easier to manage while keeping model execution and judge scoring external. Tests: selected-run coverage regression, full Go TUI suite.
|
|
141
|
-
- 2026-06-14 — **Composition artifact logic split from the screen.** `internal/app/composition.go` now owns Composition navigation/rendering/review flow, while `internal/app/composition_artifacts.go` owns nesting drafts, copy packets/snapshots, route audits, promotion audits, and Markdown renderers. This gives future nesting, merge, and route-audit work a clearer home. Tests: full Go TUI suite.
|
|
142
|
-
- 2026-06-14 — **Impact Tests packet logic split from the screen.** `internal/app/evals.go` now owns Impact Tests navigation/rendering only, while `internal/app/eval_packets.go` owns taskset/run/summary/runner/comparison/judge artifact writing and the Markdown parsers used for comparison coverage. This keeps future in-TUI impact execution or judge scoring out of the screen controller. Tests: full Go TUI suite.
|
|
143
|
-
- 2026-06-14 — **Go app lifecycle split from update loop.** `internal/app/lifecycle.go` now owns Bubble Tea model construction, `Init`, and root `View`; `internal/app/app.go` now focuses on `Update` and message/component orchestration. This dropped `app.go` from 509 lines to 332 after the capability screens had grown it again. Tests: full Go TUI suite.
|
|
144
|
-
- 2026-06-14 — **Go TUI acceptance refreshed after Impact Tests.** `npm --prefix packages/tui run acceptance:go` passed package build, Go binary version, default/explicit Go shim dispatch, Ink fallback, Go tests, and npm package dry-run. `npm --prefix packages/tui run acceptance:go -- release-smoke` passed clean-consumer tarball install plus installed shim/binary version/default-Go checks. Evidence: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-14T20-15-35-647Z.md` and `/tmp/liner-go-live-acceptance/go-tui-release-smoke-2026-06-14T20-15-56-619Z.md`.
|
|
145
|
-
- 2026-06-14 — **Go Eval Lab is now Impact Tests.** The visible Go surface now says `Impact Tests` in Project, Home commands, screen title, action tables, help, empty states, and generated Markdown headings while preserving `working/evals/` paths for compatibility. New tasksets write `*-impact-taskset.md` and document the with-vs-without protocol: fresh sessions, identical prompts, baseline with no project files, corpus with `MIXTAPE.md`, operating layer with `LINER.md`, and skills with `skills/*.md`. Runner/comparison/judge packets now frame themselves as impact-test artifacts and keep model execution/judging external and explicit. Tests: full Go TUI suite.
|
|
146
|
-
- 2026-06-14 — **Go Compile warnings have per-source recourse.** Compile result warnings now render as a selectable table with `Warning actions`: select a warning, open its source, drop the matching source from `tape.yaml`, or retry compile. Dropping updates `tape.yaml` and the in-memory source list but leaves the existing result marked stale until retry, avoiding a false refreshed state. Tests: warning selection/help regression, drop-source persistence regression, narrow warning table regression, full Go TUI suite.
|
|
147
|
-
- 2026-06-14 — **Source Review uses an action table for source decisions.** Review Local Sources now shows save/toggle/remove/add-more controls in the shared `Actions` table and removes the old `Space toggles...` helper sentence. The selected-source detail remains plain text below the source table. Tests: Source Review action-table/prose regressions, full Go TUI suite.
|
|
148
|
-
- 2026-06-14 — **Go state copy no longer teaches shortcuts inline.** Source, clarification, methodology error, and audit-empty states now describe the next action without `Press ...` shortcut prose; footer help and action tables own the key labels. Verification: production-code shortcut-prose scan, full Go TUI suite.
|
|
149
|
-
- 2026-06-14 — **Go setup source capture uses a checkbox toggle.** The Custom sources step now renders `☑ Yes / ☐ No` instead of bracketed text plus an inline `←/→ switch` helper; footer help owns the shortcut and the form stays cleaner. Tests: source-capture selector regression, full Go TUI suite.
|
|
150
|
-
- 2026-06-14 — **Go setup step subtitles follow the active field.** The linear setup form no longer says `Step 1 of 4` on every field; it now announces Name, Job, Curator, and Source Capture as steps 1-4 while keeping the existing inline no-box layout. Tests: setup subtitle regression, full Go TUI suite.
|
|
151
|
-
- 2026-06-14 — **Ink fallback compile warnings are width-aware.** The legacy Ink `CompileView` now formats result warning URL/message rows from the active terminal column count and the labeled-box content budget instead of the old fixed `50` URL + `70` message split. This keeps partial/failure result cards from wrapping awkwardly while Go remains the default TUI. Tests: `CompileView` warning formatter regression, full Vitest suite, TypeScript typecheck.
|
|
152
|
-
- 2026-06-14 — **Run estimate history can be cleared from Home commands.** Home commands expose `Clear run estimate history` only when global samples exist, keeping Project focused on creation/run work. Clearing removes `~/.liner/run-estimates.jsonl`, leaves each project's local `.liner-runs` logs intact, and writes a reset marker so older local logs do not immediately re-seed the global history. Tests: global clear/reset regression, command visibility regression, full Go TUI suite.
|
|
153
|
-
- 2026-06-14 — **Project methodology progress hydrates from status JSON.** `liner status --json --no-write` now refreshes manifest/status data without writing `process.json`, and Go loads that status asynchronously on project open/import/compile. The Project `Methodology progress` table prefers the typed CLI payload, falls back to local artifact checks if status loading fails, stays hidden for untouched/source-only/compiled-only projects, does not accept gates while rendering, and remains width-safe/no-box. Tests: CLI no-write status, Go status parser, async status cache/stale-error handling, compact progress visibility, hidden-source/compiled-only regressions, no-gate-mutation/width checks, full Go TUI suite.
|
|
154
|
-
- 2026-06-14 — **Expanded Go help became a linear table.** Historical intermediate, superseded on 2026-06-16 by footer-only expanded help. Pressing `?` still used Bubbles help state, but the full keymap rendered as a plain `Keys` table in the current screen instead of a modal/box or long inline shortcut sentence. The footer collapsed to `? less help` while expanded, and Skills, Audits, Evals, and Composition stopped repeating `? shows every...` helper copy under their action tables. Tests: expanded-help no-box/width regression plus full Go TUI suite.
|
|
155
|
-
- 2026-06-14 — **`liner init` accepts metadata flags.** `liner init <folder>` now supports `--mode quick|methodology`, `--jtbd`, `--title`, `--description`, and `--curator`. Invalid mode fails before scaffolding; provided metadata rewrites `tape.yaml`, and `--jtbd` also prefills `working/01-jtbd-and-knowledge-map.md` so the CLI path matches the TUI wizard's agent inputs. Tests: metadata flag and invalid-mode regressions; full Python suite passed.
|
|
156
|
-
- 2026-06-14 — **`liner status --json` now includes phase status.** The existing manifest JSON shape is preserved and augmented with `progress`, `gates`, and a cursor-driven `phases` array for Framing through Compile. Each phase reports status, artifact existence/real-content checks, gate acceptance where relevant, and run-log count/latest exit code from `process.json`, so the Go TUI can eventually consume one CLI contract instead of duplicating filesystem checks. Missing `.liner-progress.json` is inferred from the same consecutive-prefix artifact/gate rules used by the TUI migration. Tests: CLI JSON report and inferred-progress regressions; full Python suite passed.
|
|
157
|
-
- 2026-06-14 — **Claude methodology runs hard-scope the tool surface.** Claude now launches with `--tools Read,Write,Edit,Glob,Grep,WebFetch`, the existing `--allowedTools`, `--disallowedTools Bash Task WebSearch ToolSearch`, and `--disable-slash-commands`, so the init stream exposes only the methodology file/fetch tools and hard-denies shell, subagent, and broad search tools. Local Claude 2.1.146 accepted the flag combination and reported init tools `Edit/Glob/Grep/Read/WebFetch/Write` with zero MCP servers; `acceptance:go verify-project --expect claude-framing` now checks the exact init tool surface and the absence of Bash/Task/ToolSearch/WebSearch. Remaining caveat: hooks/plugins/skills metadata still loads because `--bare` changes auth behavior to API-key/settings-only; revisit that only if we choose a dedicated Claude settings/auth contract. Tests: runner arg regressions, full TUI test/typecheck, verifier fixture report `/tmp/liner-go-live-acceptance/go-tui-project-liner-claude-verify-UMmj0x-claude-framing-2026-06-14T19-06-41-719Z.md`.
|
|
158
|
-
- 2026-06-14 — **Web compile failures include diagnostic details.** Python web fetch hard-failure messages now include category (`paywall`, `not_found`, `forbidden`, `js_required`, `tls`, `network`, or `unknown`), HTTP status when available, content type, and a normalized first-500-byte body preview. Existing CLI/JSON/Go warning surfaces inherit the richer message; structured warning fields remain future work only if filtering/grouping is needed. Tests: web handler failure detail, truncation, and TLS category regressions.
|
|
159
|
-
- 2026-06-14 — **Project estimates travel across libraries.** Go now syncs token-bearing local `.liner-runs/<phase>/*.jsonl` observations into `~/.liner/run-estimates.jsonl`, capped to the latest 600 valid entries and storing only phase, token count, timestamp, and a hashed run-log identity. The `Run estimate` table prefers active-library medians, then global medians once a phase has three global samples, then the seed baseline. `LINER_ESTIMATE_HISTORY` can redirect or disable the file for tests/isolated runs. Tests: global phase/full-methodology median regressions; preflight: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-14T19-00-30-354Z.md`.
|
|
160
|
-
- 2026-06-14 — **Project estimates use active-library medians when available.** The `Run estimate` table now scans sibling project `.liner-runs/<phase>/*.jsonl` logs and uses the median once a phase has at least three token-bearing samples. Whole-methodology estimates switch to local medians only when every phase has enough samples; otherwise the seed baseline remains. Tests: local phase median and full-methodology median regressions.
|
|
161
|
-
- 2026-06-14 — **Project shows a pre-flight methodology run estimate.** When Enter would start or continue methodology, Go Project renders a compact `Run estimate` table with the next phase token estimate and a full-methodology range. The first fallback baseline uses the 2026-05-28 Opus seed data (`~7M-9M` tokens overall, mostly cached reads). Tests: Project estimate visibility and pending-gate no-mutation regressions.
|
|
162
|
-
- 2026-06-14 — **Phase 6 synthesis requires operating sections.** The synthesis prompt, guidance, skill docs, and artifact validator now require `## Generative rules` and `## Stances this corpus takes`, turning the synthesis into explicit operating rules plus corpus stances instead of only prose framing. Tests: synthesis prompt and artifact-validator regressions; build: `npm --prefix packages/tui run build:package`.
|
|
163
|
-
- 2026-06-14 — **Phase 5 requires a note-quality smell test.** Quality now runs six tests: Test 6 checks every kept/trim curator note for a use cue, value/bar, and boundary, repairs weak notes in `working/03-evaluation.yaml` from existing evidence, and reports checked/repaired counts in `working/04-quality-checks.md`. The Phase 5 prompt, resume nudge, methodology docs, packaged skill docs, and artifact validator all require the new section. Tests: prompt, resume, and quality validator regressions.
|
|
164
|
-
- 2026-06-14 — **MIXTAPE curator notes carry source-kind chips.** The Python renderer now prepends `**[kind]**` to curator notes in both the `MIXTAPE.md` source index and each `sources/NN-*.md` file when a source has kind metadata, while leaving legacy kindless notes plain and avoiding duplicate chips. Tests: MIXTAPE index and source-file renderer regressions.
|
|
165
|
-
- 2026-06-14 — **Go Add Sources defaults curator-added sources to `principle`.** URLs, YouTube links, pasted articles, local files, skill names/paths, and GitHub skill URLs now write `kind: principle` through the Go importer, and the kind persists when active sources are appended to `tape.yaml`. This keeps the capture flow linear; an explicit kind picker remains optional future work if the default proves too blunt. Tests: mixed-source importer default and tape append persistence regressions.
|
|
166
|
-
- 2026-06-14 — **Source Board fits narrow terminals.** The advanced source review table now budgets for Bubbles table padding, truncates saved paths by the active column width, and wraps/truncates selected-detail text so long local-source rows stay within the 60-column app minimum. Tests: narrow Source Board width regression.
|
|
167
|
-
- 2026-06-14 — **Compile warning rows are width-aware.** Go Compile result warnings now allocate URL/message truncation from the current result width instead of using a fixed URL budget, keeping long warning rows inside narrow terminals. Tests: narrow compile warning width regression.
|
|
168
|
-
- 2026-06-14 — **Project surfaces cumulative runner usage.** Go Project reads `.liner-runs/**/*.jsonl` and renders a compact `Run usage` table with run count, total tokens, input/output/cache buckets, and cost when the agent reports it. The parser accepts Codex `turn.completed`, Claude/result `usage`, and normalized `kind: tokens` events; actual usage now complements the seed pre-flight estimate. Tests: runner usage aggregation and Project view regressions.
|
|
169
|
-
- 2026-06-14 — **Project surfaces the Phase 5 perspectives audit.** Go Project parses top-level `Perspectives audit` bullets from `working/04-quality-checks.md` and renders a compact `Perspective / Coverage / Evidence` table, keeping stance-represented, concerns-covered, and gap statuses visible without opening Markdown. Tests: perspectives parser and Project view regressions.
|
|
170
|
-
- 2026-06-14 — **Project surfaces Phase 5 kind balance.** Go Project parses the Test 5 `Distribution:` line from `working/04-quality-checks.md` and renders a compact `Quality balance` table with role counts plus `covered`, `zero defended`, or `needs defense` statuses. This makes source-kind gaps visible without opening the Markdown report. Tests: quality parser and Project view regressions.
|
|
171
|
-
- 2026-06-14 — **Management status notes are state-only.** Skills, Audits, Evals, Composition, Source Review, and Assembly Review now use notes for loaded/written/review state while action tables and help own the shortcuts. Audit/Eval creation feedback no longer says `Enter previews it`. Tests: focused management note regressions plus full Go TUI suite.
|
|
172
|
-
- 2026-06-14 — **Import Mixtape controls use an action table.** Import now shows import/rescan actions in a compact table instead of an inline `Enter imports...` helper sentence, while keeping the no-refetch behavior visible in the import action row. Tests: import action-table regression.
|
|
173
|
-
- 2026-06-14 — **Add Sources controls use an action table.** The source-entry screen now shows add/finish/open-folder actions in a contextual table instead of a prose `Press f when done` helper; `Open local-sources` appears only after the folder exists. Tests: Add Sources action-table and folder-gating regressions.
|
|
174
|
-
- 2026-06-14 — **Review draft screens use action tables.** `Review LINER.md Draft`, `Review Composition Draft`, Skill review variants, and Audit cleanup review screens now share the same accept/open/discard/return action-table grammar instead of sentence footers like `Enter accepts. o opens...`. Tests: reviewed-draft action-table regressions.
|
|
175
|
-
- 2026-06-14 — **Shared Go action tables fit narrow terminals.** `newActionTable` no longer forces a 72-column minimum inside the 60-column app clamp, and row cells truncate by computed column width instead of expanding the table. Tests: shared narrow-width action-table regression.
|
|
176
|
-
- 2026-06-14 — **Assembly Review uses an action table.** The core draft-source review step now shows accept, toggle, open, and discard in a compact `Actions` table instead of a long inline shortcut sentence. Tests: Assembly Review action-table regression.
|
|
177
|
-
- 2026-06-14 — **Review Local Sources shows selected source detail.** The source review table stays compact for scanning, while the selected row now renders its source label, type/state, and saved path below the table as a plain detail block. The table also refreshes columns from the current terminal width during render. Tests: long-source selected-detail width regression.
|
|
178
|
-
- 2026-06-14 — **Project source entry is no longer duplicated.** Empty projects that need sources show only `enter Add sources` in Project help; `a Add more sources` appears after Enter belongs to methodology, preview, draft review, or another primary action. Tests: focused Project action/help regressions.
|
|
179
|
-
- 2026-06-14 — **Project local-files row follows lazy source folders.** Project now shows `Local files not created yet` until `local-sources/` exists, then shows the real folder path. This keeps the workspace summary from advertising a dead path after source-folder creation became lazy. Tests: focused Project local-sources row regression.
|
|
180
|
-
- 2026-06-14 — **Local source folders are lazy.** Source preview no longer creates `local-sources/` for URL, pasted-article, or local-file previews, and opening/creating/importing projects no longer manufactures empty source folders. Python `init_project` now follows the same lazy-folder contract. Save paths still create folders when artifacts or manifests are written. Tests: source importer preview-purity regression, app open-project regression, and Python project/local-file handler updates.
|
|
181
|
-
- 2026-06-14 — **Local source folder controls are state-aware.** Add Sources now explains that `local-sources/` will be created after the first saved source instead of showing a missing folder path, and both Add Sources `ctrl+o` plus Review Local Sources `o` stay hidden/guarded until the folder exists. Tests: focused Go app source-screen regressions.
|
|
182
|
-
- 2026-06-14 — **Full custom-source methodology passed after preservation fix.** The custom-source smoke project `/tmp/liner-go-live-acceptance/go-tui-custom-source-smoke/custom-source-smoke` exposed two issues: Candidate discovery could search too long on custom-source-heavy tapes, and Assembly could drop `local_file`/`skill` rows by normalizing the final tape to URL/video sources. Phase 2 now has bounded search/resume prompts; Assembly now preserves existing local-file and skill identities, validates against the current tape, and the verifier supports `--expect custom-compiled`. Corrected Go TUI evidence: 27-source draft accepted, Preview reported `27 sources (1 videos, 22 articles, 2 local files, 2 skills)`, and `custom-compiled` passed with report `/tmp/liner-go-live-acceptance/go-tui-project-custom-source-smoke-custom-compiled-2026-06-14T15-54-12-549Z.md`. One remote skill URL returned 404, producing a clear partial-compile warning while preserving the source row.
|
|
183
|
-
- 2026-06-14 — **Scoped Claude Framing passed through the Go TUI.** A direct TypeScript headless bridge smoke first ran Claude Framing against `/tmp/liner-go-claude-framing-smoke-DnatPR/library/claude-framing-smoke`, wrote `working/01-jtbd-and-knowledge-map.md`, recorded Claude model/session/version metadata, loaded zero MCP servers, and closed successfully. The real Go TUI then ran Claude Framing against `/tmp/liner-go-claude-tui-framing-smoke-rX7IaX/library/claude-tui-framing-smoke` with `LINER_AGENT=claude`: Methodology streamed Claude events, completed Framing, accepted `gate0`, advanced to Candidate discovery, and returned to Project after Escape. `--expect claude-framing` passed with report `/tmp/liner-go-live-acceptance/go-tui-project-claude-tui-framing-smoke-claude-framing-2026-06-14T14-59-45-604Z.md`.
|
|
184
|
-
- 2026-06-14 — **Go runner cancellation now interrupts before hard kill.** Cancelling a running methodology phase now sends an interrupt to the Node headless wrapper and uses a short wait delay before force-kill fallback, giving the wrapper time to cancel Claude/Codex and write the run-log `_liner_close` marker. Regression coverage: `TestStartInterruptsRunnerOnContextCancel`.
|
|
185
|
-
- 2026-06-14 — **Deterministic Go TUI failure/retry smoke passed.** Added `packages/tui/scripts/go-tui-fake-headless-runner.mjs`, drove the real Go TUI against `/tmp/liner-go-failure-retry-smoke-Tm1urg/library/failure-retry-smoke`, confirmed a fresh Framing failure showed retry copy, pressed `r`, resumed the saved fake thread, wrote `working/01-jtbd-and-knowledge-map.md`, accepted `gate0`, and intentionally stopped Candidate discovery. `--expect failure-retry` passed with report `/tmp/liner-go-live-acceptance/go-tui-project-failure-retry-smoke-failure-retry-2026-06-14T14-43-21-528Z.md`.
|
|
186
|
-
- 2026-06-14 — **Live Go TUI import/share smoke passed.** A compiled Codex acceptance project was opened through the real Go TUI, Preview opened from Project, `s` wrote a `.mixtape`, `y` copied `MIXTAPE.md`, and `ctrl+o` triggered the folder opener. The shared archive was imported through Home -> Import into `/tmp/liner-go-import-share-smoke-Ve8yxr/imported-library` with no refetch, landed on Project as `Ready to use`, and opened Preview. `--expect imported-compiled` passed with report `/tmp/liner-go-live-acceptance/go-tui-project-go-tui-codex-full-imported-compiled-2026-06-14T14-36-20-590Z.md`.
|
|
187
|
-
- 2026-06-14 — **Go share status shows the archive path only.** The import/share smoke exposed that Go displayed the raw Rich CLI output (`Wrote ... (entries)`) in the status note after share. `core.Share` now parses ANSI/wrapped share output and returns only the `.mixtape` archive path, with fallback to `<project>.mixtape`. Tests: `go test ./internal/core`; live recheck showed `Shared archive: /tmp/...`.
|
|
188
|
-
- 2026-06-14 — **Full live Go TUI Codex no-custom-source acceptance passed.** The acceptance project `/tmp/liner-go-live-acceptance/go-tui-codex-full/go-tui-codex-full` continued from section-scoped Evaluation through Quality, Synthesis, Assembly, Assembly Review, Compile, and Preview in the real Go TUI. Quality added kind metadata for 31 kept sources (16 reference, 6 principle, 6 prescription, 3 example), Synthesis wrote 1,538 words, Assembly proposed 54 sources, Assembly Review accepted all 54, and Compile fetched 54/54 usable sources with 3 warnings. `--expect compiled` passed with report `/tmp/liner-go-live-acceptance/go-tui-project-go-tui-codex-full-compiled-2026-06-14T14-18-28-892Z.md`.
|
|
189
|
-
- 2026-06-14 — **Phase 5 Quality is bounded and validated.** A live Quality resume exposed open-ended search/backfill behavior before `working/04-quality-checks.md` was written. Phase 5 prompts now classify existing kept/trim rows first, cap search/backfill attempts, and resume with a write-the-report nudge. `artifact-validation.ts` now validates Quality output for Tests 1-6, Perspectives audit, the kind distribution line, and note-quality. Tests: `prompts.test.ts`, `runner.test.ts`, `artifact-validation.test.ts`; build: `npm --prefix packages/tui run build`.
|
|
190
|
-
- 2026-06-14 — **Go Compile marks progress complete after usable results.** The live compiled project wrote `MIXTAPE.md` but left `.liner-progress.json` pointing at Compile. The Go compile completion handler now records Compile complete when the result has a usable `MIXTAPE.md`, including partial-warning compiles that produced output, and waits when no usable result exists. Tests: `go test ./internal/app`, `go test ./...` from `packages/go-tui`.
|
|
191
|
-
- 2026-06-14 — **Visible methodology logs hide connector/router stderr noise.** The TypeScript runner and Go formatter now suppress live Codex raw lines for MCP/OAuth connector refresh chatter and the recoverable `write_stdin failed: stdin is closed` router message, while keeping direct Codex auth/config errors visible and preserving every raw line in `.liner-runs/`. Tests: Go raw-log formatter and TypeScript `shouldSurfaceAgentStderr` regressions.
|
|
192
|
-
- 2026-06-14 — **Methodology prompts carry workspace discipline.** Fresh, section-scoped, resumed, and artifact-closure agent prompts now tell agents to treat the mixtape project as an artifact folder unless `.git` is present, avoid `git diff`/repo introspection just to verify generated files, and prefer Node/Python validation snippets over Ruby-version-sensitive helpers like `Array#tally`. Tests: prompt and resume/closure prompt regressions.
|
|
193
|
-
- 2026-06-14 — **Live-run follow-ups captured.** The Codex acceptance run produced prompt hygiene lessons around project-folder git checks and portable validation snippets; these are now encoded in the prompt discipline block.
|
|
194
|
-
- 2026-06-14 — **Codex default model pin removed after live failure.** The Phase 2 live run confirmed `gpt-5-mini` is rejected by this ChatGPT-account Codex install. The model-rejection fallback worked, but it made the happy path noisy. `src/agents/models.ts` now leaves Codex on its CLI default unless the user explicitly configures `models.codex.<phase>` in `~/.liner/config.yaml`; Claude still uses the stable `sonnet` alias for heavy phases. Tests: `models.test.ts` covers default Codex behavior plus explicit Codex overrides.
|
|
195
|
-
- 2026-06-14 — **Headless broken-pipe writes hardened.** Interrupting a failed Phase 4 run piped through `tee` produced a Node `EPIPE` after runner stdout closed while the child was still emitting. `headless-runner.ts` now treats `EPIPE` as a clean stop signal for JSONL writes and ignores later emits once stdout is broken, while non-pipe write errors still throw. Tests: `headless-runner.test.ts`.
|
|
196
|
-
- 2026-06-14 — **Go methodology gates no longer strand progress.** The Go methodology screen runs phases continuously, so pending gates now get accepted for both quick and methodology tapes when recording progress or recovering a resume index. This keeps `.liner-progress.json` advancing through `gate0`, `gate1`, and `gate2` instead of forcing users back to Ink after a successful phase. Dedicated gate review remains a future management/review screen. Tests: focused Go app methodology progress tests.
|
|
197
|
-
- 2026-06-14 — **Go Methodology logs use a bounded Charm viewport.** The running Methodology console no longer hand-slices a raw log tail. It stores visible logs in a soft-wrapped `viewport.Model`, starts at the latest output, exposes `↑/↓` help only when the log can scroll, and preserves manual scroll position while new agent events stream in. Tests: focused app viewport/scroll regressions.
|
|
198
|
-
- 2026-06-14 — **Paused Go methodology phases resume from Project.** If a run is paused or cancelled while the current incomplete phase already has `.liner-runs/<phase>/*.jsonl`, pressing Enter from Project now starts that phase with the headless runner's `--resume` flag instead of restarting from scratch. This came from the partial live Codex Candidate discovery run. Tests: fake headless-runner route verifies `startResearch()` passes resume and renders `Resuming Candidate discovery`.
|
|
199
|
-
- 2026-06-14 — **Codex resume is pinned to Liner's recorded session id.** A live Go TUI resume exposed that `codex exec resume` rejected fresh-run-only flags (`--cd`, `-s workspace-write`) and that relying on `--last` is too loose for a project-scoped phase resume. `runner.ts` now reads the previous Codex `thread.started` id from `.liner-runs/<phase>/*.jsonl`, resumes that explicit id, and fails visibly when no id exists. Evidence: bad-args log `.liner-runs/candidates/2026-06-14T11-49-37.jsonl`; fixed live resume log `.liner-runs/candidates/2026-06-14T11-53-36.jsonl` continued Candidate discovery before intentional pause. Tests: `runner.test.ts`.
|
|
200
|
-
- 2026-06-14 — **Project resumes pending assembly drafts.** A live Go TUI smoke against the Codex acceptance fixture caught that reopening a project after assembly but before draft acceptance showed Add Sources as the primary action because `tape.yaml` still had zero accepted sources. Project now detects `working/07-tape-draft.yaml` first, shows `Assembly draft ready`, and routes Enter to Assembly Review with matching footer/help copy. Tests: project primary-action and visible-copy regressions.
|
|
201
|
-
- 2026-06-14 — **Compiled Go projects open Preview as the primary action.** Project now detects `MIXTAPE.md`, shows `Ready to use`, and routes Enter to the Glamour preview instead of rerunning methodology. Recompile remains explicit through `c` or Home commands. Tests: compiled-project primary action, ready-state copy, footer copy, and help text.
|
|
202
|
-
- 2026-06-14 — **No-custom-source Go projects continue methodology.** Project no longer treats `sources: []` as blocking when the tape has a real JTBD. These projects show `Ready for methodology` and route Enter to the methodology runner, matching the intended “skip custom sources” creation path. Truly empty/no-JTBD projects still ask for sources/setup. Tests: no-source JTBD primary action/copy/help plus empty-project fallback.
|
|
203
|
-
- 2026-06-14 — **Early manual compile warnings point to methodology.** The Go compile console keeps `c` as an explicit escape hatch, but zero-source JTBD projects now say to run methodology and accept the assembly draft before relying on the mixtape. Empty/no-JTBD projects still ask for sources or a JTBD. Tests: both zero-source warning variants.
|
|
204
|
-
- 2026-06-14 — **Project hides early manual compile from the default surface.** `c Compile manually` appears in Project full key help only after accepted sources, `synthesis.md`, or `MIXTAPE.md` exist. Early projects still expose `Compile` through Home commands as an advanced/debug escape hatch, so the linear default path points to sources or methodology first. Tests: hidden early action/help, command availability, visible compile once accepted sources exist.
|
|
205
|
-
- 2026-06-14 — **Go chrome/activity helpers split out of app shell.** Banner metadata, screen labels, slash texture, global `Just next:` copy, and chrome width calculation now live in `internal/app/chrome.go`, reducing `app.go` to 792 lines while preserving behavior. Tests: `go test ./...` from `packages/go-tui`.
|
|
206
|
-
- 2026-06-14 — **Go Methodology rendering helpers split out of app shell.** Methodology progress/table/log viewport rendering and log synchronization now live in `internal/app/methodology_view.go`, reducing `app.go` to 673 lines while preserving behavior. Tests: `go test ./...` from `packages/go-tui`.
|
|
207
|
-
- 2026-06-14 — **Go app shell extraction pass completed.** Reusable table builders, Preview open/render helpers, and shared text/width utilities now live in `tables.go`, `preview.go`, and `utils.go`; `app.go` is down to construction, `Init`, `Update`, and root `View` at 484 lines. Tests: `go test ./...` from `packages/go-tui`.
|
|
208
|
-
- 2026-06-14 — **Go package/default-candidate smoke repeated.** From `packages/tui`, `./bin/liner-tui --version`, `LINER_TUI=go node bin/liner.js --version`, and `npm pack --dry-run` all passed after the latest Go Project/Compile routing changes. The dry-run tarball includes `bin/liner-tui`, `dist/agents/headless-runner.js`, artifact validation, and the copied skill/docs bundle; the worktree stayed clean after prepack.
|
|
209
|
-
- 2026-06-14 — **Go TUI live acceptance runbook added.** Historical: the original runbook now lives under `/Users/arturo/Documents/Projects/0-archive/liner-archive/2026-06-25-root-cleanup/go-tui-legacy-runbooks/go-tui-archive-2026-06-16/GO_TUI_ACCEPTANCE_RUNBOOK.md`. Use `docs/tui/GO_TERMINAL_AGENT_HANDOFF_2026-06-16.md` for current continuation steps.
|
|
210
|
-
- 2026-06-14 — **LINER.md PRD added.** `docs/curation-skill/LINER-MD-PRD.md` captures the product direction for `LINER.md` as project instructions rather than an "advisor": `MIXTAPE.md` is the corpus, `LINER.md` is how the artifact works, `skills/` are repeatable methods, and audits/evals/composition keep the Liner project coherent as users add books, recordings, notes, and child mixtapes.
|
|
211
|
-
- 2026-06-14 — **Go Project detects capability artifacts.** Project now renders a plain `Liner project` summary for `LINER.md`, skills, audits, evals, children, and lineage. This is detection only, not generation. Tests cover ready/missing `LINER.md`, recursive eval outputs, skill/audit/child counts, and lineage status.
|
|
212
|
-
- 2026-06-14 — **Existing `LINER.md` files can be previewed from Go Project.** When `LINER.md` exists, Project shows an `l` help item and Home commands include `Preview LINER.md`, both opening the existing preview viewport. Missing `LINER.md` does not advertise the control, while pressing `l` still reports a clear missing-file error. Tests: key route, help visibility, command visibility, and missing-file error.
|
|
213
|
-
- 2026-06-14 — **Go Preview is file-aware.** Preview now tracks whether it is rendering `MIXTAPE.md` or `LINER.md`, includes the filename in the title, keeps copy/share controls for `MIXTAPE.md`, and hides those MIXTAPE-only controls for `LINER.md`. Tests: LINER preview title/help/copy guard and MIXTAPE preview controls.
|
|
214
|
-
- 2026-06-14 — **First reviewed `LINER.md` generation flow added.** Compiled Go projects without `LINER.md` now expose `l Generate LINER.md` plus a Home command. The flow writes `working/LINER-draft.md`, opens a review screen, and only writes `LINER.md` plus a timestamped generation audit after acceptance; discard removes the draft without writing. The draft body is deterministic/source-aware for now so a future agent-backed generator can replace content without changing the review contract. Tests: generation route, draft content, no silent write, accept/audit, discard, and conditional controls.
|
|
215
|
-
- 2026-06-14 — **Read-only Go Skills manager added.** Projects with top-level `skills/*.md` now expose `k Skills` and a Home command item. The screen uses a table for skill name, heuristic readiness status, and updated date; Enter previews the selected skill and `o` opens it. Creation, temporary disable/enable, and deprecation landed in follow-up slices; richer skill editing remains future work. Tests: skill discovery/sorting/status, conditional controls, Project key route, table render, and preview route.
|
|
216
|
-
- 2026-06-14 — **Go Skills manager can create reviewed starter skills.** Projects with `MIXTAPE.md`, `LINER.md`, accepted sources, or existing skills can open Skills even before `skills/*.md` exists. Pressing `n` writes `working/skills/*-draft.md`, opens a review screen, and only writes `skills/*.md` plus `working/audits/*-skill-generation.md` after acceptance; `d` discards without writing. Tests: empty creatable Skills route, draft content/source grounding, no silent write, accept/audit, discard, help visibility, and grounded status.
|
|
217
|
-
- 2026-06-14 — **Go Skills manager can temporarily disable and re-enable skills with review.** Pressing `x` on an active skill writes `working/skills/*-disable-draft.md`; pressing `x` on a disabled skill writes `working/skills/*-enable-draft.md`. Enter inserts or removes a managed Markdown disabled marker, records `working/audits/*-skill-state.md`, removes the draft, and refreshes table status; discard leaves the skill untouched. Skill-corpus alignment reports disabled skills as `disabled`. Tests: disable draft/no mutation, accept disable/audit/status, accept enable/audit/status, discard/no mutation, alignment report, and help visibility.
|
|
218
|
-
- 2026-06-14 — **Go Skills manager can deprecate skills with review.** Pressing `d` on a selected active skill writes `working/skills/*-deprecation-draft.md` and opens a review screen. Enter moves the skill to `skills/deprecated/`, removes it from the active table, and writes `working/audits/*-skill-deprecation.md`; discard leaves the skill untouched. Tests: deprecation draft review/no move, accept move/audit/table refresh, discard/no move, and help visibility.
|
|
219
|
-
- 2026-06-14 — **Go Skills manager can repair grounding with review.** Pressing `g` on a selected skill writes `working/skills/*-grounding-draft.md` with Source Grounding, Boundaries, and Maintenance additions. Enter backs up and replaces the active skill, writes `working/audits/*-skill-grounding.md`, removes the draft, and opens the updated skill; discard leaves the skill untouched. Tests: grounding draft/no mutation, accept backup/audit/status, discard/no mutation, and help visibility.
|
|
220
|
-
- 2026-06-14 — **Go Skills status now catches missing boundaries.** The Skills table uses the same grounding/boundary heuristics as skill-corpus alignment, so a skill with Source Grounding but no boundary/scope/limitation language shows `needs boundaries` instead of `grounded`. Tests: Skills table renders grounded, needs-boundaries, and needs-grounding rows.
|
|
221
|
-
- 2026-06-14 — **Read-only Go Audit Center added.** Projects with `working/audits/*.md` now expose `u Audits` and a Home command item. The screen uses a table for report name, inferred type, and updated date; Enter previews the selected report and `o` opens it. Running local reports and applying changes were left for follow-up slices. Tests: audit discovery/type inference, conditional controls, Project key route, table render, and preview route.
|
|
222
|
-
- 2026-06-14 — **Go Audit Center can write a first contradiction report.** Auditable projects now expose `u Audits` even before `working/audits/*.md` exists when they have `MIXTAPE.md`, `LINER.md`, synthesis, quality checks, or skills. Pressing `r` writes a timestamped local contradiction-audit report that scans operating/corpus-facing files for hard rules, exception language, and explicit tension markers, refreshes the report table, and makes no silent rewrites. Reviewed contradiction cleanup and structured table previews landed in follow-up slices; agent-backed cleanup remains future work. Tests: empty auditable Audit Center, run action/help, report writing, scoped inputs.
|
|
223
|
-
- 2026-06-14 — **Go Audit Center can apply reviewed contradiction decisions to LINER.md.** Pressing `f` writes `working/audits/*-contradiction-cleanup-draft.md` and opens a review screen. Enter applies the reviewed draft to `LINER.md` between managed contradiction-decision markers, backs up the previous `LINER.md`, and writes `working/audits/*-contradiction-cleanup-apply.md`; discard removes the draft without writing. Direct source/skill rewrites remain future work. Tests: cleanup draft review/no mutation, apply backup/audit/managed section, discard/no mutation, and help visibility.
|
|
224
|
-
- 2026-06-14 — **Go Audit Center can write skill-corpus alignment reports.** Pressing `s` in Audit Center writes `working/audits/*-skill-corpus-alignment.md`, checking `skills/*.md` for source-grounding and boundary language plus weak corpus overlap; disabled skills are reported as `disabled`. It refreshes the audit table and makes no silent rewrites. Structured findings previews and reviewed skill repair routing landed in follow-up slices; agent-backed cleanup remains future work. Tests: skill audit report writing, aligned/needs-grounding/disabled statuses, missing-skills guard, and Audit Center help.
|
|
225
|
-
- 2026-06-14 — **Go Audit Center can write source-note quality reports.** Pressing `n` in Audit Center writes `working/audits/*-source-note-quality.md`, checking accepted `tape.yaml` sources for missing or thin curator notes, read/use cues, and boundary/limitation cues. Projects with accepted sources can open Audit Center before other corpus files exist. The report refreshes the audit table and makes no silent rewrites. Reviewed source-note cleanup and structured table previews landed in follow-up slices; agent-backed cleanup remains future work. Tests: source-note report writing, strong/missing/thin statuses, missing-sources guard, discovery/type inference, and Audit Center help.
|
|
226
|
-
- 2026-06-14 — **Go Audit Center can apply reviewed source-note cleanup.** Pressing `c` in Audit Center writes `working/audits/*-source-note-cleanup-draft.md` and opens a review screen. Enter updates weak accepted-source notes in `tape.yaml`, backs up the previous tape to `working/audits/*-source-note-cleanup-tape-backup.yaml`, and writes `working/audits/*-source-note-cleanup-apply.md`; `d` discards without writing. Tests: cleanup draft review, no accepted-source guard, reviewed apply backup/audit, no source-file changes, and discard/no-mutation.
|
|
227
|
-
- 2026-06-14 — **Read-only Go Eval Lab browser added.** Projects with files under `working/evals/` now expose `e Impact Tests` and a Home command item. The screen uses a table for artifact path, inferred area, and updated date; Enter previews the selected artifact and `o` opens it. Running local taskset creation, variants, and scoring comparisons were left for follow-up slices. Tests: recursive eval discovery, area inference, conditional controls, Project key route, table render, and preview route.
|
|
228
|
-
- 2026-06-14 — **Go Eval Lab can create starter tasksets.** Completed/living projects can open Eval Lab before any eval artifacts exist. Pressing `t` writes `working/evals/tasksets/*-starter-taskset.md` with a local variant matrix, three starter tasks, a human-first rubric, and qualitative notes table, then refreshes the artifact table. Run packets, automation packets, comparisons, and judge packets landed in follow-up slices; in-TUI model execution remains future work. Tests: empty Eval Lab route, taskset creation, generated content, command/help visibility, and Project key route.
|
|
229
|
-
- 2026-06-14 — **Go Eval Lab can create manual run packets.** Selecting a taskset and pressing `r` writes `working/evals/runs/<timestamp>-<taskset>/` with a README plus editable `baseline`, `corpus`, `operating-layer`, and `skills` variant files, and also writes `working/evals/summaries/*-summary.md` for scores and qualitative notes. Automation packets, comparison reports, and judge packets landed in follow-up slices; in-TUI model execution remains future work. Tests: run packet creation, variant files, summary template, selected README, and non-taskset guard.
|
|
230
|
-
- 2026-06-14 — **Go Eval Lab can create automation packets.** Selecting a run packet, summary, or comparison and pressing `a` writes/previews `working/evals/automation/*-automation-packet.md` with per-variant context loading rules, context availability, output targets, and current coverage for an external runner. It does not execute model calls, paste outputs, or score results inside the TUI. Tests: automation area/help/action visibility, packet creation from run packet, context status, taskset discovery, and selection guard.
|
|
231
|
-
- 2026-06-14 — **Go Eval Lab can create comparison reports.** Selecting a run packet or summary and pressing `c` writes/previews `working/evals/comparisons/*-comparison.md`, comparing output coverage, pasted task excerpts, and human summary scores across baseline, corpus, operating-layer, and skills variants. It does not run variants or judge outputs automatically. Tests: comparison area discovery, help/footer visibility, report creation from a run packet, summary-score parsing, missing-output/file handling, and preview route.
|
|
232
|
-
- 2026-06-14 — **Go Eval Lab can create judge packets.** Selecting a run packet, summary, or comparison and pressing `j` writes/previews `working/evals/judges/*-judge-packet.md` with rubric, side-by-side evidence, human scores, and an empty judge-score table. It does not run or persist an LLM judge automatically. Tests: judge area discovery, help/footer visibility, packet creation from comparison, and selection guard.
|
|
233
|
-
- 2026-06-14 — **Read-only Go Composition browser added.** Projects with files under `children/` or a top-level `lineage.yaml` now expose `m Composition` and a Home command item. The screen uses a table for child/lineage artifact path, kind, heuristic status, and updated date; Enter previews the selected artifact and `o` opens it. Nesting, reviewed apply, audits, route resolution, merge/copy flows, child `LINER.md` blending, skill conflict review, and production source/skill merge landed in follow-up slices. Tests: child/lineage discovery, kind/status inference, conditional controls, Project key route, table render, and preview route.
|
|
234
|
-
- 2026-06-14 — **Go Composition can write a nested routing plan.** Pressing `n` in Composition builds from existing `children/*` references, refreshes `lineage.yaml`, backs up prior lineage under `working/composition/`, writes `working/LINER-composition-draft.md`, and records `working/audits/*-composition-nesting.md`. It keeps child mixtapes referenced by path and does not copy sources or overwrite `LINER.md`; reviewed apply was left for the follow-up slice. Tests: nesting writer, lineage backup, routing draft, audit body, help text, and missing-child guard.
|
|
235
|
-
- 2026-06-14 — **Go Composition can apply reviewed routing to LINER.md.** The nesting action now opens `working/LINER-composition-draft.md` in a review screen. Enter applies the draft into `LINER.md` between managed composition markers, backs up the previous `LINER.md`, writes `working/audits/*-composition-apply.md`, and removes the draft; `d` discards without writing. Merge, copy, promote, and reviewed route-resolution flows landed in follow-up slices. Tests: review route, apply, replacement of previous managed section, backup/audit creation, and discard.
|
|
236
|
-
- 2026-06-14 — **Go Composition can audit route overlap.** Pressing `r` in Composition writes and previews `working/audits/*-composition-route-audit.md`, checking child routes for shared route tokens, missing explicit route/scope/focus/tags fields, review statuses, and warning/conflict lines. It makes no rewrites; merge, copy, promote, and reviewed route-resolution drafts landed in follow-up slices. Tests: help/footer visibility, overlap report content, Audit Center type inference, no `LINER.md` write, and missing-child guard.
|
|
237
|
-
- 2026-06-14 — **Go Composition can draft route conflict resolution.** Pressing `d` in Composition writes `working/LINER-composition-draft.md` plus `working/audits/*-composition-route-resolution.md`, turning shared child route tokens into explicit parent routing rules and clarifying-question guidance. Applying still goes through Review Composition Draft before parent `LINER.md` changes; no child sources, skills, or operating-layer content is copied. Tests: action/help visibility, overlap draft content, audit listing type, no pre-review parent mutation, and missing-child guard.
|
|
238
|
-
- 2026-06-14 — **Go Composition can audit selected-child promotion readiness.** Pressing `p` on a selected child writes and previews `working/audits/*-composition-promotion-readiness.md`, checking route explicitness, child status, and warning/conflict lines before recommending whether the child should stay nested or be considered for promotion/merge review. It does not copy child content or rewrite `LINER.md`. Tests: candidate report, child-selection guard, help/footer visibility, and no mutation.
|
|
239
|
-
- 2026-06-14 — **Go Composition can draft selected-child merge routing.** Pressing `m` on a selected child writes `working/LINER-composition-draft.md` plus `working/audits/*-composition-merge-draft.md`, then opens Review Composition Draft. Applying uses the existing managed `LINER.md` composition section; no child sources, skills, or files are copied. Tests: merge draft review/no mutation, audit body, child-selection guard, and help visibility.
|
|
240
|
-
- 2026-06-14 — **Go Composition can create selected-child copy packets.** Pressing `c` on a selected child writes/previews `working/composition/*-copy-packet.md` and records `working/audits/*-composition-copy-packet.md`. The packet inventories the referenced child project, `MIXTAPE.md`, `LINER.md`, `tape.yaml`, skills, local sources, and audits without copying anything into the parent. Tests: inventory packet, audit listing type, child-selection guard, help/footer visibility, and no parent mutation.
|
|
241
|
-
- 2026-06-14 — **Go Composition can apply selected-child copy snapshots.** Pressing `a` on a selected child copies reviewable child artifacts into `working/composition/copied/<child>/<timestamp>/`, writes a snapshot `README.md`, and previews `working/audits/*-composition-copy-apply.md`. Parent `LINER.md`, `tape.yaml`, `skills/`, and `local-sources/` remain untouched until an explicit production merge. Tests: copied artifact tree, apply audit, Audit Center type, child-selection guard, and no parent promotion.
|
|
242
|
-
- 2026-06-14 — **Go Composition can production-merge selected child sources and skills.** Pressing `x` on a selected child appends non-duplicate child tape sources to parent `tape.yaml`, copies child local source files into `local-sources/composition/<child>/`, copies top-level child skills into namespaced parent `skills/<child>-*.md`, backs up parent `tape.yaml`, and previews `working/audits/*-composition-production-merge.md`. It skips duplicate sources and skill filename conflicts; agent-backed route rewriting remains future work. Tests: source/skill merge, duplicate skip, local file rebasing, tape backup, audit listing type, and selection guard.
|
|
243
|
-
- 2026-06-14 — **Go Composition can draft selected-child LINER blends.** Pressing `b` on a selected child reads the referenced child `LINER.md`, extracts scoped operating signals, writes `working/LINER-composition-draft.md`, and records `working/audits/*-composition-liner-blend.md`. Applying still goes through Review Composition Draft before updating parent `LINER.md`; no child sources, skills, tape sources, or operating-layer files are mutated by draft creation. Tests: action/help visibility, blend draft content, missing-child-LINER guard, audit listing type, and no pre-review parent mutation.
|
|
244
|
-
- 2026-06-14 — **Go Composition can review selected-child skill conflicts.** Pressing `s` on a selected child writes/previews `working/audits/*-composition-skill-conflicts.md`, comparing child `skills/*.md` against parent namespaced merge targets and same-filename parent skills before production merge. It classifies rows as conflict, overlap, duplicate, or clear and makes no skill-file changes. Tests: action/help visibility, conflict/overlap/clear rows, audit listing type, no clear-skill copy, and child-selection guard.
|
|
245
|
-
- 2026-06-14 — **Go Home splash is unboxed.** The first Home intro now renders as a plain linear brand block instead of a rounded panel, while preserving width constraints. Tests: splash width and no-box-corners regression.
|
|
246
|
-
- 2026-06-14 — **Go Add Sources paste bar is unboxed.** The active source input now renders as a plain labeled row instead of a rounded input box, preserving the same textinput behavior and width constraints. Tests: Add Sources width and no-box-corners regression.
|
|
247
|
-
- 2026-06-14 — **Go Import path input is unboxed.** The `.mixtape` import path input now renders as a plain labeled row and truncates long scan/destination paths to stay within terminal width. Tests: import view width and no-box-corners regression.
|
|
248
|
-
- 2026-06-14 — **Go Preview outer chrome is unboxed.** The main Preview screen now renders the Glamour viewport as plain document content under the file-aware title instead of a rounded panel. MIXTAPE copy/share and LINER read-only controls remain unchanged. Tests: MIXTAPE/LINER preview title/help plus no-box-corners regressions.
|
|
249
|
-
- 2026-06-14 — **Go review draft viewports are unboxed.** `Review LINER.md Draft` and `Review Composition Draft` now render plain Glamour viewport content instead of rounded panels, while preserving Enter accept/apply, `o` open, `d` discard, and Esc return behavior. Tests: LINER and Composition review visible-copy plus no-box-corners regressions.
|
|
250
|
-
- 2026-06-14 — **Go source tables use compact status icons.** Review Local Sources and Source Board now show `✓` for active sources and `○` for inactive sources instead of bracket checkbox text, preserving Space toggle behavior and inactive manifest persistence. Tests: source review icon render/toggle plus Source Board table regression.
|
|
251
|
-
- 2026-06-14 — **Go Source Board is Home-command-only advanced review.** The Project workspace stays linear and no longer treats Source Board as a default-flow step. Projects with staged or accepted sources expose `Source Board` through Home commands, staging accepted `tape.yaml` sources into the table and labeling the screen as optional advanced review. Tests: command visibility/hidden state, Project action absence, command opens board, staged accepted sources.
|
|
252
|
-
- 2026-06-14 — **Go Composition action surface is contextual.** The Composition screen no longer renders a long inline shortcut sentence or one flat action list. It now shows the artifact table, a plain Selected detail block, and selected-row actions: child references show child actions, lineage shows lineage actions, and `?` remains the complete key map. Production merge stays visible only as an advanced selected-child action. Tests: child/lineage action-table regression plus no-box-corners coverage.
|
|
253
|
-
- 2026-06-14 — **Go Audits action surface is contextual.** The Audits screen no longer renders a long inline shortcut sentence or one flat action list. It now shows report table, Selected detail, findings preview, and selected-report actions: contradiction cleanup/rerun, source-note cleanup/rerun, skill-alignment rerun, or empty/generic report-generation actions. Tests: contradiction/source-note/skill/empty action regressions plus no-box-corners coverage.
|
|
254
|
-
- 2026-06-14 — **Go Home commands hide unavailable project actions.** Home no longer shows Add sources, Compile, Preview MIXTAPE.md, or Open local-sources without an open project; Preview MIXTAPE.md appears only after `MIXTAPE.md` exists, and Open local-sources appears only after the folder exists. Compile remains an advanced/debug command for open projects before it appears in Project help. Tests: home/open-project/local-sources/compiled-project command visibility.
|
|
255
|
-
- 2026-06-14 — **Go Audit Center shows structured findings inline.** The selected audit report now parses its first Markdown table into a compact `Status / Subject / Action` table plus a top-finding evidence/recommendation line, so contradiction, skill-corpus, source-note, cleanup, and composition route reports can be scanned without opening the full Markdown preview. Tests: audit view content and Markdown table parsing with escaped pipes.
|
|
256
|
-
- 2026-06-14 — **Go Skills and Evals action surfaces are contextual.** Skills now shows the skill table, a plain Selected detail block, and selected-state actions: grounded skips repair, weak grounding shows repair, disabled shows re-enable, and empty screens show starter skill creation. Evals switches visible actions by selected artifact: empty taskset creation, taskset-to-run packet, run/summary automation-compare-judge, and comparison automation-judge. Tests: contextual Skills/Evals action regressions plus no-box-corners coverage.
|
|
257
|
-
- 2026-06-14 — **Go command list is unboxed.** The command list now renders as a plain header plus Bubbles list instead of a rounded focus container. Tests: command list width and no-box-corners regression.
|
|
258
|
-
- 2026-06-14 — **Go Compile result summary is unboxed.** The compile result now renders as a plain `Result` section with the same status, output path, warnings, and attention notes instead of a rounded panel. Tests: focused result no-box-corners regression.
|
|
259
|
-
- 2026-06-14 — **Go rounded box style primitives removed.** The unused `PanelBox`, `FocusBox`, `InputBox`, and `ResultBox` styles are gone, and compile loader copy is now stable instead of rotating. Tests: compile-loader stability plus full Go suite.
|
|
260
|
-
- 2026-06-14 — **Go TUI acceptance preflight helper added.** `npm --prefix packages/tui run acceptance:go` runs the repeatable default-switch checks: package build, Go binary version, Go shim version, Ink fallback version, Go tests, and npm package dry-run. It writes a dated Markdown evidence report under `LINER_ACCEPTANCE_DIR` or `/tmp/liner-go-live-acceptance`. This supports but does not replace the manual live agent passes.
|
|
261
|
-
- 2026-06-14 — **Go TUI is the default shim path.** The npm shim now launches Go for no-arg `liner` runs, keeps `LINER_TUI=go` explicit, and preserves `LINER_TUI=ink` as the fallback during transition. The acceptance helper now probes the unset/default path with a fake Go binary so it can prove dispatch without opening an interactive TUI. Latest source-tree preflight passed all seven checks, including default-Go dispatch, explicit Go, Ink fallback, Go tests, and package dry-run. Evidence report: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-14T20-15-35-647Z.md`.
|
|
262
|
-
- 2026-06-14 — **Go TUI release smoke helper added and passed.** `npm --prefix packages/tui run acceptance:go -- release-smoke` now creates a real npm tarball, installs it into a clean temporary consumer project, verifies packaged `bin/liner.js`, `bin/liner-tui`, `dist/agents/headless-runner.js`, `docs/curation-skill/SKILL.md`, and `package.json`, then runs installed `liner --version`, proves installed no-arg `liner` dispatches to the Go TUI path, and runs `liner-tui --version`. Latest evidence report: `/tmp/liner-go-live-acceptance/go-tui-release-smoke-2026-06-14T21-49-41-044Z.md`.
|
|
263
|
-
- 2026-06-14 — **Go TUI project artifact verifier added.** `npm --prefix packages/tui run acceptance:go -- verify-project --project <path> --expect methodology-draft|framing-complete|claude-framing|candidate-resume|evaluation-active|evaluation-complete|failure-retry|accepted-draft|compiled|local-compiled|imported-compiled|custom-sources|custom-compiled` audits a live-run project folder and writes a dated report. It checks `tape.yaml`, methodology artifacts, `.liner-runs` logs, draft/accepted-source state, compiled/imported outputs, partial framing progress, scoped Claude Framing metadata, Candidate resume thread continuity, failed-phase retry continuity, Evaluation-start/completion progress, and custom-source manifests/final preservation when expected. Verified against `/tmp/liner-go-live-acceptance/design-engineering-live` as `methodology-draft`.
|
|
264
|
-
- 2026-06-14 — **Live Go TUI local-file assembly/compile smoke passed after fixing empty URL serialization.** A tiny pending-draft fixture was driven through the real Go TUI: Home → Project (`Assembly draft ready`) → Assembly Review → accept checked source → Compile → Preview. The first attempt exposed that Go wrote `url: ""` for accepted `local_file` sources, which Python rejects; `tape.Source.URL` is now `omitempty` and regression tests cover both tape writing and assembly acceptance. The verifier now supports `--expect local-compiled` for this fast non-agent smoke.
|
|
265
|
-
- 2026-06-14 — **Live Go TUI custom-source setup/review smoke passed.** A fresh project under `/tmp/liner-go-live-acceptance/go-tui-custom-source-smoke` was driven through Setup → Add Sources → Review Local Sources → Clarify handoff with a normal URL, YouTube URL, GitHub repo URL, pasted article text, local markdown file, skill name, and GitHub skill URL. One source was toggled inactive before save. `--expect custom-sources` passed with six active tape sources, seven manifest rows, one inactive persisted row, captured/copied local files, represented web/youtube/local-file/skill source types, and skill snapshots.
|
|
266
|
-
- 2026-06-14 — **Partial live Go TUI Codex methodology pass completed Framing.** A fresh no-custom-source project under `/tmp/liner-go-live-acceptance/go-tui-codex-full` went through Setup -> Clarify fallback -> Methodology in the real Go TUI. Framing completed, wrote `working/01-jtbd-and-knowledge-map.md`, advanced progress to step 2, accepted `gate0`, and started Candidate discovery. Candidate discovery was paused after several minutes of noisy search/tool events before replacing the placeholder longlist. The verifier now supports `--expect framing-complete`; full interactive methodology remained open at that point. Go Methodology visible logs now compact repeated tool results like `web_search` into one counted line and hide known cosmetic Codex startup/plugin warnings while preserving real auth/config errors.
|
|
267
|
-
- 2026-06-14 — **Live Go TUI Codex resume progressed Candidate discovery, but Phase 2 remains open.** After the explicit-session resume fix, the same acceptance project resumed thread `019ec52b-c54b-7dc0-89df-8fc8876416a9` through the real Go TUI and continued verifying sources for several minutes. It was intentionally paused before `working/02-candidate-longlist.md` was replaced, so this is resume evidence, not full methodology evidence. `--expect candidate-resume` now passes for the project, confirming fresh/resumed Candidate logs share the recorded thread id and resumed logs include 68 work events. Evidence report: `/tmp/liner-go-live-acceptance/go-tui-project-go-tui-codex-full-candidate-resume-2026-06-14T12-04-59-763Z.md`. Future attention: Codex still logs a personal skill YAML error, MCP OAuth refresh failures, and one recoverable `write_stdin failed: stdin is closed` router message in this local environment.
|
|
268
|
-
- 2026-06-14 — **Live Go TUI Codex reached Evaluation, then paused.** A later resume of the same project completed Candidate discovery through the real Go TUI: `working/02-candidate-longlist.md` now has 66 URL-backed candidates across 7 sections, the Candidate run closed with exit code 0, `gate1` was accepted, progress advanced to step 4, and Evaluation started with 76 logged work events. `--expect evaluation-active` passed; evidence report: `/tmp/liner-go-live-acceptance/go-tui-project-go-tui-codex-full-evaluation-active-2026-06-14T12-18-37-998Z.md`. Phase 4 remains open because the run was paused after repeated URL/search checks under flaky network/DNS conditions.
|
|
269
|
-
- 2026-06-14 — **Phase 4 fallback chasing bounded.** The Evaluation prompt, Evaluation resume nudge, `source-quality-hierarchy.md`, and packaged skill docs now cap unavailable-source recovery at one direct fetch plus one recovery attempt per candidate. After two failed retrieval attempts, the agent must evaluate from metadata/Phase 2 rationale/partial content and still write a YAML decision. Tests: `runner.test.ts`, `prompts.test.ts`; build: `npm --prefix packages/tui run build`. Follow-up live resume showed the nudge works for retrieval/caption recovery but still exposed an artifact-closure stall before `working/03-evaluation.yaml` was replaced; tracked above as the next agent-integration polish slice.
|
|
270
|
-
- 2026-06-14 — **Evaluation artifact closure now fails safely instead of hanging.** Phase 4 prompts now tell agents to write `working/03-evaluation.yaml` before announcing readiness. If Evaluation goes quiet with no active tool and no complete candidate-count-checked YAML, the runner stops the turn and resumes the same session once with a write-only closure prompt. The closure pass then either accepts a valid full artifact or times out with a retryable failure. Tests: `runner.test.ts`, `prompts.test.ts`, `artifact-validation.test.ts`; build: `npm --prefix packages/tui run build`; preflight: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-14T12-48-53-359Z.md`. Live paused-project proof: the guard fired and failed cleanly rather than hanging, but Codex still did not write the YAML; tracked above as chunked/deterministic Evaluation assembly.
|
|
271
|
-
- 2026-06-14 — **Chunked Evaluation assembly added.** Phase 4 prompts and resume nudges now ask agents to write section-sized fragments under `working/evaluation-decisions/`. Liner parses the longlist, assembles fragments into canonical `working/03-evaluation.yaml` in longlist order, normalizes `trimmed` to `trim`, and validates one final decision per longlist URL. Tests: `evaluation-assembly.test.ts`, `runner.test.ts`, `prompts.test.ts`, `artifact-validation.test.ts`; full package tests: 142 passing; preflight: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-14T13-01-21-823Z.md`. Live paused-project retry reached the fragment folder path but wrote no fragment YAML before clean failure; the following section-scoped runner slice supersedes the original fresh-run proof plan.
|
|
272
|
-
- 2026-06-14 — **Fresh Evaluation now runs as section-scoped chunks.** `runPhaseWithAgent` routes fresh Evaluation through bounded per-section agent tasks of at most 10 candidates each, with exact fragment paths under `working/evaluation-decisions/`, then assembles the canonical `working/03-evaluation.yaml` after every chunk succeeds. Resume mode stays compatible with older saved sessions. Tests: `candidate-longlist.test.ts`, `prompts.test.ts`, `runner.test.ts`, `evaluation-assembly.test.ts`, and `artifact-validation.test.ts`; full package tests after the resume/verifier slice: 150 passing; build: `npm --prefix packages/tui run build`; preflight: `/tmp/liner-go-live-acceptance/go-tui-preflight-2026-06-14T13-28-10-132Z.md`. Live smoke against the 66-candidate Codex project wrote chunk 1/10's 8-decision fragment and started chunk 2/10 before an intentional stop; full sectioned Phase 4 completion remains open above.
|
|
273
|
-
- 2026-06-14 — **Section-scoped Evaluation resume and verifier added.** Once `working/evaluation-decisions/.liner-sectioned-evaluation.json` or fragment YAML exists, Evaluation resume keeps the sectioned runner, skips valid completed fragments, and runs only missing/invalid chunks with short fresh prompts; older projects without sectioned state still use legacy single-session resume. `acceptance:go verify-project` now supports `--expect evaluation-complete` for final YAML coverage, valid decisions, fragment presence, and clean Evaluation logs. Tests: full package tests 150 passing plus build/preflight; fixture verification report: `/tmp/liner-go-live-acceptance/go-tui-project-liner-evaluation-complete-fixture-dinOWT-evaluation-complete-2026-06-14T13-23-55-276Z.md`.
|
|
274
|
-
- 2026-06-14 — **Section-scoped Evaluation live acceptance passed.** Resuming the 66-candidate Codex project skipped completed chunk 1, ran chunks 2-10, wrote 10 total fragment files, assembled `working/03-evaluation.yaml`, and passed `acceptance:go -- verify-project --expect evaluation-complete`. Final decisions: 31 kept, 23 trim, 12 dropped. Evidence report: `/tmp/liner-go-live-acceptance/go-tui-project-go-tui-codex-full-evaluation-complete-2026-06-14T13-54-31-584Z.md`. Future attention: the runner log initially said "66 Evaluation decision fragments" even though that number was decisions; wording fixed in the follow-up patch.
|
|
275
|
-
- 2026-06-14 — **Broad regression checks repeated.** After the Go Project/Preview and capability slices, `npm test` passed 124 tests from `packages/tui`; `.venv/bin/pytest` passed 200 tests with 1 skipped and 1 deselected from the repo root. Python emitted only existing trafilatura deprecation warnings.
|
|
276
|
-
- 2026-06-14 — **Post-phase artifact validation added.** The live Codex Phase 4 run briefly produced invalid YAML before self-repairing. `src/agents/artifact-validation.ts` now validates structured agent artifacts after a clean agent exit: `working/03-evaluation.yaml` must parse and contain a non-empty candidate list with valid decisions plus rating/section/note on kept or trim entries; `working/07-tape-draft.yaml` must parse and contain valid source mappings with type, location, priority, kind, section, and note. `runPhaseWithAgent` turns validation failures into code `1` with a visible `[liner] Artifact validation failed...` text event, so Ink and Go both land in retryable failure instead of silently advancing. Tests: `artifact-validation.test.ts`.
|
|
277
|
-
- 2026-06-14 — **Headless skill paths normalized after Phase 4 live failure.** The first Codex `evaluation` run showed that passing `--skill-path cli-update-docs` left the prompt with project-relative companion paths once the agent cwd switched to the temp mixtape. `headless-runner.ts` now resolves explicit skill paths to absolute directories before prompt construction, including `SKILL.md` file inputs and `~/...` paths. Tests: `headless-runner.test.ts`.
|
|
278
|
-
- 2026-06-14 — **Codex live runner smoke + stderr cleanup.** A temporary no-custom-source project under `/tmp/liner-go-live-acceptance/design-engineering-live` completed every agent-owned phase through `dist/agents/headless-runner.js --agent codex` with `runner_done` code 0: `framing`, `candidates`, `evaluation`, `quality`, `synthesis`, and `assembly`. Phase 2 produced 60 verified candidates. Phase 4 produced 60 parseable decisions, then Phase 5 backfilled Gum as an example source and added `kind` roles, leaving `working/03-evaluation.yaml` at 61 candidates: 27 kept, 19 trim, 15 dropped. Phase 6 wrote a 1,452-word `synthesis.md`. Phase 7 wrote a parseable `working/07-tape-draft.yaml` with 46 sources: 27 required, 19 optional, while leaving `tape.yaml` unmodified. The run exposed repeated cosmetic Codex startup warnings (`codex_core_plugins::manifest` default-prompt and `codex_core_skills::loader` icon warnings), so `runner.ts` now suppresses those from live raw events while keeping the full audit log and preserving auth/config errors. Tests: `runner.test.ts` covers the filter. At that point the remaining acceptance was interactive Go TUI full run, Claude, custom-source, imported project, compile, and retry/resume paths.
|
|
279
|
-
- 2026-05-29 — **Per-phase model selection + model-rejection fallback.** Candidate discovery + evaluation (~65% of a cycle's tokens) can run on cheaper configured models while framing/quality/synthesis/assembly stay on the agent's default. New `src/agents/models.ts` holds the default model map + `modelForPhase()` resolver; `runner.ts` resolves the model in `runPhaseWithAgent` (config overrides win) and `buildArgs` emits `--model` for both agents on fresh runs only (a resumed session keeps its model). `UserConfig.models` (per-agent → phase → model id) added to `config.ts`; `writeConfig` now merges a partial over the on-disk config so changing the agent doesn't wipe overrides. Override in `~/.liner/config.yaml` under `models:`. **Maintenance:** Claude uses the `sonnet` alias (auto-tracks the latest Sonnet — no release needed on version bumps); Codex stays on the CLI default unless explicitly configured because concrete supported model ids vary by account type. **Fallback:** `runAgentTask` was split into a delegating wrapper + `runAttempt`; if the agent rejects the model (detected via `looksLikeModelRejection`), it emits a warning naming the exact config fix and retries once on the agent's default model. Tests: `models.test.ts`, `runner.test.ts` (detection heuristic), config round-trip/merge/malformed.
|
|
280
|
-
- 2026-05-29 — **Agent-unavailability watchdog.** A launched-but-mute agent (signed out / expired subscription / deprecated model) used to hang the run spinner forever. `runAgentTask` now starts a 15s watchdog; if no stdout/stderr arrives in that window it emits a clear "no response from <agent> — check auth/subscription" raw event and SIGTERMs the child, so the run lands in the failed state (where retry / switch-agent already live). Any output clears it; cleared on close/error too. Constant `WATCHDOG_MS` in `runner.ts`. (Pre-flight `--version`/whoami check on agent selection still open as a nicer-but-optional follow-up.)
|
|
281
|
-
- 2026-05-29 — **Removed the invented `$` cost from `ProcessManifest.tsx`.** Dropped the Totals "Cost (USD)" row + the Runs-table "Cost" column/cell (and the "cost" mention in the empty-state copy). PhaseRunner's was already removed in 0.5.2; the two surfaces no longer diverge. Token counts stay (real); the `cost_usd` fields remain in the manifest types/Python output, just unrendered.
|
|
282
|
-
- 2026-05-29 — **Marketing site: agent requirement now stated up front.** The landing page (`marketing/site/src/pages/index.astro`) now makes the "bring your own agent" requirement explicit near install: a fourth Install-CTA requirements chip ("Bring your own agent — Claude Code or Codex", grid widened 3→2 cols for a 2×2) and an expanded FAQ answer ("Do I need my own AI subscription?…") that names Claude Code/Codex, states you need one to *build* a mixtape, and clarifies the finished mixtape is tool-agnostic. Honesty point (no surprise "why isn't it working") + positioning point (rides the subscription the user already pays for). Documented in `liner-private-docs/marketing-planning/page-outline.md` §9/§10 + decisions log.
|
|
283
|
-
- 2026-05-28 (0.5.3) — **`liner --version` reports the TUI version + version-pin drift killed.** The shim forwarded `--version` to the Python core, so it printed the core version (0.5.0) regardless of the installed npm package — confusing when verifying a publish. Now intercepts `--version`/`-v` in `bin/liner.js` and prints `liner <tui> (tui) · <core> (core)`. Also collapsed the three separately-edited version constants (package.json, Header.tsx, BootSplash.tsx) into one runtime read of package.json via `src/version.ts` — BootSplash had silently sat at 0.5.0 through the whole 0.5.2 cycle. Closes the old "Header version pin" hygiene item.
|
|
284
|
-
- 2026-05-28 (0.5.2) — **Fixed the hard API-400 crash on long/resumed agent runs.** A multi-turn phase (or any resume of a failed run) died with `400 … thinking blocks in the latest assistant message cannot be modified` once Claude Code auto-compacted a conversation with interleaved thinking on. Confirmed it was *not* resume-only: a fresh framing run hit it at ~26 turns, and resume then re-hit it instantly because it replays the corrupted message. Fix: spawn the agent with `MAX_THINKING_TOKENS=0` (verified empirically that this zeroes thinking blocks on claude 2.1.146 + opus-4-7), so the failure class can't occur. Supersedes the old "Resume + extended-thinking → API 400" item, which was mis-scoped as resume-only and low-priority. Change in `runner.ts` spawn env.
|
|
285
|
-
- 2026-05-28 (0.5.2) — **Isolated the methodology agent from the user's global environment.** The run log showed the spawned `claude` inheriting all the user's global MCP servers (Gmail, Drive, third-party connectors), plus Bash/Task — the `--allowedTools` whitelist is a no-op under `--dangerously-skip-permissions`. Added `--strict-mcp-config` (with no `--mcp-config` → zero MCP servers) so the agent no longer loads irrelevant connectors. *Still open:* hooks/auto-memory still load (didn't touch `--setting-sources` to avoid auth/behavior risk), and Bash/Task aren't hard-denied — a follow-up could add `--disallowedTools` or drop skip-permissions. Change in `runner.ts buildArgs`.
|
|
286
|
-
- 2026-05-28 (0.5.2) — **Fixed the mixtape browser (`TapeBrowser`) scrollback laddering + garbled selected row.** On a small terminal the project list rendered taller AND wider than the window, so arrow-key navigation reprinted the header on every keystroke (stacked `▶ liner` rows) and the selected row's highlight bled across wrapped lines. Fixes: a terminal-sized scrolling viewport (`maxRows = termRows − 12`, windowed around the selection, with `↑/↓ N more` indicators) so total height never exceeds the terminal; each row rendered as a single `wrap="truncate"` line with terminal-responsive column widths so rows never wrap; and `Header` subtitle set to `wrap="truncate"`. The alt-screen buffer alone couldn't fix this — it doesn't help when a single frame is taller than the viewport.
|
|
287
|
-
- 2026-05-31 (0.5.5) — **Completed Compile opens the existing result instead of rerunning.** If `MIXTAPE.md` is current, the hub marks Compile complete and pressing Enter opens a reconstructed compile-result screen from `MIXTAPE.md` + `sources/` instead of starting a fresh fetch. Recompile/retry is explicit with `r` from CompileView. This resolved the "Ready to use, but Enter compiles again" confusion from testing.
|
|
288
|
-
- 2026-05-31 (0.5.5) — **Partial compile is a usable ready state.** Compile now advances progress when it writes `MIXTAPE.md` with some failed sources, and the hub surfaces "Ready to use — compiled with warnings" with the source/warning counts. This keeps users from landing forever on "ready to compile" after they already have a finished artifact.
|
|
289
|
-
- 2026-05-31 (0.5.5) — **JS rendering setup is surfaced at onboarding and compile time.** Fresh installs get an optional JS setup screen after agent/model setup. Compile results that detect missing Playwright Chromium show "JS rendering needed", explain that headless Chromium is required for some pages, list the `liner setup-js --yes` action, show the ~150MB size, and bind `j` to install + retry.
|
|
290
|
-
- 2026-05-31 (0.5.5) — **Compile and done screens got internal scroll viewports.** The PhaseRunner final response and CompileView source list no longer depend on terminal scrollback in the alternate screen. ↑/↓ and pgup/pgdn scroll the relevant viewport; inspect mode keeps tool-call navigation distinct.
|
|
291
|
-
- 2026-05-31 (0.5.5) — **Web extraction handler crash fallback.** `trafilatura` exceptions now become soft failures with tag-stripped fallback content where possible instead of surfacing raw Python errors like `'NoneType' object is not subscriptable`. Covered in `tests/test_web_handler.py`.
|
|
292
|
-
- 2026-05-31 (0.5.5) — **`liner uninstall` added to the npm shim.** Removes `~/.liner`, npm `_npx`, and Playwright Chromium cache for clean-user testing. It intentionally leaves mixtape project folders alone.
|
|
293
|
-
- 2026-05-28 (0.5.2) — **Empirical test (Phase 7/8) removed from the driven flow.** Dropped `empirical` from `PhaseId`, `PHASE_TEMPLATES`, `PHASE_ORDER` (`TOTAL_STEPS` 11→10); removed the empirical branches in `phases.ts` and `PhaseRunner.tsx`. `everythingComplete()` collapses to `progress.step >= TOTAL_STEPS` and `coreMethodologyComplete` is gone — *compiled = complete*. The with-vs-without validation survives as methodology guidance in `docs/curation-skill/LINER-MASTER.md` / skill docs, not a TUI phase.
|
|
294
|
-
- 2026-05-28 (0.5.2) — **ProjectHub redesigned into a single summary view.** Removed the dual focus-card / TOC `l` toggle. New `StatusBox` (Ready to use / In progress / Not started), an always-visible phase checklist, and a single HEADING/purple "next · …" call-to-action line. Importing a complete mixtape now lands here showing it's ready, never on a phase prompt.
|
|
295
|
-
- 2026-05-28 (0.5.2) — **Import screen auto-detects `.mixtape` files.** `ImportPrompt.tsx` rewritten: scans the cwd for `*.mixtape`, renders a selectable list with file sizes, `r` re-scans, `p` switches to path entry. Dropped the opaque "archive" label. Lands on the imported mixtape's hub (folder = `basename(path).replace(/\.mixtape$/,"")`) rather than the browser or a phase prompt. Import still doesn't auto-refetch.
|
|
296
|
-
- 2026-05-28 (0.5.2) — **Consistent quit-key convention: `q` quits from every screen, `esc` goes back.** Added `q` = `ink.exit()` to the gates, FramingConfirmReview, TapeDraftReview (guarded against text-input mode), PhaseRunner picking/done states; split `q`(quit)/`esc`(back) on CompileView + ProcessManifest. Gate2Review's quality-checks editor moved `q`→`k`. Text-input screens still rely on esc-then-quit / Ctrl-C since a bare `q` types into the field.
|
|
297
|
-
- 2026-05-28 (0.5.2) — **One call-to-action per screen: HEADING "next · …" description line above a uniform navbar.** Every screen carries a single purple plain-language line spelling out what Enter does; `KeyHints` stays a uniform dim reference navbar (MUTED label, STRUCTURE key) with no per-binding highlight. Supersedes the reverted 0.5.1 "highlight the primary action" attempt.
|
|
298
|
-
- 2026-05-28 (0.5.2) — **Removed the misleading dollar-cost figure from PhaseRunner run summaries.** Subscription-driven runs (Claude Code / Codex) aren't metered API billing, so a `$X.XXX` figure was invented. Token counts stay (they're real). *Note: `ProcessManifest.tsx` still renders a `$` cost line — tracked below in "Up next" until removed there too.*
|
|
299
|
-
- 2026-05-28 (0.5.2) — **PhaseRunner scrollback laddering capped by terminal height.** On top of the 0.5.1 alt-screen buffer, the final-response panel now caps to `Math.max(4, Math.min(18, termRows - 24))` lines via `useStdout`, so the tallest renders (session-limit failure + 48-tool-call list) can't exceed the viewport and ladder.
|
|
300
|
-
- 2026-05-28 (0.5.2) — **Pickers accept on Enter only.** `AgentSetup.tsx` (and the picker convention) no longer treat Space as a second accept key — Space is reserved for toggle semantics. The recommended/first option stays pre-highlighted so Enter takes the safe default.
|
|
301
|
-
- 2026-05-28 — **Scrollback laddering killed globally via terminal alt-screen mode.** Replaces the partial 2026-05-19 PhaseRunner compaction fix and the 0.5.1 wizard Transcript padding hack with one architectural fix in `bin/liner.js`: wrap the TUI launch in `\x1b[?1049h` / `\x1b[?1049l` (terminal alt-screen). No scrollback in the alt buffer = no stacked-header artifact, regardless of how variable-height a screen is. Cleanup handlers cover normal exit, SIGINT, SIGTERM, and uncaughtException so the terminal can't be left stuck in alt mode. Falls back to no-op when stdout isn't a TTY (piped output, CI). Trade-off: the TUI session vanishes on exit (post-exit context lives in `.liner-runs/` and `MIXTAPE.md`, which were always the source of truth anyway).
|
|
302
|
-
- 2026-05-22 — Process manifest: aggregator over `.liner-runs/*.jsonl` produces `process.json` (tokens / cost / tool calls / fetched URLs / domains / per-run breakdown). New CLI commands `liner manifest` + `liner status`. New TUI surface `ProcessManifest.tsx`, reachable via `[p]` on ProjectHub.
|
|
303
|
-
- 2026-05-22 — Compile auto-start from TapeDraftReview: accepting the source checklist now navigates directly to compile (CompileView already auto-starts on mount), removing the redundant "press enter to compile" second confirmation.
|
|
304
|
-
- 2026-05-22 — Compile re-run hint labeled per phase: "retry failed" when partial/failed (cache makes this true in effect), "re-run" when fully succeeded.
|
|
305
|
-
- 2026-05-22 — Web fetcher bot-challenge auto-fallback: `WebHandler` now raises `JsRenderingRequired` (not `HandlerHardFailure`) on 4xx/5xx responses whose body matches Cloudflare / Akamai / Imperva / PerimeterX signatures. Compile's existing auto-fallback path retries via `web_js` (Playwright). New helper `looks_like_bot_challenge()` in `html_extraction.py`.
|
|
306
|
-
- 2026-05-22 — Agent-summary fallback at compile: when all fetcher tiers fail, compile recovers the URL from `.liner-runs/` (the agent's WebFetch summary captured during research) and writes it as the source body with `metadata.extraction = "agent-summary"`. MIXTAPE.md surfaces a `Provenance: summary captured during research` line so the curator knows. Verified live on the Medium URL in cli-writer-6.
|
|
307
|
-
- 2026-05-22 — Orphan source-file cleanup: `write_mixtape()` now garbage-collects `sources/NN-*.md` files from prior compiles whose slug no longer matches the current title. Safe — only touches files matching the compile-output signature; curator-added files survive.
|
|
308
|
-
- 2026-05-22 — Framing-gap rubric rewrite: split coverage into `stance` vs. `concerns` to stop the methodology from treating "scriptability concerns covered by humans-first sources" as full coverage of a Unix-purist stance. Three actions now possible: (a) backfill, (b) argue concerns sufficient with explicit trade-off, (c) flag bias. Editied in both `quality-check-tests.md` and the Phase 5 prompt in `prompts.ts`.
|
|
309
|
-
- 2026-05-22 — Source-kind balance test (Test 5): every mixtape's `kind` distribution must be defended if any kind is zero. Catches the v6 case of 0 reference sources. Documented in `quality-check-tests.md`; Phase 5 prompt enforces.
|
|
310
|
-
- 2026-05-22 — Methodology mode hidden from the wizard surface: new mixtapes default to quick mode, the mode-selection step is gone, ProjectHub's `[m]` toggle is removed. Underlying methodology code (gates, prompts, mode field) is preserved for forward compatibility with existing methodology-mode mixtapes.
|
|
311
|
-
- 2026-05-22 — "Add your own source" affordance in TapeDraftReview: `[+]` opens an inline URL prompt; the URL gets appended to the working draft as a checked, curator-added source (auto-detected web/youtube type). Surfaces in the helper text + KeyHints so the affordance is discoverable.
|
|
312
|
-
- 2026-05-19 — Slice 1: 8-step wizard, ProjectHub two-pane phase tracker, scaffolding helpers.
|
|
313
|
-
- 2026-05-19 — Slice 2: Agent adapter (Claude + Codex), PhaseRunner screen, hub `r` key.
|
|
314
|
-
- 2026-05-19 — Polish pass: terminal-ui audit (5 CRITICAL/HIGH fixes), brand chip header, next-steps callout, background-color row selection, wizard step chip + progress dots, KeyHints wrap.
|
|
315
|
-
- 2026-05-19 — Slice 3 functional: auto-launch on `LINER_AGENT=` pinning, narrowed Claude tool whitelist (`--allowedTools Read Write Edit Glob Grep WebFetch`), Gate 1 review screen (parses `02-candidate-longlist.md` by section), Gate 2 review screen (parses `03-evaluation.yaml` as keep/trim/drop + `04-quality-checks.md` findings, tabbed view). Concurrent-run guard resolved by current cancel-on-unmount architecture.
|
|
316
|
-
- 2026-05-19 — Stream-JSON parsing: normalized `AgentEvent` type + per-CLI parsers (Claude `--output-format stream-json --verbose`, Codex `--json`), `LineBuffer` for partial-line chunking, 14 parser unit tests. PhaseRunner redesigned around structured events — top pane shows tool calls with status glyphs, middle pane streams assistant text in a bordered box, status bar shows event count + cost + duration from `summary` events.
|
|
317
|
-
- 2026-05-19 — Final-message preservation: PhaseRunner emits a notification on completion containing the first line of the agent's final response (or last text block for Codex), so the message survives navigation back to the hub.
|
|
318
|
-
- 2026-05-19 — Tool-call expand mode: `t` key toggles between tail (last 8) and full list.
|
|
319
|
-
- 2026-05-19 — Phase 7 agent-driven assembly: agent prompt now writes to `working/07-tape-draft.yaml` (never touches `tape.yaml` directly). New `TapeDraftReview` screen parses the draft, shows sections + source list + curator note for the cursor, with `a` accept (merges sources into tape.yaml + deletes draft), `e` edit (loads into source editor), `d` discard. PhaseRunner auto-routes to draft review on successful assembly run; hub shows "draft pending" hint and routes `enter` on Phase 7 to the review when a draft is on disk.
|
|
320
|
-
- 2026-05-19 — Hub key model rewrite per CLI-research synthesis (Skip-or-Enter §2.8, Caligula condense-one-prompt, "don't hide features behind keys"): **Enter is now the single primary action per phase** — runs the agent for agent-eligible phases (or falls back to $EDITOR with notification if no agent installed); opens gate review for gates; routes to draft review on Phase 7 when a draft exists; runs compile on the compile row. `e` is the explicit manual escape hatch ($EDITOR). Removed `E`/`c`/`R` as separate top-level keys. `r` kept as a hidden alias for Enter (back-compat). Right-pane action labels read aloud naturally ("run Phase 1 with the agent", "review the candidate long-list", etc.).
|
|
321
|
-
- 2026-05-19 — Hot fixes: (a) `require is not defined` crash in `phases.ts` writeGateState — replaced CJS require with imported writeFileSync; (b) PhaseRunner scrollback-laddering on long agent runs caused by dynamic content overflowing terminal — compacted running view to spinner + one-line stats + latest tool only (no streamed text, no full tool list); (c) live cumulative token counter via new `tokens` event extracted from Claude `assistant.usage` / Codex `turn.completed.usage`; (d) done state now leads with a NextSteps panel and Enter advances to the next logical screen (Phase 2 → Gate 1, Phase 4 → Phase 5, Phase 5 → Gate 2, etc.); (e) Gate 1 and Gate 2 reframed — Enter = accept + auto-advance, summary leads the screen, scroll list visually demoted; (f) auto-launch when only one agent is installed (was: still showed picker).
|
|
322
|
-
- 2026-05-19 — Wizard placeholder pattern: stopped pre-filling draft state (curator no longer pre-populated with $USER; title/description no longer pre-populated from JTBD). Suggestions surface via TextInput placeholder; Enter on empty submit accepts the suggestion. Going back to a previously-answered step from review still shows the existing value for editing. Removes the "I have to delete the previous question's text" friction.
|
|
323
|
-
- 2026-05-19 — Path-aware truncation in PhaseRunner: `truncatePath` keeps the basename (e.g. `…/working/02-candidate-longlist.md`) instead of right-trimming the prefix. Tool-call previews route through `previewify()` which detects paths vs. URLs vs. plain strings.
|
|
324
|
-
- 2026-05-19 — PhaseRunner running view shows phase label inline ("Phase 2 — Candidate discovery · Claude Code") so users always know where they are without looking up at the header.
|
|
325
|
-
- 2026-05-19 — Removed `r` re-run from the done state — user feedback was it had no value (re-running an agent with the same prompt is unlikely to give a different result). Done state actions: Enter advances, b/esc backs to hub.
|
|
326
|
-
- 2026-05-19 — Hub focus mode: default view is now a single hero card for the current incomplete phase + a one-line progress strip showing all phases with status glyphs. `l` toggles into the full TOC list (existing two-pane view) with future-phase locking. Esc from TOC returns to focus; esc from focus backs to browser.
|
|
327
|
-
- 2026-05-19 — Quick mode now skips gate review screens (per CURATION.md v2.0 "Quick mode defaults gates to continue"). PhaseRunner.nextScreenFor reads `tape.mode`; quick mode auto-writes `gate1Accepted` / `gate2Accepted` to `.liner-gates.json` and routes directly from candidates → evaluation and from quality → synthesis. Methodology mode still shows the gates.
|
|
328
|
-
- 2026-05-19 — Gate review screens slimmed down (methodology mode): removed the scrollable candidate / evaluation list. Now a bordered summary card (counts + section breakdown) plus a NextSteps panel. Inspection is delegated to `$EDITOR` via `e` — the rendered list was never going to compete with a real editor for actual reading.
|
|
329
|
-
- 2026-05-19 — Editor default switched from `vi` → `nano`. New `src/editor.ts` resolves `$VISUAL` → `$EDITOR` → probes for `nano`/`pico`/`vi` on PATH. Vi is hostile if you don't already know it; nano shows its keybindings at the bottom of the screen and is on every macOS install. All four screens (ProjectHub, Gate1Review, Gate2Review, TapeEditor) route through the helper.
|
|
330
|
-
- 2026-05-19 — Agent resume on failure: PhaseRunner's failed-done state now offers "Press Enter to resume" (cheap continuation via `claude --continue` / `codex exec resume --last`). The previous session's conversation — prompt, tool-call results, partial work — stays in context, so the agent doesn't re-fetch anything. `r` falls back to re-run from scratch. Runner accepts `resume: true`; on resume it sends a tiny "continue from where you left off" nudge instead of re-shipping SKILL.md. Failure-state NextSteps and KeyHints now lead with "resume" instead of the misleading "continue".
|
|
331
|
-
- 2026-05-19 — Done state collapsed to two visible choices: `enter` (continue on success / try again on failure) + `b` (back to hub). `r` (re-run from scratch) and `t` (expand tools) remain bound as hidden power-user escapes but no longer clutter the NextSteps panel or KeyHints. Failure-state copy reworded to "try again — picks up where the agent stopped, no re-fetching" so the user isn't decoding "resume" terminology.
|
|
332
|
-
- 2026-05-19 — Phase list cleanup: (a) **dropped Phase 3 (Fetching)** — it was a methodology step that does nothing in Liner (the agent fetches automatically at compile time), so a row that said "✓ complete · happens at compile" was actively misleading. Removed from PhaseId, computePhases, ProjectHub.enterPhase, primaryActionLabel. (b) **Tightened future-phase lockout in TOC mode**: anything past the current incomplete phase is now blocked from entry, not just `not_started` ones — prevents out-of-order runs. (c) **Sequential status enforcement**: once a phase is non-complete, any later "complete" downgrades to ⚠ needs_review with `· earlier phases not complete` appended to the detail. Stops the swiss-cheese hub view where Phase 7 shows ✓ but Phase 2 is empty. Phase 8 (empirical, optional) is exempt from the sequential rule.
|
|
333
|
-
- 2026-05-19 — **Progress cursor model** (replaces per-artifact status entirely). New `src/progress.ts` owns `.liner-progress.json` (one int: `step`). Phase status is now derived purely from the cursor (`i < step → ✓`, `i === step → ▶`, `i > step → ○`), not from filesystem checks. Detail strings still pull from disk for context but don't drive the badge. `markPhaseComplete()` advances the cursor only when called for the current phase (idempotent, refuses out-of-order advance). One-time migration on hub mount walks `PHASE_ORDER` and sets step to the longest consecutive "done" prefix — handles existing projects from older builds. Wired into all advancement points: PhaseRunner done-success (except assembly), Gate1/Gate2 accept, TapeDraftReview accept (advances "assembly"), CompileView result with failed=0, quick-mode gate auto-skip in `nextScreenFor`. The legacy `enforceSequentialOrder` patch is gone — no longer needed. 12 new unit tests for progress.ts.
|
|
334
|
-
- 2026-05-19 — **Tee-style audit log** (`src/agents/run-log.ts`). Every agent run writes raw JSONL to `<project>/.liner-runs/<phaseId>/<isoTs>.jsonl` with a `_liner_meta` header, raw stream events, stderr lines (wrapped to avoid masquerading as JSON), and a `_liner_close` marker. Not load-bearing for resume (Claude's session.json already handles that) — gives us a per-run transcript curators can scroll back through and a forensic record when things misbehave.
|