tldr-experts 0.31.0 → 0.31.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/CHANGELOG.md +13 -0
- package/README.md +1 -0
- package/dist/hooks/{chunk-3r0hhgcf.js → chunk-4ygy9w7j.js} +9 -0
- package/dist/hooks/session-start.js +1 -1
- package/dist/hooks/statusline.js +1 -1
- package/dist/tldrx.js +5 -1
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.31.1 — 2026-09-16
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **A seed placed at the documented `.tldrx/seeds/<slug>.md` location was invisible to the #346
|
|
8
|
+
`seed_solution` skip, so `how` ran at full price even when the seed already declared its own
|
|
9
|
+
`## Solution` (#358).** `seedDocumentPaths` (`src/core/facilitator/seedSolution.ts`) filtered
|
|
10
|
+
out every first-stage input starting with `.tldrx/` — meant to drop the `what` stage's own
|
|
11
|
+
template inputs (`.tldrx/memory/facts.yml`, `.tldrx/map/{repo}/domains.md`), it also swallowed
|
|
12
|
+
`.tldrx/seeds/…`, the exact path `run new --seed` records and the docs tell writers to use. Now
|
|
13
|
+
only those two template-input families are excluded, so a seed document is recognised wherever
|
|
14
|
+
`run new --seed` accepted it from.
|
|
15
|
+
|
|
3
16
|
## 0.31.0 — 2026-09-16
|
|
4
17
|
|
|
5
18
|
### Added
|
package/README.md
CHANGED
|
@@ -335,6 +335,7 @@ back on the registry is 0.3.0.
|
|
|
335
335
|
|
|
336
336
|
| Version | Date | Status | Contains |
|
|
337
337
|
|---|---|---|---|
|
|
338
|
+
| 0.31.1 | 2026-09-16 | `beta` | One fix, measured on the first unattended run under 0.31.0: a seed placed at the documented `.tldrx/seeds/` location was invisible to the seed-solution detector, because the filter that drops the `what` stage's own framework inputs dropped every `.tldrx/` path, so `how` ran at full price for exactly the seeds #346 was written to skip (#358). |
|
|
338
339
|
| 0.31.0 | 2026-09-16 | `beta` | Ten efficiency adjustments, ranked from a measured audit of 48 runs, so an unattended run spends less and stalls less. `how` is skipped when the seed already declares its own solution, and runs on `sonnet` when it does run (#346); `risks.md` is no longer generated (#350); `watch` follows `build`'s gate policy, so an all-auto run signs itself (#349); a Watch card's `[src:]` punctuation slip is repaired locally instead of costing a turn (#345); a fix list with zero open findings settles the round, an unreadable one holds it by name (#218); `run status` warns NO-RETRY before a retry the budget refuses (#232); a failed headless turn carries a named `failure_kind`, so the loop stops buying the same retry for every death (#348); an orphaned turn is banked as unmetered instead of a confident zero (#337); a relaunch resumes its own epic branch instead of restarting it (#347); the base-tree DoD refusal names the workspace `install:` (#343) and `run auto` names `--wait-gates` (#342). |
|
|
339
340
|
| 0.30.0 | 2026-09-15 | `beta` | Seventeen changes that keep an unattended run moving instead of stranding. A cached Build refusal says so and a relaunch re-measures it (#339); a rate-limit warning is read instead of dropped, so a Build parks before the wall (#298); the plan-over-stage advisory speaks only past 2× (#302); a stage death stops recommending a retry the budget refuses (#232); a DoD command is measured twice, a fix-list finding is checked against the epic tip, and an over-long sha is refused by name (#163); a formatting slip gets one bounded repair turn (#288); five Checks stop asking the reviewer for what it can't do (#195); a Codex review no longer dies before it runs (#148); `tldrx init` probes four commands at once (#180); `tldrx ship` refuses a merged diff nobody judged (#311). Docs: the zero-touch recipe pairs `run auto` with `--wait-gates`/`--wait-answers` (#342). |
|
|
340
341
|
| 0.29.0 | 2026-09-15 | `beta` | Sixteen changes that make an unattended run trust its own gates and its own numbers. Verdict integrity: a reviewer's `changes` must cite evidence (#326), a re-reviewed story's `changes` is consumed instead of parking it (#327), and a story blocked on a stale fix list settles `done` once resolved (#329). Fix-list flow: a headless fix list now buys its own fix round, and an approving reviewer's signature closes what it was shown (#327). Money and phase sizing: `run auto` rebalances a blocked phase's shortfall out of finished phases by default (#330), the `budget-gate` hook stops denying the launch that would fix the shortfall (#321), a Build gate no longer stops on paths outside the declared surface but carries them into the PR instead (#331), a parallel wave no longer hands two developers the same unspent money (#325), `budget show`/`run estimate`/the budget-gate hook price remaining work off the stage's own `attempts:` (#214), `run auto --until-done` states a token refusal in tokens rather than invented dollar words (#270), a Watch turn is recorded as unmetered rather than a false `$0.00` (#224), and a Watch spawn now records the ceiling it was given (#190). Dependency and safety: a Build gate names the story a dependent waits on (#303), the conflict-turn marker guard names unreadable paths, bounds its scan, and covers modified files too (#324), a developer's array-valued `notes` is joined instead of silently dropped (#217), and the Plan prompt states its per-item character cap where each field is described so an over-cap finding survives into the retry (#328). |
|
|
@@ -47,6 +47,7 @@ import {
|
|
|
47
47
|
FRAMEWORK_ROOT,
|
|
48
48
|
MAX_ITEM_CHARS,
|
|
49
49
|
PLAN_STATUSES,
|
|
50
|
+
PROJECT_FRAMEWORK_DIR,
|
|
50
51
|
listRunDirs,
|
|
51
52
|
parseYaml,
|
|
52
53
|
parseYamlRepairing
|
|
@@ -726,6 +727,14 @@ function describeGateSignature(sig) {
|
|
|
726
727
|
|
|
727
728
|
// src/core/facilitator/skipIf.ts
|
|
728
729
|
import { existsSync as existsSync2, readdirSync, readFileSync as readFileSync3 } from "node:fs";
|
|
730
|
+
|
|
731
|
+
// src/core/facilitator/seedSolution.ts
|
|
732
|
+
var WHAT_STAGE_OWN_INPUT_PREFIXES = [
|
|
733
|
+
`${PROJECT_FRAMEWORK_DIR}/memory/`,
|
|
734
|
+
`${PROJECT_FRAMEWORK_DIR}/map/`
|
|
735
|
+
];
|
|
736
|
+
|
|
737
|
+
// src/core/facilitator/skipIf.ts
|
|
729
738
|
function phaseDirs(runDir) {
|
|
730
739
|
try {
|
|
731
740
|
return readdirSync(runDir, { withFileTypes: true }).filter((entry) => entry.isDirectory() && /^0[1-9]-/.test(entry.name)).map((entry) => entry.name).sort();
|
package/dist/hooks/statusline.js
CHANGED
package/dist/tldrx.js
CHANGED
|
@@ -32821,11 +32821,15 @@ import { dirname as dirname12, join as join65 } from "node:path";
|
|
|
32821
32821
|
var SEED_SOLUTION_HEADING_RE = /^(Solution|Technical approach)$/i;
|
|
32822
32822
|
var SEED_SOLUTION_HEADING_LEVEL = 2;
|
|
32823
32823
|
var PHASE_RELATIVE_RE = /^0[1-9]-[a-z]+\//;
|
|
32824
|
+
var WHAT_STAGE_OWN_INPUT_PREFIXES = [
|
|
32825
|
+
`${PROJECT_FRAMEWORK_DIR}/memory/`,
|
|
32826
|
+
`${PROJECT_FRAMEWORK_DIR}/map/`
|
|
32827
|
+
];
|
|
32824
32828
|
function seedDocumentPaths(run) {
|
|
32825
32829
|
const first2 = run.phases[0]?.stages[0];
|
|
32826
32830
|
if (first2 === undefined)
|
|
32827
32831
|
return [];
|
|
32828
|
-
return first2.inputs.filter((path) => !path.startsWith(
|
|
32832
|
+
return first2.inputs.filter((path) => !WHAT_STAGE_OWN_INPUT_PREFIXES.some((prefix2) => path.startsWith(prefix2)) && !PHASE_RELATIVE_RE.test(path));
|
|
32829
32833
|
}
|
|
32830
32834
|
function readSeedDocuments(runDir, run) {
|
|
32831
32835
|
const ctx = { root: workspaceRootOfRunDir(runDir), runDir };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tldr-experts",
|
|
3
|
-
"version": "0.31.
|
|
3
|
+
"version": "0.31.1",
|
|
4
4
|
"description": "tldr-experts: an evidence-first, file-based AI development framework - five stages, a gate on every one, and every claim cited or refused. Installs the `tldrx` (and `tldr-experts`) command. Beta.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Alan Martinez",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$doc": "Shape verified from https://code.claude.com/docs/en/plugins.md (Quickstart > Create the plugin manifest). Fields used here: name, description, version, author.name. Only plugin.json goes inside .claude-plugin/; skills/, agents/ and hooks/ live at the plugin root.",
|
|
3
3
|
"name": "tldrx",
|
|
4
4
|
"description": "tldr-experts: an evidence-first, file-based AI development framework. Five stages, a gate on every one, every claim cited or refused. Beta.",
|
|
5
|
-
"version": "0.31.
|
|
5
|
+
"version": "0.31.1",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Alan Martinez"
|
|
8
8
|
}
|