sourcecode 5.8.27__py3-none-any.whl → 5.8.28__py3-none-any.whl
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.
- sourcecode/__init__.py +1 -1
- sourcecode/__main__.py +7 -0
- sourcecode/_build_commit.py +1 -1
- sourcecode/_docs/DEFECT-LEDGER.md +8 -0
- sourcecode/_docs/USER_GUIDE.md +6 -2
- sourcecode/cache_model.py +2 -1
- sourcecode/cli.py +9 -3
- sourcecode/detach.py +5 -6
- sourcecode/security_config_scan.py +23 -0
- {sourcecode-5.8.27.dist-info → sourcecode-5.8.28.dist-info}/METADATA +5 -5
- {sourcecode-5.8.27.dist-info → sourcecode-5.8.28.dist-info}/RECORD +15 -14
- {sourcecode-5.8.27.dist-info → sourcecode-5.8.28.dist-info}/WHEEL +0 -0
- {sourcecode-5.8.27.dist-info → sourcecode-5.8.28.dist-info}/entry_points.txt +0 -0
- {sourcecode-5.8.27.dist-info → sourcecode-5.8.28.dist-info}/licenses/LICENSE +0 -0
- {sourcecode-5.8.27.dist-info → sourcecode-5.8.28.dist-info}/licenses/NOTICE +0 -0
sourcecode/__init__.py
CHANGED
sourcecode/__main__.py
ADDED
sourcecode/_build_commit.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""Generated at build time by hatch_build.py. Do not edit (AUD-592-D04)."""
|
|
2
2
|
|
|
3
|
-
BUILD_COMMIT = '
|
|
3
|
+
BUILD_COMMIT = 'd7f235cb83611b0aa1ecb9a2d712bfc637f10d92'
|
|
4
4
|
CLOSURE_PROVENANCE = {'Window': {'commit': '', 'status': 'uncited'}, '`AUD-588-F05`': {'commit': '470e4a4', 'status': 'present'}, '`AUD-590-B01` / `B-01`, `F-01`': {'commit': '', 'status': 'uncited'}, '`AUD-590-B02` / `B-02`, `F-02`': {'commit': '', 'status': 'uncited'}, '`AUD-590-B03` / `B-03`, `F-03`': {'commit': '', 'status': 'uncited'}, '`AUD-590-B04` / `B-04`, `F-04`': {'commit': '', 'status': 'uncited'}, '`AUD-590-R01` / `R-01`': {'commit': '', 'status': 'uncited'}, '`AUD-591-A01` / `A-1`': {'commit': '', 'status': 'uncited'}, '`AUD-591-A02` / `A-2`, `A-4`': {'commit': '', 'status': 'uncited'}, '`AUD-591-A03` / `A-3`': {'commit': '', 'status': 'uncited'}, '`AUD-591-A05` / `A-5`': {'commit': '', 'status': 'uncited'}, '`AUD-591-A06` / `A-6`, `A-7`': {'commit': '', 'status': 'uncited'}, '`AUD-591-A08` / `A-8`': {'commit': '', 'status': 'uncited'}, '`AUD-591-A09` / `A-9`': {'commit': '', 'status': 'uncited'}, '`AUD-591-A10` / `A-10`': {'commit': '', 'status': 'uncited'}, '`AUD-592-A02` / `A-1` second half, `§12.5`': {'commit': '63f3d61', 'status': 'present'}, '`AUD-592-B01` / `B-8`': {'commit': '8329614', 'status': 'present'}, '`AUD-592-D01` / `D-1`': {'commit': '0f8e03f', 'status': 'present'}, '`AUD-592-D02` / `D-2`': {'commit': '1d3db4d', 'status': 'present'}, '`AUD-592-D03` / `D-3`': {'commit': 'f28fe40', 'status': 'present'}, '`AUD-592-R01` / `A-1`': {'commit': '216025f', 'status': 'present'}, '`AUD-592-R02` / `N-4`, reopens `AUD-513-N04`': {'commit': 'ec3050d', 'status': 'present'}, '`AUD-593-N01` / `N-01`': {'commit': 'dd6a706', 'status': 'present'}, '`AUD-593-N02` / `N-02`': {'commit': 'f539787', 'status': 'present'}, '`AUD-593-N03` / `N-03`': {'commit': '1dd0b1c', 'status': 'present'}, '`AUD-593-N05` / `N-05`': {'commit': 'aa89388', 'status': 'present'}, '`AUD-593-N06` / `N-06`': {'commit': 'aa584a6', 'status': 'present'}, '`AUD-594-N04` / `D-5`, disclosure half of `B-3`': {'commit': 'a0060b7', 'status': 'present'}, '`AUD-594-X01` / `A-1`, residual of `AUD-593-N03`': {'commit': 'dd222b9', 'status': 'present'}, '`AUD-594-X02` / `A-1` second half': {'commit': '1193937', 'status': 'present'}, '`AUD-594-X03` / `X-03`, residual of `AUD-593-N01`': {'commit': 'e89e8f0', 'status': 'present'}, '`AUD-594-X04`': {'commit': '05b8cc9', 'status': 'present'}, '`AUD-595-A02` / `N-5`, advisory half of `AUD-588-B11`': {'commit': '3e15227', 'status': 'present'}, '`AUD-595-A03` / `B-6` exit-code half': {'commit': 'ab7285f', 'status': 'present'}, '`AUD-595-A05`': {'commit': 'e0b3d10', 'status': 'present'}, '`AUD-595-A07`, narrow half of `AUD-592-A02`': {'commit': 'cc15177', 'status': 'present'}, '`AUD-595-B01` / §B': {'commit': 'b77a1ad', 'status': 'present'}, '`AUD-595-Q01`': {'commit': '91a6566', 'status': 'present'}, '`AUD-596-A01` / `ASK-DET-001`': {'commit': 'fa508b4', 'status': 'present'}, '`AUD-596-A02` / `ASK-SELF-001`': {'commit': '4dfadc8', 'status': 'present'}, '`AUD-596-A03` / `ASK-C1-001`': {'commit': 'bffa3a6', 'status': 'present'}, '`AUD-596-A04` / `ASK-UX-003` + `ASK-UX-004`': {'commit': 'f0aac3c', 'status': 'present'}, '`AUD-596-B01` / `B-01`, harder witness for `BUG-6`': {'commit': '567d09d', 'status': 'present'}, '`AUD-596-B02` / `B-02`, class residual of `R2`': {'commit': '', 'status': 'uncited'}, '`AUD-596-B03` / `B-03`': {'commit': 'a8cb814', 'status': 'present'}, '`AUD-596-B06` / `B-06`': {'commit': '8107927', 'status': 'present'}, '`AUD-596-B07` / `B-07`, class residual of `AUD-592-R02`': {'commit': 'e060485', 'status': 'present'}, '`AUD-596-B09` / `B-09`': {'commit': '5b8146c', 'status': 'present'}, '`AUD-596-B10` / `B-10`': {'commit': '5cb994d', 'status': 'present'}, '`AUD-596-B16` / `B-16`': {'commit': '1507f69', 'status': 'present'}, '`AUD-596-D01` / `B-13` + `B-14`': {'commit': '0b1bdf0', 'status': 'present'}, '`AUD-596-D02` / `B-08`, residual of `AUD-594-N04`': {'commit': 'e7f73c3', 'status': 'present'}, '`AUD-596-D03` / `ASK-AGT-001`': {'commit': '8c46967', 'status': 'present'}, '`AUD-596-D04` / `B-18`': {'commit': '040f027', 'status': 'present'}, '`AUD-596-D05` / `B-19`': {'commit': 'fd2bf68', 'status': 'present'}, '`AUD-596-D06` / `B-20`': {'commit': '784cd83', 'status': 'present'}, '`AUD-596-D07` / `B-17`, half refuted': {'commit': 'c3ff822', 'status': 'present'}, '`AUD-596-D08` / `B-22`, class residual of `AUD-591-A06`': {'commit': 'b396c6a', 'status': 'present'}, '`AUD-596-D09` / `B-23`, surviving half of `B26`': {'commit': 'fd3d63f', 'status': 'present'}, '`AUD-596-D10` / `B-29`': {'commit': '', 'status': 'uncited'}, '`AUD-596-D11` / `ASK-UX-005`': {'commit': 'f4b4f77', 'status': 'present'}, '`AUD-596-D12` — six hints that send the reader back to the error': {'commit': '498df44', 'status': 'present'}, '`AUD-596-D13` / `B-28`': {'commit': '1014c72', 'status': 'present'}, '`AUD-596-D14` / `B-15`, narrow half of `B20`': {'commit': '10f2827', 'status': 'present'}, '`AUD-596-R01` / `B-05`': {'commit': '', 'status': 'uncited'}, '`AUD-596-X01` / `ASK-GATE-001`, gating half of `B24`': {'commit': 'e59c655', 'status': 'present'}, '`AUD-596-X02` / `ASK-UX-001` + `ASK-UX-002` + `B-21`': {'commit': 'f6ebf50', 'status': 'present'}, '`AUD-597-A01` / `ASK-UX-001` + `N-01`': {'commit': 'f8cf061', 'status': 'present'}, '`AUD-597-A02` / `ASK-UX-008` + `ASK-DOC-002`': {'commit': '9d47a4c', 'status': 'present'}, '`AUD-597-A03` / `ASK-DET-001`': {'commit': '4c7622a', 'status': 'present'}, '`AUD-597-A04` / `ASK-LEDGER-001`': {'commit': '46fb870', 'status': 'present'}, '`AUD-597-D01` / `B-04`': {'commit': '1094e6a', 'status': 'present'}, '`AUD-597-D02` / `ASK-DOC-001`': {'commit': 'ecb1bb7', 'status': 'present'}, '`AUD-597-D03` / `N-06`': {'commit': '9784333', 'status': 'present'}, '`AUD-597-D04` / `N-05`': {'commit': 'e51c087', 'status': 'present'}, '`AUD-597-D05` / `N-04`, fourth appearance of `C4-27`': {'commit': '9cccc15', 'status': 'present'}, '`AUD-597-D06` / `ASK-CLI-001`': {'commit': '178aa6d', 'status': 'present'}, '`AUD-597-D07` / `N-03`': {'commit': '9245e35', 'status': 'present'}, '`AUD-597-R01` / `ASK-PERF-001`': {'commit': '6910054', 'status': 'present'}, '`AUD-597-R02` / `ASK-ENC-001`': {'commit': 'ce6dac1', 'status': 'present'}, '`AUD-597-R03` / `ASK-UX-002`': {'commit': 'c57e50b', 'status': 'present'}, '`AUD-597-X01` / `ASK-BUILD-001` + `ASK-META-001` / `B-12`': {'commit': '354338b', 'status': 'present'}, '`AUD-598-B01` / `ASK-META-001`': {'commit': 'b2f7c65', 'status': 'present'}, '`AUD-598-B02` / `ASK-UX-002`': {'commit': '56a4bf7', 'status': 'present'}, '`AUD-598-B03` / `B-11`': {'commit': 'c63cb24', 'status': 'present'}, '`AUD-598-B04` / `N-02`': {'commit': '187937f', 'status': 'present'}, '`AUD-598-R01` / `ASK-PERF-002`': {'commit': '', 'status': 'uncited'}, '`AUD-598-X01` / `N-01` + `B-13` + `B-14` + `B-29` + `N-06`': {'commit': '6f2f5a4', 'status': 'present'}, '`AUD-600-B01` / `P-01`': {'commit': '366ffed', 'status': 'present'}, '`AUD-600-B02` / `P-02` + `ASK-PACK-002`': {'commit': '2a814c3', 'status': 'present'}, '`AUD-600-B03` / `ASK-PACK-001`': {'commit': '452f2a0', 'status': 'present'}, '`AUD-600-D01`': {'commit': '1224e1b', 'status': 'present'}, '`AUD-600-D02`': {'commit': 'eab8172', 'status': 'present'}, '`AUD-600-R01` / `R-01`': {'commit': '88add64', 'status': 'present'}, '`AUD-601-B01` / `N-02`, 5th round': {'commit': '', 'status': 'uncited'}, '`AUD-601-B02` / `ASK-PACK-004`': {'commit': '', 'status': 'uncited'}, '`AUD-601-D01` / `N-01`, `ASK-UX-001`, 5th round': {'commit': '', 'status': 'uncited'}, '`AUD-601-D02` / `B-13`, `B-14`, 5th round': {'commit': '', 'status': 'uncited'}, '`AUD-601-M01` / `B-26`, `B-27` retracted': {'commit': '', 'status': 'uncited'}, '`AUD-601-R01` / `R-02`': {'commit': '', 'status': 'uncited'}, '`B-3`': {'commit': '773268d', 'status': 'present'}, '`B-6`': {'commit': '17c6e06', 'status': 'present'}, '`B-8`': {'commit': '8329614', 'status': 'present'}, '`BUG-3` / `443b345`': {'commit': '', 'status': 'uncited'}, '`BUG-4a` / `AUD-588-B11` residual': {'commit': '24b4185', 'status': 'present'}, '`BUG-4b` / `AUD-588-B11` residual': {'commit': '0376350', 'status': 'present'}, '`E-39`, class residual of `AUD-593-N06`': {'commit': '25fc11f', 'status': 'present'}, '`N-5`': {'commit': 'c68083f', 'status': 'present'}, '`N-7`': {'commit': '082e9de', 'status': 'present'}, '`R-1`': {'commit': '424fb1c', 'status': 'present'}, '`R-2`': {'commit': '5158b92', 'status': 'present'}, '`R-3`': {'commit': '88aec04', 'status': 'present'}, '`R-4`': {'commit': '04fd04f', 'status': 'present'}}
|
|
5
5
|
CLOSURE_COVERAGE = {'closed_rows': 113, 'present': 88, 'absent': 0, 'unresolved': 0, 'uncited': 25, 'unknown': 0}
|
|
@@ -16,6 +16,14 @@ The facts these rows are keyed to are published: `ask schema facts-v1` prints th
|
|
|
16
16
|
|
|
17
17
|
## Current Synchronization
|
|
18
18
|
|
|
19
|
+
**External `5.8.27` audit received, 2026-08-26 — `AUD-603`.** [`AUDIT-2026-08-26-EXTERNAL-5.8.27.md`](AUDIT-2026-08-26-EXTERNAL-5.8.27.md) confirms the SEC-004 and Boot 3 fixes, but reopens detached execution because the direct `python -m sourcecode.cli` worker exits without invoking `main_entry`. It adds a DEAD-001 comment-prose false positive, a `posture --diff --compact` output-ceiling contract defect, and a cold-performance regression signal requiring controlled profiling. The stale timing headline and non-interactive selftest scope warning remain open. WebScripts remains unconfirmed and root-only subcommand `--compact` remains by design.
|
|
20
|
+
|
|
21
|
+
**Current `5.8.27` queue:** `AUD-603-R01` · `AUD-603-S01` · `AUD-603-O01` · `AUD-603-P01` · `AUD-603-U01` · `AUD-603-U02`. This supersedes the earlier AUD-602 implementation-status note for the reopened rows; its historical commits remain evidence, not closure.
|
|
22
|
+
|
|
23
|
+
Implementation status on this branch: `R01`, `S01`, `O01`, `U01` and `U02` have isolated
|
|
24
|
+
fix commits and affected local batteries pass. Native Windows verification remains pending
|
|
25
|
+
for detached execution and field scope warnings; `P01` remains profiling-only.
|
|
26
|
+
|
|
19
27
|
**External `5.8.26` audit received, 2026-08-26 — `AUD-602`.** [`AUDIT-2026-08-26-EXTERNAL-5.8.26.md`](AUDIT-2026-08-26-EXTERNAL-5.8.26.md) adds six actionable items: detached execution on Git Bash/MSYS, `SEC-004` false positives in Spring Security library code, inconsistent non-applicable `boot3_readiness`, manifest-parsing cost requiring profiling, stale root-help timing guidance, and an unguarded multi-repository `selftest` path. The initial root-command hang diagnosis is retracted after a controlled cold/warm retest; it is recorded as slow cold analysis plus insufficient progress communication, not a deadlock. The Micronaut WebScripts message remains unconfirmed, and root-only `--compact` on subcommands is a design choice with a correct `INVALID_USAGE` response, not a defect.
|
|
20
28
|
|
|
21
29
|
**`AUD-602` attack order:** `AUD-602-R01` · `AUD-602-S01` · `AUD-602-D01` · `AUD-602-M01` · `AUD-602-UX01` · `AUD-602-UX02`. No item is closed from the report alone; Windows shell variants, original witness repositories and controlled profiling are required where stated.
|
sourcecode/_docs/USER_GUIDE.md
CHANGED
|
@@ -46,10 +46,14 @@ CLI commands — impact, endpoints, spring-audit, explain, … each a pro
|
|
|
46
46
|
The key idea: the extraction is **content-addressed**. Commands reuse the parse cache and,
|
|
47
47
|
where their analysed scope matches, the shared Canonical IR; `ask cache model` names what a
|
|
48
48
|
warm buys for each command rather than implying that every projection costs the same. In
|
|
49
|
-
5.8.
|
|
49
|
+
5.8.28, `validation` enters through that shared CIR and `data-exposure` reuses one semantic
|
|
50
50
|
model across all declared label seeds. (The extraction and consumption contract is fixed in
|
|
51
51
|
the architecture ADRs 0001–0004 under `docs/architecture/`.)
|
|
52
52
|
|
|
53
|
+
The current external audit intake is tracked in
|
|
54
|
+
[`AUDIT-2026-08-26-EXTERNAL-5.8.27.md`](AUDIT-2026-08-26-EXTERNAL-5.8.27.md); in
|
|
55
|
+
particular, detached execution and bounded output remain under verification.
|
|
56
|
+
|
|
53
57
|
---
|
|
54
58
|
|
|
55
59
|
## The semantic engine
|
|
@@ -178,7 +182,7 @@ pipx install sourcecode # isolated install, no venv needed
|
|
|
178
182
|
|
|
179
183
|
# Verify
|
|
180
184
|
ask version
|
|
181
|
-
# ask 5.8.
|
|
185
|
+
# ask 5.8.28
|
|
182
186
|
```
|
|
183
187
|
|
|
184
188
|
Requires Python 3.9+.
|
sourcecode/cache_model.py
CHANGED
|
@@ -830,7 +830,8 @@ def cost_sentence() -> str:
|
|
|
830
830
|
f"({_gate_cell['cache_state']} cache, {_gate_cell['host_class']})."
|
|
831
831
|
)
|
|
832
832
|
return (
|
|
833
|
-
f"
|
|
833
|
+
f"Historical field anchor only: cost tracks the command class and the build, "
|
|
834
|
+
f"not the file count: "
|
|
834
835
|
f"per-symbol queries are the fast path, inventory commands scale with "
|
|
835
836
|
f"files, and a repository-wide audit measured {seconds:g} s on a "
|
|
836
837
|
f"{_thousands(FIELD_ANCHOR_JAVA_FILES)}-file repository "
|
sourcecode/cli.py
CHANGED
|
@@ -14182,7 +14182,12 @@ def posture_cmd(
|
|
|
14182
14182
|
_posture_limit = 1 if data.get("summary", {}).get("unresolved", 0) else 0
|
|
14183
14183
|
bound_lists(
|
|
14184
14184
|
data, POSTURE_BOUNDED_LISTS, _posture_limit,
|
|
14185
|
-
|
|
14185
|
+
# `--compact` is a size contract for agent output. The monotone
|
|
14186
|
+
# optimisation may keep a list whole when its disclosure costs more
|
|
14187
|
+
# than that individual cut, leaving a large diff above the ceiling.
|
|
14188
|
+
# An explicit --limit remains a precise shape request; compact must
|
|
14189
|
+
# actually remove every registered body.
|
|
14190
|
+
monotone=False,
|
|
14186
14191
|
)
|
|
14187
14192
|
|
|
14188
14193
|
_emit_command_output(
|
|
@@ -16421,10 +16426,11 @@ def selftest_cmd(
|
|
|
16421
16426
|
|
|
16422
16427
|
nested = nested_repository_count(target)
|
|
16423
16428
|
if nested:
|
|
16424
|
-
|
|
16429
|
+
typer.echo(
|
|
16425
16430
|
f"selftest is scanning {nested} nested Git repository(s) under the "
|
|
16426
16431
|
"implicit current-directory path; pass an explicit repository path "
|
|
16427
|
-
"to scope the ledger run"
|
|
16432
|
+
"to scope the ledger run",
|
|
16433
|
+
err=True,
|
|
16428
16434
|
)
|
|
16429
16435
|
_enforce_format("selftest", format)
|
|
16430
16436
|
selected = tuple(part.strip() for part in (rows or "").split(",") if part.strip())
|
sourcecode/detach.py
CHANGED
|
@@ -156,12 +156,11 @@ def run_detached(args: "list[str]", *, root: Path) -> dict:
|
|
|
156
156
|
"""Start `args` (already free of the flag) detached; return the envelope."""
|
|
157
157
|
stamp = f"{int(time.time())}-{os.getpid()}"
|
|
158
158
|
log_path = logs_dir(root) / f"{stamp}.log"
|
|
159
|
-
# Invoke
|
|
160
|
-
# launcher (ask.exe -> shim -> worker). The shorter
|
|
161
|
-
# makes Windows job-object breakaway reliable under
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
argv = [sys.executable, sys.argv[0], *args]
|
|
159
|
+
# Invoke the package's executable module instead of re-entering an
|
|
160
|
+
# installed console launcher (ask.exe -> shim -> worker). The shorter
|
|
161
|
+
# process tree is what makes Windows job-object breakaway reliable under
|
|
162
|
+
# MSYS/Git Bash, and __main__.py guarantees this actually runs the CLI.
|
|
163
|
+
argv = [sys.executable, "-m", "sourcecode", *args]
|
|
165
164
|
pid, broke_away = _spawn(argv, log_path)
|
|
166
165
|
return {
|
|
167
166
|
"schema_version": SCHEMA_VERSION,
|
|
@@ -548,6 +548,23 @@ def _control_is_live_below(live_source: str, end: int, pattern: "re.Pattern") ->
|
|
|
548
548
|
return bool(pattern.search(window[:stop]))
|
|
549
549
|
|
|
550
550
|
|
|
551
|
+
def _is_commented_annotation_directive(text: str) -> bool:
|
|
552
|
+
"""Distinguish a commented annotation from prose that mentions one."""
|
|
553
|
+
for line in text.splitlines():
|
|
554
|
+
candidate = line.strip()
|
|
555
|
+
if candidate.startswith("//"):
|
|
556
|
+
candidate = candidate[2:].lstrip()
|
|
557
|
+
elif candidate.startswith("/*"):
|
|
558
|
+
candidate = candidate[2:].lstrip("* ")
|
|
559
|
+
elif candidate.startswith("*"):
|
|
560
|
+
candidate = candidate[1:].lstrip()
|
|
561
|
+
else:
|
|
562
|
+
continue
|
|
563
|
+
if candidate.startswith("@"):
|
|
564
|
+
return True
|
|
565
|
+
return False
|
|
566
|
+
|
|
567
|
+
|
|
551
568
|
def _scan_commented_controls(
|
|
552
569
|
source: str,
|
|
553
570
|
rel: str,
|
|
@@ -586,6 +603,12 @@ def _scan_commented_controls(
|
|
|
586
603
|
for pattern, symbol, detail in rules:
|
|
587
604
|
if not pattern.search(text):
|
|
588
605
|
continue
|
|
606
|
+
if (
|
|
607
|
+
not xml
|
|
608
|
+
and symbol == "commented_security_annotation"
|
|
609
|
+
and not _is_commented_annotation_directive(text)
|
|
610
|
+
):
|
|
611
|
+
continue
|
|
589
612
|
if not xml and _control_is_live_below(live_source or "", end, pattern):
|
|
590
613
|
continue
|
|
591
614
|
line = _line_of(source, start)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.8.
|
|
3
|
+
Version: 5.8.28
|
|
4
4
|
Summary: Persistent structural context and ultra-fast repeated analysis for AI coding agents
|
|
5
5
|
Project-URL: Homepage, https://github.com/HarounDominique/sourcecode
|
|
6
6
|
Project-URL: Repository, https://github.com/HarounDominique/sourcecode
|
|
@@ -59,7 +59,7 @@ Description-Content-Type: text/markdown
|
|
|
59
59
|
> question. All analysis is local and deterministic; see [Privacy](#configuration--privacy)
|
|
60
60
|
> before inspecting a repository whose telemetry policy you need to control.
|
|
61
61
|
|
|
62
|
-

|
|
63
63
|

|
|
64
64
|
|
|
65
65
|
Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
|
|
@@ -177,13 +177,13 @@ set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
|
|
|
177
177
|
answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
|
|
178
178
|
unset, or set it to `0`, to disable the ceiling explicitly.
|
|
179
179
|
|
|
180
|
-
**Current performance status.** Release 5.8.
|
|
180
|
+
**Current performance status.** Release 5.8.28 retains the shared Canonical IR
|
|
181
181
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
182
182
|
runs; the no-label path remains parse-free. These are implementation properties,
|
|
183
183
|
not duration promises. A controlled external warm-path audit has opened performance
|
|
184
184
|
and bounded-output regressions for this release; use `ask cache model <repo>` and
|
|
185
185
|
`--progress stderr` for supervised runs, and consult the
|
|
186
|
-
[active audit intake](docs/AUDIT-2026-08-
|
|
186
|
+
[active audit intake](docs/AUDIT-2026-08-26-EXTERNAL-5.8.27.md) before treating a
|
|
187
187
|
historical timing or bounded flag as a current guarantee.
|
|
188
188
|
|
|
189
189
|
**What a warm actually covers.** `ask cache warm` runs the compact analysis: it rebuilds the
|
|
@@ -210,7 +210,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
210
210
|
# pip / pipx
|
|
211
211
|
pipx install sourcecode # or: pip install sourcecode
|
|
212
212
|
|
|
213
|
-
ask version # ask 5.8.
|
|
213
|
+
ask version # ask 5.8.28 — and, on a build that has aged,
|
|
214
214
|
# how many releases have probably shipped since
|
|
215
215
|
```
|
|
216
216
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
sourcecode/__init__.py,sha256=
|
|
2
|
-
sourcecode/
|
|
1
|
+
sourcecode/__init__.py,sha256=yPKB5UlxpV6yIDosSor1B2sefyWnMqHpTN6lZpHG5Pc,309
|
|
2
|
+
sourcecode/__main__.py,sha256=qDFVkobwsdZrX0B3stiRqsUNivVpybKO-egzAwCW4xw,165
|
|
3
|
+
sourcecode/_build_commit.py,sha256=aeTrBKsON5PVzaTNJ18QZspO3dZPmMWo7yx_49L7YiQ,8740
|
|
3
4
|
sourcecode/adaptive_scanner.py,sha256=yJBKjNpkY6bpueYJ2YnRezen3sYZDecEt7WaaNWdqug,9466
|
|
4
5
|
sourcecode/analysis_budget.py,sha256=ZuNEboPF8A6GK-_V7WNt92ezgriga7_Rbr-vvSN4UEE,4183
|
|
5
6
|
sourcecode/answer_bounds.py,sha256=_51_DCuYEUmI_xwUFxDMiprSavkNakkLiIBbPjevQ3M,9793
|
|
@@ -19,7 +20,7 @@ sourcecode/build_modules.py,sha256=rsT8reXoeOGztX28SNwem3yGdBhAC5VJx9RL2vRp_d0,1
|
|
|
19
20
|
sourcecode/build_stamp.py,sha256=YWlnT8CEFzMre5pacRQkc244BfZNG5owySIyP9Dq4pw,7677
|
|
20
21
|
sourcecode/bundled_docs.py,sha256=KymEkB7P8oeg0-PjcD8eRSDhqQbwQxDUbHv1i00LQOc,2663
|
|
21
22
|
sourcecode/cache.py,sha256=z_1T0ClTbC3DaG_Fo-6_HKRUdBXHbwNoVvj8gZmQVGo,45591
|
|
22
|
-
sourcecode/cache_model.py,sha256=
|
|
23
|
+
sourcecode/cache_model.py,sha256=Wnkg6e9LgVLO3bwyp8Y5lAjPp_RXQqYwEyJG8_8lZsE,73211
|
|
23
24
|
sourcecode/cache_observation.py,sha256=5E2BeqiYE5wBCbvDglkc5A9fTNhXkT_OhcDuuCqRu4Q,5622
|
|
24
25
|
sourcecode/call_surface.py,sha256=fiqYfHooxN1fX9oQoysq1LS3LoZcobhyUNjAGEZKpwk,4148
|
|
25
26
|
sourcecode/caller_metrics.py,sha256=zGc3sHRRwEJgAGmyfqEiH69mD9w5rOqMUhzby8Vmm_w,12599
|
|
@@ -30,7 +31,7 @@ sourcecode/change_plan.py,sha256=drAoDsqFplutCLc6Y0xue7sYkTls0SpYh7aOXvttv3I,129
|
|
|
30
31
|
sourcecode/ci_output.py,sha256=X4NRokWWMRF9Ex8OQrEO2g04GzJ00GDP5zYIoqI9YCc,4625
|
|
31
32
|
sourcecode/cir_graphs.py,sha256=RytqSv1WF8kdlfXj2fPQz16LY4akS2kyThbdWL8beCQ,14835
|
|
32
33
|
sourcecode/classifier.py,sha256=JBzPwSSrDG-tUHAbcKB678HRbjLpD-ohzbzzO62mgpo,20114
|
|
33
|
-
sourcecode/cli.py,sha256=
|
|
34
|
+
sourcecode/cli.py,sha256=_bpHtBlhZAHShIIT5ljSzoiS2pd9Gqb4Z3Ie7ljJAJg,866947
|
|
34
35
|
sourcecode/client_calls.py,sha256=YOPnfRZzRyqmdHvXSVeiunW8cuiuCuWXacNIQRgKMCw,22640
|
|
35
36
|
sourcecode/code_notes_analyzer.py,sha256=EJemNCNc9Dn-1RZYu-aNbK0ELzmsyC4s6FdHi3XyNEI,9392
|
|
36
37
|
sourcecode/compare.py,sha256=Lnfmm9I3k0H1jP1tV6ZJ-R7znjQPLPLCe5TzV1Jb_PM,15323
|
|
@@ -54,7 +55,7 @@ sourcecode/defect_identity.py,sha256=XS2VFDImg9NLaRImybKTeyk-CoDSsXmchldg0dwvM7c
|
|
|
54
55
|
sourcecode/degradation.py,sha256=BtuGUKFgkzI3Z6fwmUdxEUEaLFAcPQ_bHhU2w9ItDxw,18376
|
|
55
56
|
sourcecode/dependency_analyzer.py,sha256=MRv6eh1TG5E9Y5Db-bNdZHDIJ3gWvvL3bBU1-9_QSZI,64593
|
|
56
57
|
sourcecode/deployment_prefix.py,sha256=kPHPT6ZLg6CnMqCp9QwhbNNjDyS0sXAfKlPtSHUMggs,12180
|
|
57
|
-
sourcecode/detach.py,sha256=
|
|
58
|
+
sourcecode/detach.py,sha256=Otoe7Egcn5Mcl_cRAstXLyDWA5D7dPAhOv39T5fJYpo,8257
|
|
58
59
|
sourcecode/doc_analyzer.py,sha256=05bjTUbDbmnbajD_cgRnACzS8T7xxBKVX4CjkJlhZg8,24411
|
|
59
60
|
sourcecode/dynamic_argument_surface.py,sha256=u6zJoY-zChYVw1-SrgiyAq-rUwqMZ5ZqBwLfbPJ_8ng,2960
|
|
60
61
|
sourcecode/empty_reach.py,sha256=evKK2DyHbjqe_Wimq4-HfgD40Fdk-j6WiZwQaVXQ5t4,15671
|
|
@@ -149,7 +150,7 @@ sourcecode/schema_producers.py,sha256=4XzW4wZXnFHOaJT7XenirXGCo0pPZhkdhb7zcDtqFn
|
|
|
149
150
|
sourcecode/schema_registry.py,sha256=VP7yD_e2frajNVVQz31BRCtrREDHGROMCg8J3vI7dgQ,26482
|
|
150
151
|
sourcecode/security_chain.py,sha256=1YZVeFLwy65kntMBhMNvz1cUpOoKCmvEqYICgxs66Gw,6823
|
|
151
152
|
sourcecode/security_config.py,sha256=LUppRDYQK0oKM4qdEOLObaeU3frFTS-paEZo7dMgtY8,5467
|
|
152
|
-
sourcecode/security_config_scan.py,sha256=
|
|
153
|
+
sourcecode/security_config_scan.py,sha256=LU8gfNUBB6wjKR8jkK-qRKtUrbkHZ301_Xsk6hSp4XU,35916
|
|
153
154
|
sourcecode/security_posture.py,sha256=ZWgWMsVdvkDHOkTtAy6T3Q9Kp8ufWsdqPsFQZVBNAFM,56885
|
|
154
155
|
sourcecode/selection_contract.py,sha256=O3q_zHBgUsp1SDukqmH9nOUO6HxLFH_7fAqVL7JMV_A,1974
|
|
155
156
|
sourcecode/selftest.py,sha256=WjD2xMa55k2svoBMpBLpHCPMip3rtSNUbskSqsuB3iY,40056
|
|
@@ -255,13 +256,13 @@ sourcecode/telemetry/consent.py,sha256=-Wb8BFGXEexOs8M0Eja7F-T6ZtLNPeRoZnHcHvlP7
|
|
|
255
256
|
sourcecode/telemetry/events.py,sha256=l3Z2SQUO4_C2D2ItXOOdVNimAmHedUHnUxqYFTxnsAE,2900
|
|
256
257
|
sourcecode/telemetry/filters.py,sha256=-lqT2oorECuqEIdeHb--7AZ6BCaUx0bya720a-Z5x6w,7335
|
|
257
258
|
sourcecode/telemetry/transport.py,sha256=4gGHsq0WeY9VywEZXA3vUxykfiYnw9uuqfjAAec7F8o,1681
|
|
258
|
-
sourcecode/_docs/DEFECT-LEDGER.md,sha256=
|
|
259
|
+
sourcecode/_docs/DEFECT-LEDGER.md,sha256=iMqnJZiTDn9YCJqlcBWJd56OeYCRyZTWJ_QGZ4xRLpg,1106448
|
|
259
260
|
sourcecode/_docs/LICENSE,sha256=23-fk61oSWGVmkWyka-FIM0rhAPM2hcYHnsaridL8Uo,1859
|
|
260
261
|
sourcecode/_docs/NOTICE,sha256=Br-AA8Y3iJo1WXa5uP8QBpzqI5nDu3iGLbFyvDt3BOs,321
|
|
261
|
-
sourcecode/_docs/USER_GUIDE.md,sha256=
|
|
262
|
-
sourcecode-5.8.
|
|
263
|
-
sourcecode-5.8.
|
|
264
|
-
sourcecode-5.8.
|
|
265
|
-
sourcecode-5.8.
|
|
266
|
-
sourcecode-5.8.
|
|
267
|
-
sourcecode-5.8.
|
|
262
|
+
sourcecode/_docs/USER_GUIDE.md,sha256=pcUW3i70WYBLRJv8g9N2K54TLgYJIHLPPDJrNqt-JNc,93211
|
|
263
|
+
sourcecode-5.8.28.dist-info/METADATA,sha256=7wFxkTvALDecW-dP5xuJ3-AS0rQCC6x6cR_l2NJ89EY,55418
|
|
264
|
+
sourcecode-5.8.28.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
|
|
265
|
+
sourcecode-5.8.28.dist-info/entry_points.txt,sha256=-JEAdChrK5We51kZcb7OaDcyil-dHBjBPL-NhuO-QY8,89
|
|
266
|
+
sourcecode-5.8.28.dist-info/licenses/LICENSE,sha256=23-fk61oSWGVmkWyka-FIM0rhAPM2hcYHnsaridL8Uo,1859
|
|
267
|
+
sourcecode-5.8.28.dist-info/licenses/NOTICE,sha256=Br-AA8Y3iJo1WXa5uP8QBpzqI5nDu3iGLbFyvDt3BOs,321
|
|
268
|
+
sourcecode-5.8.28.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|