context-loader 1.3.6__tar.gz → 1.3.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: context-loader
3
- Version: 1.3.6
3
+ Version: 1.3.8
4
4
  Summary: Render deterministic local Git context for any executor
5
5
  License: Apache License
6
6
  Version 2.0, January 2004
@@ -219,14 +219,14 @@ Python standard library.
219
219
 
220
220
  ## Open-source quick start
221
221
 
222
- Current stable release: **1.3.6**. Local CLI for coding-agent workflows; renders deterministic Markdown or JSON.
222
+ Current stable release: **1.3.8**. Local CLI for coding-agent workflows; renders deterministic Markdown or JSON.
223
223
 
224
224
  ```bash
225
- uv tool install 'context-loader==1.3.6'
225
+ uv tool install 'context-loader==1.3.8'
226
226
  ```
227
227
 
228
228
  ```bash
229
- pip install 'context-loader==1.3.6'
229
+ pip install 'context-loader==1.3.8'
230
230
  ```
231
231
 
232
232
  ```bash
@@ -239,21 +239,21 @@ project-context --repo /path/to/repo --format json
239
239
 
240
240
  ## Install
241
241
 
242
- Source version: `1.3.6`. Install its matching published release or an exact source commit.
242
+ Source version: `1.3.8`. Install its matching published release or an exact source commit.
243
243
 
244
244
  Install via `uv`:
245
245
 
246
246
  ```bash
247
- uv tool install 'context-loader==1.3.6'
247
+ uv tool install 'context-loader==1.3.8'
248
248
  ```
249
249
 
250
250
  Install via `pip`:
251
251
 
252
252
  ```bash
253
- pip install 'context-loader==1.3.6'
253
+ pip install 'context-loader==1.3.8'
254
254
  ```
255
255
 
256
- For development or source-based installs tracking current repository (`1.3.6`):
256
+ For development or source-based installs tracking current repository (`1.3.8`):
257
257
 
258
258
  ```bash
259
259
  uv tool install git+https://github.com/xuanheng-tech/context-loader.git
@@ -336,6 +336,8 @@ order:
336
336
  7. `Directory Tree`
337
337
 
338
338
  The output has no generated timestamp, AI summary, architecture inference, or diff body.
339
+ The Markdown CLI skips the nested-instruction presence scan, which contributes only to
340
+ the machine formats; this does not change Markdown content or its byte budgets.
339
341
 
340
342
  ## JSON Output
341
343
 
@@ -350,7 +352,7 @@ set differs, as described under “Compact model consumption”. The declared co
350
352
  "schema_version": 3,
351
353
  "tool": {
352
354
  "name": "context-loader",
353
- "version": "1.3.6"
355
+ "version": "1.3.8"
354
356
  },
355
357
  "repository": {
356
358
  "requested_path": "/canonical/requested/path",
@@ -445,6 +447,9 @@ semantics.
445
447
 
446
448
  ### Compact model consumption (`--format json-compact`)
447
449
 
450
+ Model callers should prefer `json-compact` when they consume the assembled `context`;
451
+ use full `json` when a consumer explicitly needs separate source bodies.
452
+
448
453
  `--format json-compact` emits a `schema_version` 4 document: exactly the version-3 document with
449
454
  `sources[*].content` omitted. Every other field — `context`, `context_sha256`, `statuses`,
450
455
  `nested_context`, `warnings`, `tool`, `repository`, and each source's `ordinal`, `kind`, `scope`,
@@ -470,7 +475,7 @@ although 1.1.0 added the top-level `statuses` key. From release 1.2.0 onward eac
470
475
  names exactly one key set, and a new number is issued whenever a key set would otherwise be reused.
471
476
 
472
477
  The JSON schema version and package version are independent: this build emits `schema_version` `3`
473
- for `--format json` and `4` for `--format json-compact`, while `tool.version` is `1.3.6`. Version 1
478
+ for `--format json` and `4` for `--format json-compact`, while `tool.version` is `1.3.8`. Version 1
474
479
  and 2 are the exact shapes already published in release 1.2.0 and are never reused: because
475
480
  `nested_context` changes the default document's key set, version 3 names the current full-document
476
481
  key set and version 4 names the compact projection.
@@ -526,6 +531,13 @@ so `CI` does not match `special`. Existing stopwords, scoring and byte budgets s
526
531
  a Han term in a heading and body does not increase its score. This is literal matching without word
527
532
  segmentation, synonyms or translation.
528
533
 
534
+ Two distinct eligible focus terms in the same section body can select that section even when its
535
+ heading does not contain them; a single incidental body term is not enough on its own. Heading
536
+ terms keep their stronger weighting. Generic directory components such as `packages`,
537
+ `data` and `research` are ignored as path terms; exact path occurrences and specific components
538
+ remain eligible. For long instructions, use terms from the actual headings or rule text and inspect
539
+ the omitted-heading index before assuming a rule is absent.
540
+
529
541
  `Omitted source characters` is measured against the whole normalized source, so a bounded source
530
542
  scan that ends before EOF still reports the characters it could not select.
531
543
 
@@ -588,16 +600,22 @@ bullet is a per-component, read or capture bound, as each one states:
588
600
  removes that many bytes of entries, and the `truncated` status plus the marker inside the
589
601
  fence say so. The heading and the code-fence lines are not metered, so the whole Markdown
590
602
  section can exceed 12 KiB by that fixed few dozen bytes.
591
- - Nested `AGENTS.md` presence scan: depth 4, 2,000 directories, at most 32 reported paths, a
603
+ - Nested `AGENTS.md` presence scan: depth 4, 2,000 directory-open attempts (including the root
604
+ and failed attempts), at most 32 reported paths, a
592
605
  4 KiB budget metered on the emitted array, and at most 1,024 entries retained and classified
593
606
  per directory. Names are scanned to select that prefix, subject to the separate hard
594
607
  name-scan bound below; file contents are never read
608
+ - A tree entry whose type cannot be determined is shown as `Skipped: unable to classify.`
609
+ and reports an `unreadable` tree-entry status; it is not presented as an ordinary file.
595
610
  - Directory name scans stop on the first entry beyond 65,536 names per directory. An
596
611
  over-limit directory's entire partial prefix is discarded to keep results independent of
597
612
  operating system order. The tree emits `Skipped: directory name scan limit reached.` and
598
613
  a `directory_scan_limit_exceeded` status; the nested presence scan sets `scan_truncated`.
599
614
  This bounds name iteration, not elapsed time on a blocked filesystem call.
600
615
  - Working-tree changes: 100 paths and 4 KiB
616
+ - Working-tree status is parsed incrementally, retaining only the first 100 paths sorted
617
+ by raw filesystem bytes. All records remain subject to validation, the shared Git
618
+ deadline and the 16 MiB output limit, including records beyond the displayed prefix.
601
619
  - Recent commits: 8
602
620
  - JSON-only listings have no byte budget of their own: `statuses` subjects are escaped names bounded
603
621
  by the entry counts above, while `repository` and `sources[*].path` are emitted verbatim, so a
@@ -655,7 +673,7 @@ or candidate-file content.
655
673
 
656
674
  ## Not Included
657
675
 
658
- Version 1.3.6 does not provide AI summaries, project-type detection, loading or transport of
676
+ Version 1.3.8 does not provide AI summaries, project-type detection, loading or transport of
659
677
  nested `AGENTS.md` contents (the JSON `nested_context` field reports bounded existence only),
660
678
  Memory retrieval, semantic ranking, ignore-rule parsing, plugins, profiles, caches, databases,
661
679
  network services, MCP, daemons, GUIs, CI/CD, telemetry, or automatic updates.
@@ -8,14 +8,14 @@ Python standard library.
8
8
 
9
9
  ## Open-source quick start
10
10
 
11
- Current stable release: **1.3.6**. Local CLI for coding-agent workflows; renders deterministic Markdown or JSON.
11
+ Current stable release: **1.3.8**. Local CLI for coding-agent workflows; renders deterministic Markdown or JSON.
12
12
 
13
13
  ```bash
14
- uv tool install 'context-loader==1.3.6'
14
+ uv tool install 'context-loader==1.3.8'
15
15
  ```
16
16
 
17
17
  ```bash
18
- pip install 'context-loader==1.3.6'
18
+ pip install 'context-loader==1.3.8'
19
19
  ```
20
20
 
21
21
  ```bash
@@ -28,21 +28,21 @@ project-context --repo /path/to/repo --format json
28
28
 
29
29
  ## Install
30
30
 
31
- Source version: `1.3.6`. Install its matching published release or an exact source commit.
31
+ Source version: `1.3.8`. Install its matching published release or an exact source commit.
32
32
 
33
33
  Install via `uv`:
34
34
 
35
35
  ```bash
36
- uv tool install 'context-loader==1.3.6'
36
+ uv tool install 'context-loader==1.3.8'
37
37
  ```
38
38
 
39
39
  Install via `pip`:
40
40
 
41
41
  ```bash
42
- pip install 'context-loader==1.3.6'
42
+ pip install 'context-loader==1.3.8'
43
43
  ```
44
44
 
45
- For development or source-based installs tracking current repository (`1.3.6`):
45
+ For development or source-based installs tracking current repository (`1.3.8`):
46
46
 
47
47
  ```bash
48
48
  uv tool install git+https://github.com/xuanheng-tech/context-loader.git
@@ -125,6 +125,8 @@ order:
125
125
  7. `Directory Tree`
126
126
 
127
127
  The output has no generated timestamp, AI summary, architecture inference, or diff body.
128
+ The Markdown CLI skips the nested-instruction presence scan, which contributes only to
129
+ the machine formats; this does not change Markdown content or its byte budgets.
128
130
 
129
131
  ## JSON Output
130
132
 
@@ -139,7 +141,7 @@ set differs, as described under “Compact model consumption”. The declared co
139
141
  "schema_version": 3,
140
142
  "tool": {
141
143
  "name": "context-loader",
142
- "version": "1.3.6"
144
+ "version": "1.3.8"
143
145
  },
144
146
  "repository": {
145
147
  "requested_path": "/canonical/requested/path",
@@ -234,6 +236,9 @@ semantics.
234
236
 
235
237
  ### Compact model consumption (`--format json-compact`)
236
238
 
239
+ Model callers should prefer `json-compact` when they consume the assembled `context`;
240
+ use full `json` when a consumer explicitly needs separate source bodies.
241
+
237
242
  `--format json-compact` emits a `schema_version` 4 document: exactly the version-3 document with
238
243
  `sources[*].content` omitted. Every other field — `context`, `context_sha256`, `statuses`,
239
244
  `nested_context`, `warnings`, `tool`, `repository`, and each source's `ordinal`, `kind`, `scope`,
@@ -259,7 +264,7 @@ although 1.1.0 added the top-level `statuses` key. From release 1.2.0 onward eac
259
264
  names exactly one key set, and a new number is issued whenever a key set would otherwise be reused.
260
265
 
261
266
  The JSON schema version and package version are independent: this build emits `schema_version` `3`
262
- for `--format json` and `4` for `--format json-compact`, while `tool.version` is `1.3.6`. Version 1
267
+ for `--format json` and `4` for `--format json-compact`, while `tool.version` is `1.3.8`. Version 1
263
268
  and 2 are the exact shapes already published in release 1.2.0 and are never reused: because
264
269
  `nested_context` changes the default document's key set, version 3 names the current full-document
265
270
  key set and version 4 names the compact projection.
@@ -315,6 +320,13 @@ so `CI` does not match `special`. Existing stopwords, scoring and byte budgets s
315
320
  a Han term in a heading and body does not increase its score. This is literal matching without word
316
321
  segmentation, synonyms or translation.
317
322
 
323
+ Two distinct eligible focus terms in the same section body can select that section even when its
324
+ heading does not contain them; a single incidental body term is not enough on its own. Heading
325
+ terms keep their stronger weighting. Generic directory components such as `packages`,
326
+ `data` and `research` are ignored as path terms; exact path occurrences and specific components
327
+ remain eligible. For long instructions, use terms from the actual headings or rule text and inspect
328
+ the omitted-heading index before assuming a rule is absent.
329
+
318
330
  `Omitted source characters` is measured against the whole normalized source, so a bounded source
319
331
  scan that ends before EOF still reports the characters it could not select.
320
332
 
@@ -377,16 +389,22 @@ bullet is a per-component, read or capture bound, as each one states:
377
389
  removes that many bytes of entries, and the `truncated` status plus the marker inside the
378
390
  fence say so. The heading and the code-fence lines are not metered, so the whole Markdown
379
391
  section can exceed 12 KiB by that fixed few dozen bytes.
380
- - Nested `AGENTS.md` presence scan: depth 4, 2,000 directories, at most 32 reported paths, a
392
+ - Nested `AGENTS.md` presence scan: depth 4, 2,000 directory-open attempts (including the root
393
+ and failed attempts), at most 32 reported paths, a
381
394
  4 KiB budget metered on the emitted array, and at most 1,024 entries retained and classified
382
395
  per directory. Names are scanned to select that prefix, subject to the separate hard
383
396
  name-scan bound below; file contents are never read
397
+ - A tree entry whose type cannot be determined is shown as `Skipped: unable to classify.`
398
+ and reports an `unreadable` tree-entry status; it is not presented as an ordinary file.
384
399
  - Directory name scans stop on the first entry beyond 65,536 names per directory. An
385
400
  over-limit directory's entire partial prefix is discarded to keep results independent of
386
401
  operating system order. The tree emits `Skipped: directory name scan limit reached.` and
387
402
  a `directory_scan_limit_exceeded` status; the nested presence scan sets `scan_truncated`.
388
403
  This bounds name iteration, not elapsed time on a blocked filesystem call.
389
404
  - Working-tree changes: 100 paths and 4 KiB
405
+ - Working-tree status is parsed incrementally, retaining only the first 100 paths sorted
406
+ by raw filesystem bytes. All records remain subject to validation, the shared Git
407
+ deadline and the 16 MiB output limit, including records beyond the displayed prefix.
390
408
  - Recent commits: 8
391
409
  - JSON-only listings have no byte budget of their own: `statuses` subjects are escaped names bounded
392
410
  by the entry counts above, while `repository` and `sources[*].path` are emitted verbatim, so a
@@ -444,7 +462,7 @@ or candidate-file content.
444
462
 
445
463
  ## Not Included
446
464
 
447
- Version 1.3.6 does not provide AI summaries, project-type detection, loading or transport of
465
+ Version 1.3.8 does not provide AI summaries, project-type detection, loading or transport of
448
466
  nested `AGENTS.md` contents (the JSON `nested_context` field reports bounded existence only),
449
467
  Memory retrieval, semantic ranking, ignore-rule parsing, plugins, profiles, caches, databases,
450
468
  network services, MCP, daemons, GUIs, CI/CD, telemetry, or automatic updates.
@@ -1,3 +1,3 @@
1
1
  """Project Context Loader."""
2
2
 
3
- __version__ = "1.3.6"
3
+ __version__ = "1.3.8"