Commit Graph
5063 Commits
Author SHA1 Message Date
ed 2b2ff48a35 docs(twitter): add 2011429743053111302 corpus (NOTimothyLottes color-forth permutation space + @VPCOMPRESSB)
3-post thread, 1 image. Links a YouTube video on exploring the
permutation space of color-forth-like systems. @VPCOMPRESSB asks if
the program should optimize its own code at/after init for every
subsequent exec to be hyper-specialized. NOTimothyLottes: yes can do
that, but those systems are already faster than human response time
(without external Linux kernel deps); will be able to recompile all
binary code (including GPU-side) in a tiny fraction of frame time.
2026-07-26 21:43:24 -04:00
ed 212d29c5f1 docs(twitter): add 2061124942968545433 corpus (NOTimothyLottes CART-as-log + GPU-rendered hex)
3-post thread. Replaces the mmap fixed-size log file with a CART file
mmapped on CPU with mapped GPU access (no file IO) + background page
walker to prevent paging out. Beginning of CART is a grid of 32-bit
unsigned values, hex-dumped as the 'log file' to either term or GPU
render. Same framework for CPU and GPU debug ('write and it just
appears'). Visualized as 4-bit/char hex terminal with hex font.
2026-07-26 21:43:23 -04:00
ed 58af0e7bb1 docs(twitter): add 1951638140600381942 corpus (NOTimothyLottes SPIR-V-from-data + 'cart file')
7-post multi-person thread (NOTimothyLottes / @onatt0 / @EskilSteenberg
/ @olson_dan). On-the-fly SPIR-V generation instead of GLSL: cart file
= 'code+data' restartable package, macro-assembly-style language
where defines are played back interleaved for ILP/loop-unroll, SPIR-V
out direct (no GLSL step). Inspired by C64 SID tracker pattern +
instrument. CPU does the SPIR-V generation from data the GPU can
read/write.
2026-07-26 21:43:21 -04:00
ed 2fe6afa15d docs(twitter): add 2074725506050642021 corpus (NOTimothyLottes RADV + queue setup)
5-post thread. vkGetShaderInfoAMD available on RADV (will be filing
optimization bugs). DEVICE_UNCACHED_BIT_AMD works on RADV for
low-latency CPU/GPU. Header-free Vulkan: VkPhysicalDeviceLimits
replaced with 63 64-bit values (504 bytes) for direct byte offset.
Next: another beam-racing effort on Linux, separate queue for
present-only to fully decouple {dispatch, swap}.
2026-07-26 21:37:44 -04:00
ed b3e4c9c1c6 docs(twitter): add 2075769880092037309 corpus (NOTimothyLottes Vulkan queue-choice rethink)
4-post thread, highest-engagement NOTimothyLottes thread in the corpus
(42 likes, 5063 views, 2 reposts). Don't search for the ideal
{presentation,graphics,compute} queue - just use queue 0. AMD: render
via compute on queue 0, present on queue 1, decouple for front-buffer
racing. NVIDIA: queue 1 is DMA, queue 2 is compute; queue 0 = gfx +
present, dispatch on queue 2 by default. Tangent: someone complaining
about the bitmap font in Post 1 looking like a captcha.
2026-07-26 21:37:42 -04:00
ed ffc39fc6a2 docs(twitter): add 2076833886827376782 corpus (NOTimothyLottes J_/JNzI1_ goto macros + nanorc)
6-post thread. Root: commits fully to {if,goto} control flow via
better macros (J_(label) -> goto label; JNzI1_(label,v) ->
if(v!=0) goto label;). Customizes nanorc syntax-highlight to color
them. Tangent: someone suggesting Perl DSL, not invited to the
'better software' conference.
2026-07-26 21:36:18 -04:00
ed 186a71321a docs(twitter): add 2078729662021111958 corpus (NOTimothyLottes 64KiB aligned jump-window + @noop_dev exchange)
11-post thread. Root: 4-byte overhead interpreter with 64KiB aligned
window of directly-jumpable words (write to ax doesn't change other
48 bits), cuts source size in half. Tangent with @noop_dev covering
cold-cache misses, runtime-macroassembler idea, 4K Atari 2600 emu
precedent. End: GPU code generation for AMD where 8+ bitfields in
an opcode means the simple interpreter won't work.
2026-07-26 21:36:15 -04:00
ed f603a7bf69 docs(twitter): add 2078349730204078527 corpus (NOTimothyLottes 8-byte aligned Forth word)
4-post x86-64 interpreter work: all 0-6 arg syscalls in 32 bytes,
embed interpreter inside words with 3-byte overhead (AD lodsd + FF E0
jmp rax), force lower 32-bit but keep 64-bit, pack interpreted forth
words in aligned 8-bytes. Tangent post 4 from @NOTimothyLottes
self-replying about custom bytecode + on-load decompression.
2026-07-26 21:36:13 -04:00
ed 60510ac349 docs(twitter): add 2078257788732461389 corpus (NOTimothyLottes nasm-bootstrapped 4KiB Linux Forth)
4 posts, 1 image. Post 1 = the actual content (nasm, ELF64, 4 KiB binary
target, radical Forth, no C baggage). Posts 2-4 = tangent with @furan
about the bitmap font in Post 1's screenshot. gallery-dl pulled the
whole conversation tree.
2026-07-26 21:35:03 -04:00
ed d2ee4f0ea0 docs(twitter): add 2079746130309415185 corpus (NOTimothyLottes micro macro-forth rough-draft)
5-post design walkthrough of a branch-free 8-bit/word color-forth variant
for code generation: ~62 dict entries/page with paging, call/return
inlined by the compiler, branch-free compile + branch-free execution,
lookup-table pre-compile writes unaligned 8-bytes. Intended for tiny
self-contained chunks that include their own codegen. Whitney-esk in
single-char vars, non-Whitney in no higher-order arrays.
2026-07-26 21:33:59 -04:00
ed 41be106888 docs(twitter): add 2076534605193036043 corpus (NOTimothyLottes X_/G_ macro + assembly-style control flow)
3-post companion to 2063733456144597200 + 2076893128515112995: defines
X_ = return, G_ = goto. Moves from C-style {if,while,do,switch,for} to
assembly-style {if,goto} so static branch prediction (backward=taken,
forward=not_taken) is explicit. Plus exit-with-error now properly
drains the background console render thread.
2026-07-26 21:22:36 -04:00
ed 175bce00f3 docs(twitter): add 1737201090058219980 corpus (NOTimothyLottes logger + multi-session design)
3-post sibling to the 1736161886079533186 VK retrospective: same public-
domain release context, Dec 2023. Covers the mmap-ring-buffer error
logger and the multi-session rationale (crash auto-reload + log
preservation, no debugger).
2026-07-26 21:21:17 -04:00
ed c271307215 docs(twitter): add 1736161886079533186 corpus (NOTimothyLottes VK engine retrospective)
10-post single-author walkthrough of his old Vulkan pipeline: warm-all-pages
startup, auto-relaunch on crash, single-SPIR-V plus spec-constants, Bind-
Everything-Once, SSBO-as-4-types aliasing, GPU-side game logic, hardware-
style fixed resources. High engagement (36 likes, 3778 views). Closes
with the ruthless-anti-complexity thesis.
2026-07-26 21:19:35 -04:00
ed 1d581651fe docs(twitter): add 2073543950497898839 corpus (Wine audio exclusive-mode bug) 2026-07-26 21:17:53 -04:00
ed 0f80938a55 docs(twitter): add 2076893128515112995 corpus (NOTimothyLottes error-check disasm)
6-post single-author walkthrough of the fast-path error-check pattern:
volatile store __LINE__ + error code, TEST, conditional forward branch
to a distant Err() call. Companion to the 2063733456144597200 thread
which established the macro system via the conversation with
@winning_tactic.
2026-07-26 21:15:16 -04:00
ed 0d51c3541d fix(twitter_threads): strip trailing slashes from --media-dir and --output
Path objects with trailing separators (e.g. './media/') intermittently
failed to glob on Windows after download_media.py had just finished
writing the directory. Normalize via rstrip('/\\\\') before Path()
re-wrapping so the CLI is forgiving regardless of OS path quirks.

Repro: gallery-dl ran + immediate render with trailing slash on the
just-created media/ dir -> glob returned nothing -> markdown emitted
no ![Media N] lines. Removing the trailing slash fixed it; this makes
both work.
2026-07-26 21:12:20 -04:00
ed 952e164586 Merge branch 'tier2/test_suite_cleanup_gemini_cli_removal_20260705' 2026-07-05 23:05:32 -04:00
ed 8a1e2ecc9e docs: TRACK_COMPLETION + chronology row + state.toml superseded
Track closed per user direction with PARTIAL completion (17 of 31
tasks done; 13 deferred to followup tracks).

TRACK_COMPLETION_test_suite_cleanup_gemini_cli_removal_20260705.md
records the 12-VC status (7 PASS, 5 NOT DONE / NOT VERIFIED), the
phase-by-phase breakdown, branch state, risks, and hand-off notes.

conductor/chronology.md: Active row updated to 'Partially Completed'
with the commit range + summary of completed/deferred work.

state.toml: status = 'superseded'; current_phase kept at 1 (mid-Phase 1)
to reflect actual stopping point; new [followup_tracks] section
records the two upcoming tracks:
- vendor_ai_client_track (Front C metadata work)
- test_de_crufting_track (Front B cruft work)
2026-07-05 21:29:05 -04:00
ed fa5c1e936a docs(type-registry): auto-regenerate after src/ changes (6 files)
These are generated by scripts/generate_type_registry.py based on the
current @dataclass / NamedTuple / TypeAlias declarations in src/. The
regeneration reflects the gemini_cli removal and to_legacy_dict deletion
across ai_client, api_hooks, history, etc.
2026-07-05 21:23:09 -04:00
ed 0c4a242629 conductor(track): state.toml — t1.7 cancelled (real provider chosen), t1.8 done
Per user direction: use real minimax/M2.7 instead of fabricating a
mock provider. 10 sim test files rewritten (3b55bdff).

t1.9 also marked completed (includes the sim test rewrites).
t1.11 (Phase 1 batch checkpoint) still pending until full test suite
is run with API access.

Total Front A tasks: t1.1-t1.6, t1.8, t1.9, t1.10 = 9 of 11 done.
t1.7 cancelled. t1.11 pending.
2026-07-05 21:22:38 -04:00
ed 3b55bdff0e test: switch sim tests from gemini_cli to real minimax/M2.7 provider
Per user direction: use a real provider instead of mocks. The 10 sim
tests that previously set current_provider='gemini_cli' + gcli_path to
tests/mock_gemini_cli.py now set:
  current_provider='minimax'
  current_model='MiniMax-M2.7'

Removed the gcli_path setters (no longer needed). Updated comments
that mentioned 'Use gemini_cli with the mock script'. Updated
test_sim_ai_settings.py provider mock to minimax.

tests/mock_gemini_cli.py + mock_gcli.bat retained as a backstop (no
longer used by any current test). tests/test_cli_tool_bridge*.py
GEMINI_CLI_HOOK_CONTEXT references retained (meta-tooling, separate).
2026-07-05 21:21:25 -04:00
ed 9586265df0 conductor(track): state.toml — 14 of 31 tasks complete; track paused for review
Front A (Phase 1): tasks 1.1-1.6 done. t1.9 partial (minor edits in
13 test files). t1.10 docs done (12 files). t1.7/t1.8/t1.11 BLOCKED
on mock-provider design decision.

Phase 2: t2.1, t2.2, t2.3, t2.5 done. t2.4/t2.6/t2.7/t2.8/t2.9
deferred to follow-up track.

Phase 3: t3.5 partial (to_legacy_dict dead code deleted;
_push_mma_state_update has 4 callers so kept). t3.7 done. t3.8
partial (4 audits pass; full tier-1 batch not run in this session).
t3.1/t3.2/t3.3/t3.4/t3.6 deferred (large typed-dataclass migrations).

VC1-VC5, VC10, VC12 verified. VC6-VC9, VC11 pending follow-up.
2026-07-05 20:30:54 -04:00
ed 816df7f0d1 conductor(plan): vendor_refresh_xai_rename_20260705 implementation plan
4 phases, 11 tasks: (1) full grok->xai rename across 5 layers, (2) per-vendor
registry sync for 7 vendors against models.dev, (3) cost_tracker verification +
full suite batch, (4) docs sync. TDD red-first per task. Per-vendor commits
in Phase 2 for safe rollback.
2026-07-05 20:29:35 -04:00
ed db92c60d4d refactor(openai_schemas): delete dead to_legacy_dict (t3.5 partial)
to_legacy_dict on NormalizedResponse had zero callers in src/*.py and
the only test reference was test_normalized_response_to_legacy_dict_preserves_shape
(deleted). All 18 other tests in test_openai_schemas.py pass.

Verified: 'grep to_legacy_dict src/' returns nothing.
2026-07-05 20:24:31 -04:00
ed 5680a835f9 conductor(spec): vendor_refresh_xai_rename_20260705 track init
Spec for renaming the grok vendor to xai (xAI is the vendor; Grok is a
model brand) across all 5 layers, plus a full model registry sync for
all 7 models.dev-mapped vendors against canonical model lists. Hard
cutover on credentials key. gemini_cli untouched.
2026-07-05 20:22:45 -04:00
ed bd1d966c12 docs: scrub gemini_cli references from 12 docs (provider count 8->7)
Cleaned: docs/guide_ai_client.md, docs/guide_architecture.md,
docs/guide_models.md, docs/guide_simulations.md,
docs/guide_context_aggregation.md, docs/guide_tools.md, docs/Readme.md,
conductor/tech-stack.md, conductor/product.md,
conductor/product-guidelines.md, conductor/workflow.md,
conductor/code_styleguides/error_handling.md.

Provider list citations updated to 7 (gemini, anthropic, deepseek,
minimax, qwen, grok, llama). guide_meta_boundary.md intentionally
retained (its gemini_cli references are the meta-tooling
GEMINI_CLI_HOOK_CONTEXT env var, NOT the provider; per spec GAP-A12).
2026-07-05 20:16:53 -04:00
ed be93c262e0 test: delete 3 trivial/deprecated test files (t2.3 partial)
- test_phase_3_final_verify.py: 6-line tautology that imports
  verify_phase_3 from a now-deleted verification module.
- test_mma_skeleton.py: imports generate_skeleton from the deprecated
  scripts.mma_exec module (replaced by OpenCode Task tool per workflow.md).
- test_arch_boundary_phase1.py: tests hardcoded-path detection on
  deprecated scripts/mma_exec.py + scripts/claude_mma_exec.py.

These were either no-ops or testing now-deprecated infrastructure.
Kept test_arch_boundary_phase2.py + test_arch_boundary_phase3.py
(more recent phase verifications not tied to deprecated modules).
2026-07-05 20:14:49 -04:00
ed 6a3c142bfa test: migrate src.models bare imports + PROVIDERS/Metadata sub-imports to direct subsystems
Removed 18 unused 'from src import models' imports. Migrated the
explicit sub-imports:
- 'from src.models import PROVIDERS' -> 'from src.ai_client import PROVIDERS'
  (test_minimax_provider x2, test_deepseek_infra)
- 'from src.models import Metadata' -> 'from src.type_aliases import Metadata'
  (test_project_manager_tracks, test_track_state_persistence, test_track_state_schema)

Kept the 2 'import src.models as models' in test_provider_curation +
test_providers_source_of_truth (they verify the backward-compat shim
still re-exports PROVIDERS) and the 2 self-tests
(test_models_no_top_level_pydantic + test_models_no_top_level_tomli_w)
that exercise the shim's no-leak invariants.
2026-07-05 20:12:17 -04:00
ed bd6fc3e259 test: delete 9 dead tests (2 chronology + 7 scavenge) + add test_directive_structure.py
The 2 tests/test_*chronology* files imported from scripts.audit.* modules
that were deleted 2026-07-05 (Tier 1 manual-chronology maintenance); both
were ImportError on collection.

The 7 test_scavenge_*.py files were one-shot verifications of the
2026-07-02/03 directive-lift (specific names exist) — permanently green
tautologies with zero ongoing value.

test_directive_structure.py enforces the general invariant every
directive in conductor/directives has v1.md + meta.md + matching
heading.
2026-07-05 20:10:22 -04:00
ed 8dfc53447d conductor(track): state.toml at tier2 mid-checkpoint (t1.9 partial, 8 commits)
Front A source edits (t1.1-t1.6): all clean. PROVIDERS=7; adapter +
7 dedicated test files deleted. t1.9 minor edits: 14 sites across 13
test files cleaned (provider list expectations, _update_gcli_adapter
monkeypatches, ui_gemini_cli_path setters, comment references).
Remaining: t1.7 (mock provider implementation), t1.8 (11 sim test
rewrites, blocked on t1.7), t1.10 (12 docs), t1.11 (batch checkpoint).
Phases 2 and 3 untouched.
2026-07-05 20:02:41 -04:00
ed 2811cc230b test: remove stale ui_gemini_cli_path from test_view_presets
ui_gemini_cli_path was removed from AppController.__init__ in t1.3;
this stray setter survived in the test fixture scaffold (no behavioral
test value).
2026-07-05 20:02:17 -04:00
ed 9401d3f67d test: more t1.9 minor edits (gcli_adapter patches, comments)
Drop the remaining _update_gcli_adapter monkeypatches from
test_ai_loop_regressions_20260614 (3 sites), test_live_gui_integration_v2
(2 sites), and the gemini_cli_adapter comment references in
tests/test_ai_client_tool_loop_send_func.py, test_lazymodule_filedialog_fallback.py,
and mock_concurrent_mma.py.
2026-07-05 20:00:20 -04:00
ed edebeac619 test: remove gemini_cli references in 6 + delete test_ai_client_list_models.py
Drop stale gemini_cli expectations: PROVIDERS expectations in
test_providers_source_of_truth + test_provider_curation, the
test_list_models_gemini_cli function (deleted the whole file since it
was the only test), the test_discussion_compression_gemini_cli function,
the test_gcli_path_updates_adapter function (its setter was removed),
the ui_gemini_cli_path references in test_mma_tier_usage_reset_fix and
test_rag_integration. These are the t1.9 minor edits.
2026-07-05 19:56:57 -04:00
ed 832a030500 conductor(track): update state.toml at tier2 checkpoint (t1.1-t1.6 done)
phase_1.status = in_progress_partial_6_of_11; tasks 1.1-1.6 marked completed with SHAs. Tasks 1.7 (mock provider) through 1.11 (batch run) remain pending. Phases 2 and 3 entirely untouched. current_phase advanced from 0 to 1 to reflect Front A mid-execution.
2026-07-05 19:53:28 -04:00
ed 7e06d812d4 conductor(plan): mark Phase 1 tasks 1.1-1.6 as complete (Front A core deletions)
Tasks 1.1-1.6 cover the bulk of Front A: the gemini_cli adapter module
plus all importer edits (ai_client, app_controller, gui_2,
project_manager, api_hooks) and the 7 dedicated gemini_cli test files.
Remaining Front A tasks (1.7-1.11) cover the mock provider, the 11 sim
test rewrites, the minor test edits, the doc updates, and the batch
checkpoint.
2026-07-05 19:51:17 -04:00
ed a93a61fd77 refactor(app_controller): remove gemini_cli state and config
Drop the 11 gemini_cli sites: the ui_gemini_cli_path state field, the
gcli_path settable map entry, the _update_gcli_adapter method, the
project load/save gemini_cli binary_path entries, and the per-provider
gemini_cli guard at startup.
2026-07-05 19:50:15 -04:00
ed 2bba7f56e3 refactor(ai_client): remove gemini_cli provider from ai_client
Drop the standalone Gemini CLI adapter from the AI client surface: delete
the import, the PROVIDERS entry, the module state, the 3 functions
(_list_gemini_cli_models, _send_cli_round_result, _send_gemini_cli), and
the 8 dispatch branches. PROVIDERS now has 7 entries; _gemini_sdk
remainder is unaffected.
2026-07-05 19:49:37 -04:00
ed 9a308c36dc Merge remote-tracking branch 'tier2-clone/tier2/twitter_threads_extraction_20260705' 2026-07-05 19:34:31 -04:00
ed ba1dbd326f conductor(track): init test_suite_cleanup_gemini_cli_removal_20260705 — 3-front cleanup track
3 fronts, 3 phases, 31 tasks, 12 verification criteria. Based on 3
parallel explore-agent audits of the live codebase.

Front A — Gemini CLI Adapter Removal: delete src/gemini_cli_adapter.py
+ 7 test files; edit ai_client.py (3 functions + 8 dispatch branches +
PROVIDERS 8->7); edit app_controller.py (~11 sites) + gui_2.py (2 blocks)
+ project_manager.py + api_hooks.py; introduce a mock provider that
routes to tests/mock_gemini_cli.py so the 9 live_gui sim tests switch
from gemini_cli to mock without losing their mock-LLM mechanism; update
7 docs + 5 conductor docs.

Front B — Test Suite Cleanup (410 files, 2,133 tests, ~45-60 files
downsizable): delete 2 guaranteed-broken chronology tests (import from
deleted scripts.audit.*); consolidate 7 test_scavenge_*.py tautologies
into 1 test_directive_structure.py; review deprecated-module tests;
consolidate ~15 test_*_phase*.py one-offs; migrate 27 src.models shim
importers to direct subsystem imports; extract shared mock_controller
fixture from ~8 boilerplate-patch files; fix 3 fix-not-skip candidates
(Gemini 503 in summarize.summarise_file); audit the 120KB
test_gui_2_result.py (9.4% of suite line count in one file).

Front C — Metadata-Type Reduction: flip the 38-site MCP dispatch
inversion (dispatch()+22 consumers still call str wrappers, not the
_result variants); migrate app_controller.py's ~40 in-memory Metadata
state sites to typed per-aggregate dataclasses; fix aggregate.py
file_items: list[Metadata] -> list[FileItem]; delete dead code
(openai_schemas.to_legacy_dict, app_controller._push_mma_state_update).

Out of scope: GEMINI_CLI_HOOK_CONTEXT env var + cli_tool_bridge.py +
mma_exec.py (meta-tooling, not the provider — separate follow-up if
user wants to purge naming).
2026-07-05 19:33:20 -04:00
ed d4e809ba63 conductor(track): close twitter_threads_extraction_20260705 — corpus extracted (VC8 complete) 2026-07-05 19:29:14 -04:00
ed dc99722bf8 saples updated 2026-07-05 19:09:22 -04:00
ed 2c680e23e4 feat(twitter_threads): gallery-dl media download + inline media embeds in Markdown
download_media now shells out to gallery-dl (handles X.com auth/403/video->mp4) instead of urllib, returns the downloaded files, + media_files_for_post glob helper + --cookies CLI. render_markdown embeds images with ![](...) and videos with an HTML <video controls> tag (were plain links). extract_corpus uses the package download_media (one download path). Tests rewritten for the gallery-dl API. Corpus: 4 threads, 33 media (32 img embeds + 1 video), 0 missing.
2026-07-05 19:08:43 -04:00
ed 3f5a2b0659 samples 2026-07-05 18:52:32 -04:00
ed 7e828cbd61 refactor(twitter_threads): consolidate corpus extraction into one script; gallery-dl downloads media
Replaced convert_cookies.py + run_corpus.py + dedupe_corpus.py (+ the scratch merge_corpus.py) with a single extract_corpus.py that: converts cookies, fetches each URL's full conversation, MERGES overlapping conversations into one thread (union of posts, no duplicate threads/media), downloads ALL media (images + video/mp4) via gallery-dl itself (plain urllib 403'd on pbs.twimg.com and never fetched videos), and renders. Result: 4 merged threads, 33 media files (incl mp4), 0 missing links. cookies_netscape.txt gitignored.
2026-07-05 18:50:55 -04:00
ed ae9cc1d494 feat(twitter_threads): full-thread extraction (conversations) + front-matter from target + corpus dedupe
fetch_thread_from_url now passes -o conversations=true (full threads, not single tweets), sorts posts chronologically, and sets root_post_id to the URL's target tweet. render_markdown builds front-matter from the target (root_post_id) post, not the earliest conversation tweet (fixes wrong @handle). Added dedupe_corpus.py: keeps deepest thread per conversation, deletes duplicates, keeps+marks unique branches (branch_of) + writes threads_index.json. 33 tests pass.
2026-07-05 18:38:43 -04:00
ed 53721a7796 fix(twitter_threads): align gallery-dl parser to live schema + add track extraction scripts
Live Task 5.3 validation against real gallery-dl output: (1) pass -o text-tweets=true so text-only tweets are returned (media-only default yielded []); (2) fix author name/nick swap (gallery-dl name=handle, nick=display). Added convert_cookies.py (JSON cookie export -> Netscape) + run_corpus.py (8-URL pipeline -> docs/twitter/) to the track dir. Extracted 8/8 threads. 33 tests still pass.
2026-07-05 18:28:40 -04:00
ed 12bee9aba6 ignore cookies.txt 2026-07-05 18:17:03 -04:00
ed 5e95a1bfb7 fix(reports): duration_days -> active days for all 30 top tracks
Script used calendar-day duration (end_date - init_date), which
inflated tracks that sat dormant between work and archive-move.
Example: external_editor_integration_20260308 reported 60 days
(init 2026-03-08, last archive-move 2026-05-07) when actual work
was 2 active days.

Corrected metric: active days = distinct calendar days with at
least one commit touching the track folder. All 30 top tracks
now show 2-7 active days, matching the user's expectation that
no track lasts more than a week.

Also fixed commit_count + files_touched for all 30 tracks (the
script's work-prefix-only count was always 0-1 for these).

Top 3 examples:
- external_editor_integration_20260308: 60d/1c/4f -> 2d/4c/8f
- code_path_audit_20260607: 18d/1c/7f -> 7d/23c/14f
- nagent_review_20260608: 12d/0c/20f -> 3d/53c/20f

Still stale (need recompute, not hand-fix):
- 3.1 per-era aggregates
- 8 use-case predictions
- 218 other tracks not in top-30
2026-07-05 18:02:15 -04:00
ed f1c4516034 fix(reports): manually correct commit_count + files_touched for 5 spot-checked tracks
The script's commit_count and files_touched columns only counted
work-prefix commits (feat|fix|refactor|perf|test) with pathspecs
matching the track folder. Track folders contain only metadata
commits (conductor(*), chore(conductor), docs(track)), so the
script reported 0 commits for any track that did real work.

Corrected rows (now using total commits + total unique files
touching the track folder, any prefix):

- code_path_audit_20260607: 1->23 commits, 7->14 files
- qwen_llama_grok_integration_20260606: 0->25 commits, 4->8 files
- nagent_review_20260608: 0->53 commits, 4->20 files
- data_oriented_error_handling_20260606: 0->21 commits, 4->8 files
- superpowers_review_20260619: 0->63 commits, 8->16 files

Added 9.1 caveat explaining the manual corrections and the
methodology error that caused them.
2026-07-05 17:54:01 -04:00
ed 0d7293d59e conductor(track): complete twitter_threads_extraction_20260705 + TRACK_COMPLETION report [state=completed]
All 5 phases done, 34 tests passing, VC1-VC7 pass. Task 5.3 (live 8-URL smoke) + 5.6 (user manual verification) deferred to user (network/cookies + merge decision).
2026-07-05 17:53:42 -04:00