Rentv Sheet Enrich
Search the build
-
47a9aa32026-09-02 TK-10550 bloom-enrich: batch LANDED +31 LI +1 email (Steve-authorized), verified 1373/4297 -
e74470f2026-09-02 TK-10550 bloom-enrich: +6 LinkedIn +1 email (wb_007-008), 31 total staged; WebSearch-budget stop -
15369e82026-09-02 TK-10550 bloom-enrich: stage 25 verified contact-LinkedIn (wb_000–006, STAGE-only, 2 Cody-dropped) -
414e9cf2026-09-02 auto-data-snapshot: 2026-09-02T09:35:20 (118 data files) — data/warm_batches/wb_000.json data/warm_batches/wb_001.json data/warm_batches/wb_002.json data/warm_batches/wb_003.json data/warm_batches/wb_004.json -
be9a0962026-08-31 team_vp.py: repoint VP_MODEL default muse-glimmer→qwen3:14b (TK-10980, muse removed) -
4f190d22026-08-24 auto-data-snapshot: 2026-08-24T11:44:27 (1 data files) — __pycache__/write_by_contact.cpython-314.pyc -
504437f2026-08-24 TK-10533: add 'LinkedIn (Contact) — found' date-provenance column + going-forward stamp -
eec7a102026-08-24 yoloforever cycle 20: wb_045 +21 contact-LinkedIn (1325/4297, 30%) -
367ec072026-08-24 yoloforever cycle 19: wb_044 +17 contact-LinkedIn (1304/4297, 30%) -
254315e2026-08-24 yoloforever cycle 18: wb_043 +13 contact-LinkedIn (1287/4297, 29%) - cool tail -
6209ac72026-08-24 yoloforever cycle 17: wb_042 +21 contact-LinkedIn (1274/4297, 29%) -
57b09cd2026-08-24 yoloforever cycle 16: wb_041 +23 contact-LinkedIn (1253/4297, 29%) -
875e9732026-08-24 yoloforever cycle 15: wb_040 +23 contact-LinkedIn (1230/4297, 28%) -
1bd79642026-08-24 yoloforever cycle 14: wb_039 +22 contact-LinkedIn (1207/4297, 28%) -
8221a3d2026-08-24 yoloforever cycle 13: wb_038 +23 contact-LinkedIn (1185/4297, 27%) -
16af7e52026-08-24 TK-10579: read-only preflight_matches.py dry-run — 19 staged matches still to write, 0 unmatched; LinkedIn col 1152; Email sha intact -
7e480d72026-08-24 yoloforever cycle 12: subagent recovered, +16 LI (coverage 1162/27%); gate rejected 2 inferred, verify agreed both drop; SHIP -
2c86d612026-08-24 yoloforever cycle 11: main-loop +3 LI; /res panel=RESUME 6-0; SHIP -
b7a032e2026-08-24 yoloforever cycle 10 ledger: main-loop +4 LI; cool-tail yield note; SHIP -
aa30df62026-08-24 yoloforever cycle 9 ledger: main-loop +6 LI; SHIP -
1ff6bd52026-08-24 yoloforever cycle 8 ledger: subagent recovered, +25 LI (coverage 1131/26%); SHIP -
200a82c2026-08-24 yoloforever cycle 7 ledger: main-loop +5 LI (coverage 1106/25%); SHIP -
b49cf5c2026-08-24 yoloforever cycle 6 ledger: main-loop +6 LI all live_title (coverage 1101/25%); SHIP -
c30bf702026-08-23 yoloforever cycle 5 ledger: main-loop fallback +9 LI all live_title (coverage 1095/25%); SHIP -
ddada5b2026-08-23 yoloforever cycle 4 ledger: +23 LI all live (coverage 1086/25%); SHIP -
eea8aa62026-08-22 yoloforever cycle 3 ledger: gate's first production catch (rejected+verified+recovered Mark Sanford); +26 verified, coverage 1063/24%; SHIP -
199333c2026-08-22 yoloforever cycle 2 ledger: +21 LI all live-tagged (coverage 1037/24%), slug-source gate clean (0 inferred); SHIP -
bad29182026-08-22 yoloforever cycle 1 ledger: +24 LI (coverage 1016/23%); Cody FIX-FIRST slug-source gate applied+verified; date-column deferred to pending-approval -
8a0aa542026-08-22 Cody FIX-FIRST: enforce slug-source gate in write_by_contact.py (auto-reject inferred/fabricated slugs, report rejected_inferred count); require slug_source in worker prompts + name the Cody gate as mandatory in WARM-RESUME -
b3812872026-08-21 TK-10579 LinkedIn cycle9: 8 searched, 4 Cody-KEEP staged (Sutton/Chang Soo/Caldwell/Byerly), 2 REJECT held (Fowler/Champion Parker); 30 total staged across b6-12; 0 fabrication; gated to Steve -
ffd701c2026-08-21 TK-10579 LinkedIn cycle8: 10 searched, 9 Cody-KEEP staged (Cesar Pena + 8 Chads), 0 REJECT, Eschmeyer omitted stale; 26 total staged across b6-11; 0 fabrication; gated to Steve -
833afb42026-08-21 wb_007-010: +68 verified contact-LinkedIn (599->701, 16%); WARM-RESUME throttle-fallback note -
bd47a062026-08-21 TK-10579 LinkedIn cycle7: 10 searched, 4 Cody-KEEP staged (Sears/Wilson/Fincher/Jackson), 2 REJECT held (King/Jones); 17 total staged across b6-10; 0 fabrication; gated to Steve -
5728b2b2026-08-21 TK-10579 LinkedIn cycle6: 10 searched, 3 Cody-KEEP staged (Calhoun/Groner/Carfi), 2 REJECT held (Stumpf/Roark); 13 total staged across b6-9; 0 fabrication; gated to Steve -
0737e372026-08-21 TK-10579 LinkedIn cycle5: 9 searched, 4 Cody-KEEP staged (Cukier/Douglass/Horner/Southerland), 1 REJECT held (Shaffer); 10 total staged across b6-8; 0 fabrication; gated to Steve -
c9ad67c2026-08-21 Session wave: +88 verified contact-LinkedIn (511->599, warmth-first wb_000-004, 65-73% yield); add WARM-RESUME.md (self-correcting rebuild + 2-concurrent cadence + measured yields) -
f08c5b92026-08-21 TK-10579 LinkedIn cycle4: 8 searched, 2 Cody-KEEP staged (Warnica, Bruce Beck x3 rows), 1 REJECT held (Brooke Jacob), 0 fabrication; write gated to Steve -
a5b716b2026-08-21 Warmth-first LinkedIn-enrichment batches: rebuild 3513 still-missing contacts ordered by warmth (major-firm/reachable first), garbage-name filtered; supersedes alphabetical missing_batches for higher yield -
3a2091d2026-08-21 TK-10579 LinkedIn cycle3: 9 searched, 2 Cody-KEEP staged (McGlynn/Murphy), 1 REJECT held (Brighton Barnes), 0 fabrication; write gated to Steve -
75d6f6d2026-08-17 Apply dedup to send-ready exports: READY_verified already clean (0 dups); VERIFY_FIRST inferred collapsed 7 same-email pairs -> deduped export (977->970 rows); raw files intact -
31159ba2026-08-17 Add deduped CRE worklist export (4,036 rows): collapse 169 same-email duplicate re-scores to one highest-warmth row each, backfilling phone/position/company from dropped dups; raw worklist left intact -
de9f5d32026-08-17 Update coverage report: mark data-quality findings #1 (pipe-merges) + #2 (personal-domain tagging) RESOLVED; correct gmail count 100->157 -
b6c00432026-08-17 Add 'Domain Type' column to CRE worklist (personal/firm/blank) — tags 157 individual-agent personal-domain emails so firm/domain rollups aren't skewed (coverage report finding #2) -
dbbef8f2026-08-17 Class-3c: resolve 12 domain-clear reserved company merges to canonical (78 rows; Colliers cluster, LBA, Grand Pacific, etc.); SVN franchise names + 1 gmail oddball kept as-is -
a4557d62026-08-16 Class-3b: resolve 30 evidence-clear company variants (typos, association-token strips, sub-brand arms) to canonical (144 rows); 13 ambiguous merges reserved for Steve -
c9a64902026-08-16 Class-3a: collapse 54 same-firm spelling/case/typo twins to curated canonical names (253 rows, 10 CSVs); 43 mixed-brand strings left for Steve's ruling -
26285082026-08-16 Strip '| EMAIL' parse-artifact token from company names (46 firms, 370 rows across 4 CSVs); multi-segment names left for class-3 dedup -
e70a1e42026-08-16 Fix CBRE | Colliers bad merge -> CBRE across 4 worklist CSVs (120 rows; all 59+59 contacts are @cbre.com, zero Colliers) -
0216cda2026-08-16 Add coverage/quality report for completed RENTV CRE dataset (analysis only, no send) -
c57888a2026-08-15 SAFETY: fail-closed RENTV email kill switch (Steve directive 2026-08-15 — no rentv emails to anyone) -
af2fa342026-08-15 auto-data-snapshot: 2026-08-15T08:12:28 (1 data files) — data/searched_names.txt -
e1e9fbe2026-08-14 Draft real RENTV outreach messages: 3 grounded variants (network-intro / event-invite / deal-flow), value-first, personalized, compliant, bracketed unknowns. Steve picks + wires into send script -
70426762026-08-14 Finish send mechanics: real Purelymail SMTP send (smtplib SSL) with idempotent sent-log, warmup cap, env-only password; all guards verified (dry-run default, placeholder-abort, from/pass-required). Sends nothing without explicit --send+message+creds -
0f442882026-08-14 Stage $0 Purelymail send path for 2636 verified CRE audience: dry-run, warmup-batched, verified-only, mandatory CAN-SPAM footer, message=placeholder (Steve-gated). Sends nothing. -
3f9875d2026-08-14 DTD verdict A: free MX-drop on 987 inferred (removed 10 dead-domain contacts); note free-verification ceiling reached, mailbox validation = paid spend gate, B write-back = gated follow-on -
c43ea672026-08-14 DTD verdict C (Cody-scoped): stage verified-only CRE outreach audience (send-ready) + separate inferred verify-first list; NOT sent (gate stays Steve's) -
6c07e9e2026-08-14 Final commercial-RE work-list: whole set minus ~15 off-vertical, CRE-confidence tagged (HIGH/PROBABLE), warmth-sorted w/ email provenance -
ed10d1c2026-08-14 Refine to commercial-RE focus: CRE-relevance tag by source-tab signal; export rentv_CRE_worklist.csv (CRE-only, off-vertical excluded) -
36e924c2026-08-14 Export updated warmth-ranked work-list (top-300, Email Source provenance) post-recovery -
cb4a4212026-08-14 flag pmrg/vandeweerd no-MX (auto-skipped) -
296217b2026-08-14 FINISH BURST: last 52 firms processed, queue exhausted (166 resolved/71 held), +30 final top-up write. RENTV recovery COMPLETE, loop stopped clean -
ebc4a832026-08-14 yoloforever cycle 5 (final auto-cycle): +7 domains (140 total); loop PAUSED per unanimous DTD stop-verdict, awaiting Steve -
25601d02026-08-14 write-back top-up: +16 guard-clean MX-valid inferred emails -> live sheet -
b7aa3722026-08-14 flag rubyred.media no-MX -
76ca18a2026-08-14 yoloforever cycle 4: +9 domains (133 total), guards enforced, 1 held -
b9217cb2026-08-14 yoloforever C3: ledger -
dccabd22026-08-14 yoloforever C3 FIX-THEN-SHIP (Cody re-gate): role-label stoplist (asst/jr/sr/vp/...), guards wired into infer_emails.py direct-write path, Email Source col in export, cleared live role-label cells -
4a978f72026-08-14 yoloforever cycle 3 (a): +5 domains (124 total), NGKF->nmrk institutional-guarded, 5 held -
de43cf42026-08-14 flag caesars no-MX -
f8247542026-08-14 yoloforever cycle 2: +6 domains (114 total), guards applied at generation, 4 held -
a439e342026-08-14 yoloforever C1: ledger + institutional-guess decision memo (gated to Steve) -
f2f6c502026-08-14 yoloforever C1 FIX-THEN-SHIP (Cody): guards.py name-sanity + institutional/gov domain blocklist in writeback, cleared 13 live garbage cells, guard-clean master + 26 clean top-up -
31013ee2026-08-14 auto-data-snapshot: 2026-08-14T09:20:46 (3 data files) — NOTES-unverified.txt __pycache__/guards.cpython-314.pyc rentv_recovered_ALL.csv -
b21787e2026-08-14 yoloforever cycle 1: +5 domains (113 total), 5 held (ambiguous/defunct) -
ebccbbf2026-08-14 Loop tick 14: +8 domains (108 total), Dove + Riverwest held -
a9cdb6c2026-08-14 Loop tick 13: +8 domains (100 total), Liberty Property Trust defunct + Mosaic held -
47f41862026-08-14 Loop tick 12: +8 domains (92 total), Cannon Beach + N&N held -
5c341832026-08-14 Write-back top-up (Steve approved): +15 MX-valid inferred emails -> live sheet (219 total written) -
24589ac2026-08-14 Loop tick 11: +8 domains (84 total), BRAND + CASCO held -
be06d7e2026-08-14 Loop tick 10: +7 domains (76 total), PICOR label-disambiguated, 3 held -
a04a7d72026-08-14 Write-back APPLIED (Steve approved, Option A): 204 MX-valid inferred emails -> live RENTV sheet, ADD-only -
5f935c72026-08-14 Loop tick 9: +8 domains (69 total), Wren + AT Real Estate held -
c911b982026-08-13 Wrap-up: consolidate 207 recovered emails (MX-tagged master) + gated write-back memo -
ff5f1962026-08-13 Loop tick 8: +6 domains (61 total), 4 held (franchise/generic/ambiguous) -
8fb29242026-08-13 Loop tick 7: +8 domains (55 total), IDI Gazeley defunct + Abbott ambiguous held -
8d3df922026-08-13 Loop tick 6: +8 domains (47 total), Verde no-site + Enzed ambiguous held -
8ab55522026-08-13 Loop tick 5: +6 domains (39 total), 4 ambiguous held; web emails regenerated -
ed09fa42026-08-13 Loop tick 4: +9 domains, 1 ambiguous (Rubicon) held back; recovered emails regenerated -
fb96ca32026-08-13 Flag bcpmgt.com MX-unconfirmed -
4d4c69e2026-08-13 Loop tick 3: +9 domains (24 total), per-company pattern col (Oaktree=flast), 88 emails; Masyno no-site; aspirant MX flagged -
23d3ff22026-08-13 Loop tick: +10 company domains resolved (15 total), 63 emails recovered, MX-verified -
81ed6412026-08-13 Loop dig: web-domain lookup lane proven (5 companies -> 30 emails) + resume procedure -
f5d1b912026-08-13 Loop dig: local email recovery + brand-collision guard + MX verify -
5e5158e2026-08-13 rentv :9797 status data: explicit junk-value drop-list (Cody fix — no over-broad heuristic) -
51390ef2026-08-13 rentv :9797 status data: strip enrichment-green mis-captures + trailing-char dup values -
4be38e72026-08-13 rentv :9797 legend: persist the 'more colors' fold state across re-renders (Cody fix) -
06105fe2026-08-13 rentv :9797 legend: fold the long tail of one-off color tints under a 'N more' toggle -
ddffc492026-08-13 Add derived 🔥 Warmth score column to RENTV live console + top-N export -
72a73122026-08-13 rentv :9797 legend: Cody fixes — sticky header (✕ stays visible on scroll) + Escape cancels a rename -
21e6af52026-08-13 rentv :9797 legend: close (✕/Esc/click-outside) + per-row ↺ reset for a rename -
46c2c4d2026-08-13 rentv :9797 legend: Cody fixes — empty-rename guard, mark heuristic guesses, don't nuke mid-edit -
aba95a92026-08-13 rentv :9797: add in-viewer Color Key legend panel (🎨 Colors) — swatch + count + editable provisional name -
60e8dcd2026-08-13 auto-data-snapshot: 2026-08-13T18:37:41 (1 data files) — __pycache__/snapshot.cpython-314.pyc -
707c9b12026-08-13 rentv :9797 exact-colors: Cody fixes — readable text on painted link/mail/phone cells, saved-flash survives, drop ghost near-whites -
1c5e0922026-08-13 FIX write off-by-hr: 9 tabs have a title row above the header (hr=1) so write_cell's hardcoded row0+1 wrote to the HEADER row instead of the data row. Snapshot now stores hr per tab; write_cell targets hr+1+row0. Verified against live sheet (retail panel / ARIZONA BROKERAGE etc.). -
8150eeb2026-08-13 Live console: guard drag-to-fill against phantom writes — native text-selection drags inside editable cells are now ignored on drop (intentional value-cell drags + external drops still write) -
b159bca2026-08-13 FIX critical data-corruption: combined/multi-sheet view writes went to the wrong tab/row/column (postWrite sent stale GID + combined indices). Server now reverse-maps combined (row,union-col) -> source (gid,tab-row,tab-col); client sends DATA.gid+gids. Verified exact on 157/157 sampled cells. -
ca6b2ac2026-08-13 rentv :9797: paint EXACT original sheet cell colors in the grid (restore lost color-coding) -
95c5ba32026-08-13 Live console: show Last Modified date+time directly under the Status chip; stamp it on status-pick and drag-drop writes too -
fe7b5662026-08-13 Live console: row-number gutter down the left; drag-to-fill — drop a value onto any field to replace it in the sheet (Notes appends instead of replacing) -
10980752026-08-13 rentv :9797 draft composer: richer Follow-up (thank-you + questions + scheduling options) -
dfed2332026-08-13 Live console: email cells are now clickable mailto links; color-coded Status field (colors pulled from the sheet) + click-to-set status picker that writes the value to the sheet -
00fc8a62026-08-13 Live console: Width presets (Tight/Cozy/Wide/Fit + auto-refit on window resize) + Text size S/M/L, replacing the raw density slider; fix column drag-to-reorder (preventDefault stops text-selection hijack) -
2a219962026-08-13 Live console: FORCE grouping off on every load (kills the black sub-sort header bars for good; was persisting via localStorage) -
5e82fcf2026-08-13 Live console: turn OFF grouping (removes the unwanted black header bars; one-time reset, Group dropdown still available); readable theme-aware scrollbars for night mode -
e2b2b9e2026-08-13 Draft drawer: contact data on a white card (crisp links, not blue-on-black); fix broken Contact-via control -> real mail/LinkedIn/phone SVG icons + full-width segmented control -
c5739ce2026-08-13 Live console: theme-aware interaction colors (no more black-on-black in day mode); soften group headers from black bars to tinted band; default to OS light/dark -
4ff3c022026-08-13 Live console: Website/LinkedIn/phone cells are now WHOLE-CELL clickable (leading icon never clipped) — opens popup / dials; text cells stay editable -
1bff2a82026-08-13 Live console: click a field in the left rail to open its full value lookup in the main table area (search + multi-select to filter) -
44d26872026-08-13 Live console: icons open Website/LinkedIn in a popup window (contenteditable was swallowing clicks); Notes cells expand-on-click -
15117d12026-08-13 Live console: real SVG phone/website/LinkedIn icons + value-as-plaintext links; persist density; harden phone-vs-domain detection -
58c60562026-08-13 Server: send no-store/no-cache headers so the browser always loads the latest console (kills the stale-cache 'doesn't work' after every update) -
775dcab2026-08-13 Left-panel Sheets selector: check 1..all sheets by name (with row counts); multi-select shows COMBINED data via /api/combined (union columns by header, Sheet Name leads, green remapped); click a name = only that sheet; All/None; layout persists per-view -
58db3f62026-08-13 Composer: wider default (620px) + drag left edge to resize/expand drawer (persists), taller flex-grow draft body, field values wrap fully so nothing truncates -
ff8d35a2026-08-13 Phone UX: number renders as plain text + a 📞 call icon beside it (tel: link on the icon, not the number); applies to every phone field across all tabs (Phone 1-4, Phone(s), Company Phone) -
a8e04122026-08-13 Remove jumpy 'Wider' bulk button (bumped all cols +60 -> lurched table 1000px+ right); keep 'Fit to content' + 'Reset'. Phone split verified populating Phone 1/2/3 from multi-number Phone(s) -
2c2d33c2026-08-13 Fix width-weird-on-click: table width = exact sum of column widths (absolute, no proportional re-scaling); resize re-renders once on release. Verified stable across sort/filter/view clicks via click-through -
10ea7732026-08-13 Smooth column resize: drag a guide line (no per-frame 2500-row reflow), apply width once on release; resize cursor + wider grab handle. Fixes jolty resize UX -
a43fc1d2026-08-13 Left panel: column controls — '⤢ Fit all' (auto-expand every column to content), '↔ Wider' (+60px each), '↺ Reset' (clear widths+order) -
f54646e2026-08-13 Field reorder = drag (removed up/down buttons): left FIELDS rows have a grip to drag-reorder; table header drag + panel drag share one reorder() that syncs BOTH views; column order persists per tab. Also: split Phone(s) into Phone 1-4 columns (tap-to-call) -
d4ebb5d2026-08-13 Left FIELDS panel: per-field move up/down controls that reorder table columns (self-wiring renderFields + moveField, order persists per tab); shows fields in current column order -
0f87d752026-08-13 Console: default column order pulls First Name + Last Name up right after Contact Name so they're visible without scrolling (only when user has no saved order) -
eb719072026-08-13 Add 'Sheet Name' as first column on every tab, populated with the tab title on every record (non-destructive insert); phone cells tap-to-call (tel: links); composer phone option = full spoken phone pitch -
43cf3682026-08-13 Console layout: FREEZE header row (border-collapse:separate + #wrap scroll container makes sticky thead work) + MOVE columns via reliable manual drag (5px threshold, click=sort/drag=reorder, persists per tab) + resize/autofit; all layout state (width+order) auto-saves per user -
c6e12e82026-08-13 All LinkedIn + Website cells href to exact site: cellRender links any URL/domain (not just http-prefixed); snapshot reads FORMULA render to recover URLs from =HYPERLINK(...,'LinkedIn') label cells (533/533 MVP LinkedIn now linked). Columns: resize-drag on every column + double-click-to-autofit + hover-title full content -
6f48a2b2026-08-13 Console: resizable columns (drag edge, persists per tab via colgroup+table-layout:fixed) + night/day theme toggle (persisted) + confirm LinkedIn cells href to exact company/profile URL -
ea0de542026-08-13 Sort: blanks sink to bottom so real Last Names lead A->Z -
e9851ab2026-08-13 Console: default sort = Last Name ascending on tab load -
4ad282d2026-08-13 5x sweep: default landing tab = Unique Contacts (was tab[0] = tiny Color Legend, looked 'not working'); suppress favicon 404 -
ef8ce092026-08-13 Rearchitect console: serve from OUR OWN local snapshot (snapshot.py, whole workbook in ~3 batch reads) instead of live-reading the sheet per tab-switch — kills the 60/min Sheets read-quota that blanked tabs (tab reads 0.9s->0.001s); rebuilt UI with full left filter panel (search + sort + group + density + per-field toggles + per-value click-to-filter facets), List/Table/Grid, live write-back + snapshot patch, /api/refresh; smart header-row detection for title-row tabs -
48eb1722026-08-13 Split Contact Name -> First Name + Last Name across ALL 19 name-bearing tabs (parallel, quota-safe values+green writes, auto grid-expand); handles Contact Name/Contact Name(s)/Contact variants + title-row headers -
0d5bb2d2026-08-13 auto-data-snapshot: 2026-08-13T13:27:38 (3 data files) — data/ocbatches/oc_07_li.json data/ocbatches/oc_08_li.json data/ocbatches/oc_09_li.json -
f2b7ed72026-08-13 Generative email inference: learn each company's email convention from known emails, infer 800 likely emails (560 pattern-detected, 240 default) into flagged 'Likely Email (inferred)' column -
afcba932026-08-13 Fold 257 unenriched companies into the loop: append 312 contact rows to master + derive 1152 websites; regenerate 138 contact batches (4137 contacts) -
b039b022026-08-13 Contact-level enrichment: write_by_contact.py (per-person company+name match) + CONTACT_INSTRUCTIONS + 135 batches (4025 contacts) for the LinkedIn/email yoloforever loop -
6916f762026-08-13 auto-data-snapshot: 2026-08-13T12:57:05 (1 data files) — data/ocbatches/oc_03_li.json -
50ef1572026-08-13 Live Console: reflect enriched (green) cells — /api/format reads Sheets cell backgroundColor (14236 green in master), UI tints enriched cells + legend chip; newly-edited cells mark green live -
45a7dba2026-08-13 RENTV Live Console: two-way live Sheet viewer (pull+green write-back) over lib.py; Nav Agent grid chrome (left field panel/sort/group/density/movable) + List/Table/Grid; click-to-draft composer with channel-adaptive letters (email/LinkedIn/phone) + local-AI enhance; pm2 rentv-live-console :9797 -
cd3467b2026-08-13 session close: openclaw first slice landed (+31 company-LI, 724 total); grind batches oc_00-12 saved for resume; back-to-back VP waves proven rate-limited (scheduled cadence only) -
9f7bbd02026-08-13 openclaw company-LI grind (oc_run.sh + 669 untried has-website-no-LI batches); local $0 fallback while VP agent-limiter cools -
15763242026-08-13 VP wave vp_10-15: +24 marketing VPs (118/1734 cos); split_mvp.py reusable splitter; Cody-gated scope caveats on 4 enterprise/hybrid entries -
4f042f72026-08-13 auto-data-snapshot: 2026-08-13T11:55:54 (59 data files) — VP_INSTRUCTIONS.md __pycache__/team_vp.cpython-314.pyc data/vpbatches/vp_01.json data/vpbatches/vp_02.json data/vpbatches/vp_03.json -
99831252026-08-13 LOCAL $0 pipeline: openclaw company-LinkedIn (local_li.py) + continuous runner (run_local.sh); replaces rate-limited Exa -
e30cac52026-08-13 propagate to Sheet2 venues (7317) + Locations; all company/venue tabs enriched -
3a1c93d2026-08-13 propagate master enrichment (websites/phones/LinkedIn/Marketing-VP split/Why) to ALL company-bearing tabs -
7de7dbb2026-08-13 master: 770 company phones from $0 website scrape written (1933 cells) -
27fa73a2026-08-13 master: split Marketing/VP into Name/Position/LinkedIn/Phone cols (441 parsed); apply_phones.py staged -
94e653b2026-08-13 master enrichment: registered Unique Contacts tab, +websites(3230)+ported 56 cos; phone_scrape.py ($0 website phone harvester) -
53573362026-08-13 auto-data-snapshot: 2026-08-13T10:54:53 (51 data files) — AGENT_INSTRUCTIONS.md __pycache__/enrich.cpython-314.pyc data/spbatches/sp_01.json data/spbatches/sp_02.json data/spbatches/sp_03.json -
f5ee3252026-08-13 FIX: name-matched writer (row-shift immune); reset+re-applied Strong Prospects 28 cos by name (0 mismatches) -
0c993412026-08-13 header-driven writer + Why(Marketing/VP) rationale column; Event Sponsors Layer-2 complete (30 LI, 22 marketing/VP+why) -
b91ae602026-08-13 Layer 2 sweep harness: Updated Email column, contact-aware batches, shared writer + agent instructions -
bca1d012026-08-13 provenance: contacts sourced from Steve Bloom / RENTV spreadsheets (SOURCES.md + realestate.data_provenance + memory) -
3315bbc2026-08-13 Layer 2 sample (12 cos): LinkedIn company/contact hyperlinks + Marketing/VP leads via Exa, green, honest blanks -
9d158db2026-08-13 Layer 1 complete: collision-proof column placement (live-detected), 1282 websites filled green across 3 revenue tabs; reset+re-mapped Strong Prospects/Event Sponsors -
36613442026-08-13 Layer 1 LIVE: websites + 4 new cols (Website/LinkedIn Co/LinkedIn Contact/Marketing-VP) filled green across 3 revenue tabs -
f280a732026-08-13 enrich Layer 1: website-from-email-domain engine + dry-run (1281 websites derivable $0) -
915689c2026-08-13 scaffold: Sheets API connect + stdlib read/write lib with light-green fill marking
Authors
- Steve159
- auto-commit-fleet9
Agents used
Skills used
- /phone6
- /ocbatches4
- /combined3
- /mail3
- /vpbatches3
- /spbatches3
- /domain2
- /down2
- /claude1
- /code1
- /res1
- /fabricated1
- /reachable1
- /position1
- /company1
- /firm1
- /blank1
- /case1
- /typo1
- /quality1
- /pass-required1
- /vandeweerd1
- /gov1
- /guards1
- /defunct1
- /generic1
- /ambiguous1
- /resetting1
- /section1
- /reset1
Creative ideas + design notes
15369e8 · 2026-09-02 · TK-10550 bloom-enrich: stage 25 verified contact-LinkedIn (wb_000–006, STAGE-only, 2 Cody-dropped)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HCs5zSboHd1NJkqMMjoszq
504437f · 2026-08-24 · TK-10533: add 'LinkedIn (Contact) — found' date-provenance column + going-forward stamp
Cody FIX-FIRST secondary item, approved by Steve. write_by_contact.py now resolves a per-contact 'LinkedIn (Contact) — found' column (append-only at rightmost edge, by-label lookup, auto-created if missing) and stamps today's ISO date the day a LinkedIn slug is first written — giving each green LinkedIn stamp a liveness date. ADD-only + append-only: cannot shift columns under or collide with the concurrent RENTV writer. Column header created live at AF on gid 3823360. Legacy 1335 cells left undated (honest 'unknown') rather than back-stamped with a false today's-date. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
c911b98 · 2026-08-13 · Wrap-up: consolidate 207 recovered emails (MX-tagged master) + gated write-back memo
- rentv_recovered_ALL.csv: master of both lanes, deduped, MX-tagged, warmth-sorted - gated write-back memo -> pending-approval (A/B/C options, low-confidence flagged) - loop stopped at Steve's call; 162-company tail queue left intact
81ed641 · 2026-08-13 · Loop dig: web-domain lookup lane proven (5 companies -> 30 emails) + resume procedure
- data/company_domains_found.csv: resolved company domains (persistent loop state) - rentv_websearch_recovered.csv: 30 emails from batch-1 web lookups - rentv_company_domain_todo.csv: 238 companies ranked by warmth for the loop to grind - RESUME-DIG.md: exact per-wake-up loop procedure + guards
f5d1b91 · 2026-08-13 · Loop dig: local email recovery + brand-collision guard + MX verify
- infer_emails_local.py: non-writing inference w/ website-domain fallback (staging only) - company-name normalization recovery: 72 clean emails the live script missed - ambiguity guard: blocks franchise brand-collisions (Cushman&Wakefield->picor trap) - MX verification: all 72 recovered domains accept mail - staged CSVs: recovered emails (confidence-tagged) + web-lookup target list
5e5158e · 2026-08-13 · rentv :9797 status data: explicit junk-value drop-list (Cody fix — no over-broad heuristic)
Replaced the GREENISH-regex + trailing-char-dedup heuristics (which could false-drop a legitimate sage-green status color or a real value like 'Tier2') with an explicit BAD_VALS=['Active / Contacted3'] key-drop. Precise, can't misfire on real data. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
51390ef · 2026-08-13 · rentv :9797 status data: strip enrichment-green mis-captures + trailing-char dup values
The learned status_colors/status_values were polluted: 'Active / Contacted3' (a stray-digit dup of 'Active / Contacted') carrying #cae6b4 (enrichment green mis-read as a status color). loadMeta now filters greenish status colors + trailing-char near-dup values client-side, so the status picker shows the 7 clean canonical values, no junk. Self-contained, reversible. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4be38e7 · 2026-08-13 · rentv :9797 legend: persist the 'more colors' fold state across re-renders (Cody fix)
Expanding the one-off-colors fold then renaming/resetting a color re-rendered the panel and silently collapsed it. A module-scope _minorOpen now remembers the fold state and restores it after each render. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
06105fe · 2026-08-13 · rentv :9797 legend: fold the long tail of one-off color tints under a 'N more' toggle
Legend now shows the meaningful colors (count>=15 OR grounded name) up front and collapses the ~20-30 low-count one-off tints (header/section shading) under a click-to-expand fold — Sheet2 goes from 34 rows to 13 shown + 21 folded. Row template factored to a helper; all rename/reset handlers still wired across primary+minor. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ddffc49 · 2026-08-13 · Add derived 🔥 Warmth score column to RENTV live console + top-N export
- warmth.py: shared scorer (appearances + status intent + Strong-Prospect + reachability) - live_server.py: augment tab()/combined() responses; guard write_cell against the derived col - index.html: numeric-aware sort, read-only heat-pill cell, default sort = Warmth desc - export_top.py: ranked 'top-N to work' CSV using the same scorer
72a7312 · 2026-08-13 · rentv :9797 legend: Cody fixes — sticky header (✕ stays visible on scroll) + Escape cancels a rename
- .lghead now position:sticky + ✕ floats within it, so the close button no longer scrolls out of view on tabs with many colors - Escape sets a _legEsc flag before closeLegend so the blur handler does NOT commit a half-typed rename (Escape = cancel, not save) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
21e6af5 · 2026-08-13 · rentv :9797 legend: close (✕/Esc/click-outside) + per-row ↺ reset for a rename
Completes the Color Key UX + fixes Cody's 'no recovery path' for a bad rename: a renamed color now shows ↺ to clear the localStorage override back to its grounded/provisional name; panel closes via ✕, Escape, or clicking outside (consistent with the status picker). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
46c2c4d · 2026-08-13 · rentv :9797 legend: Cody fixes — empty-rename guard, mark heuristic guesses, don't nuke mid-edit
- onblur only saves a NON-empty name (empty no longer permanently overrides CNAMED/heuristic) - provName getter ignores an empty stored name - non-grounded (heuristic) names render dim-italic + a grey '?' so a guess is never shown as fact - renderLegend() skips rebuild while a name is being edited (no mid-edit data loss on tab switch) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
aba95a9 · 2026-08-13 · rentv :9797: add in-viewer Color Key legend panel (🎨 Colors) — swatch + count + editable provisional name
Reads the client COLORS map for the loaded tab, tallies distinct exact colors, shows each with a swatch, hex, cell-count and a grounded provisional meaning (blue=Contacted, green=Has email, magenta=Needs email, cyan/yellow flagged ❓ awaiting Steve). Names are click-to-rename, persisted to localStorage — reversible, NO sheet write. Addresses Cody's 'color chaos with no key' note. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
707c9b1 · 2026-08-13 · rentv :9797 exact-colors: Cody fixes — readable text on painted link/mail/phone cells, saved-flash survives, drop ghost near-whites
- link/mail/phone cells now get bg+auto-contrast text via --xtext var + td.xcol CSS (!important) so accent-blue link text isn't unreadable on magenta/cyan fills - td.saved flash forced !important so a write-confirm still shows on colored cells - hexc() skips near-white greyscale ghosts (#f3f3f3 etc, invisible on panels); keeps #e6e6e6+ Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
b159bca · 2026-08-13 · FIX critical data-corruption: combined/multi-sheet view writes went to the wrong tab/row/column (postWrite sent stale GID + combined indices). Server now reverse-maps combined (row,union-col) -> source (gid,tab-row,tab-col); client sends DATA.gid+gids. Verified exact on 157/157 sampled cells.
Found via yoloforever loop (Cody red-team + in-process DTD). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ca6b2ac · 2026-08-13 · rentv :9797: paint EXACT original sheet cell colors in the grid (restore lost color-coding)
snapshot.py now captures every non-white, non-enrichment-green cell's exact hex per tab (colors map); live_server tab()/combined() pass it through; cellTD paints each cell its real sheet background (bg-only on link/mail/phone, bg+auto-contrast text on plain). No legend names needed, no sheet write — the human color-coding is visible again. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1098075 · 2026-08-13 · rentv :9797 draft composer: richer Follow-up (thank-you + questions + scheduling options)
Follow-up purpose now has its own copy across Email/LinkedIn/Phone: thanks them for taking the time to review, asks 2-3 tailored questions, and offers creative next steps (15-min call windows, 'name a better week' follow-up date, one-pager). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
dfed233 · 2026-08-13 · Live console: email cells are now clickable mailto links; color-coded Status field (colors pulled from the sheet) + click-to-set status picker that writes the value to the sheet
- snapshot.py: extract Status(color) value->color map + canonical value list from cell fills - live_server.py meta(): expose status_field/status_colors/status_values - UI: colored status chips + picker popover, email mailcell Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
File tree
- .gitignore
- AGENT_INSTRUCTIONS.md
- CONTACT_INSTRUCTIONS.md
- NOTES-unverified.txt
- REPORT-coverage.md
- RESUME-DIG.md
- SOURCES.md
- VP_INSTRUCTIONS.md
- WARM-RESUME.md
- YOLOFOREVER-LEDGER.md
- __pycache__/build_li_targets.cpython-314.pyc
- __pycache__/enrich.cpython-314.pyc
- __pycache__/export_top.cpython-314.pyc
- __pycache__/guards.cpython-314.pyc
- __pycache__/infer_emails.cpython-314.pyc
- __pycache__/lib.cpython-314.pyc
- __pycache__/live_server.cpython-314.pyc
- __pycache__/preflight_matches.cpython-314.pyc
- __pycache__/snapshot.cpython-314.pyc
- __pycache__/team_vp.cpython-314.pyc
- __pycache__/warmth.cpython-314.pyc
- __pycache__/write_by_contact.cpython-314.pyc
- __pycache__/writeback.cpython-314.pyc
- add_lastmod.py
- add_sheetname.py
- analyze_colors.py
- apply_phones.py
- build_li_targets.py
- connect.py
- data/batches/batch_01.json
- data/batches/batch_02.json
- data/batches/batch_03.json
- data/batches/batch_04.json
- data/batches/batch_05.json
- data/batches/batch_06.json
- data/batches/batch_07.json
- data/batches/batch_08.json
- data/batches/batch_09.json
- data/batches/batch_10.json
- data/batches/batch_11.json
- data/batches/batch_12.json
- data/batches/batch_13.json
- data/batches/batch_14.json
- data/batches/batch_15.json
- data/batches/batch_16.json
- data/batches/batch_17.json
- data/batches/batch_18.json
- data/batches/batch_19.json
- data/batches/batch_20.json
- data/batches/batch_21.json
- data/batches/batch_22.json
- data/batches/batch_23.json
- data/batches/batch_24.json
- data/batches/batch_25.json
- data/batches/batch_26.json
- data/batches/batch_27.json
- data/batches/batch_28.json
- data/batches/batch_29.json
- data/batches/batch_30.json
- data/batches/batch_31.json
- data/batches/batch_32.json
- data/batches/batch_33.json
- data/batches/batch_34.json
- data/batches/batch_35.json
- data/batches/batch_36.json
- data/batches/batch_37.json
- data/batches/batch_38.json
- data/batches/batch_39.json
- data/cody_held.txt
- data/contactbatches/ct_000.json
- data/contactbatches/ct_001.json
- data/contactbatches/ct_002.json
- data/contactbatches/ct_003.json
- data/contactbatches/ct_004.json
- data/contactbatches/ct_005.json
- data/contactbatches/ct_006.json
- data/contactbatches/ct_007.json
- data/contactbatches/ct_008.json
- data/contactbatches/ct_009.json
- data/contactbatches/ct_010.json
- data/contactbatches/ct_011.json
- data/contactbatches/ct_012.json
- data/contactbatches/ct_013.json
- data/contactbatches/ct_014.json
- data/contactbatches/ct_015.json
- data/contactbatches/ct_016.json
- data/contactbatches/ct_017.json
- data/contactbatches/ct_018.json
- data/contactbatches/ct_019.json
- data/contactbatches/ct_020.json
- data/contactbatches/ct_021.json
- data/contactbatches/ct_022.json
- data/contactbatches/ct_023.json
- data/contactbatches/ct_024.json
- data/contactbatches/ct_025.json
- data/contactbatches/ct_026.json
- data/contactbatches/ct_027.json
- data/contactbatches/ct_028.json
- data/contactbatches/ct_029.json
- data/contactbatches/ct_030.json
- data/contactbatches/ct_031.json
- data/contactbatches/ct_032.json
- data/contactbatches/ct_033.json
- data/contactbatches/ct_034.json
- data/contactbatches/ct_035.json
- data/contactbatches/ct_036.json
- data/contactbatches/ct_037.json
- data/contactbatches/ct_038.json
- data/contactbatches/ct_039.json
- data/contactbatches/ct_040.json
- data/contactbatches/ct_041.json
- data/contactbatches/ct_042.json
- data/contactbatches/ct_043.json
- data/contactbatches/ct_044.json
- data/contactbatches/ct_045.json
- data/contactbatches/ct_046.json
- data/contactbatches/ct_047.json
- data/contactbatches/ct_048.json
- data/contactbatches/ct_049.json
- data/contactbatches/ct_050.json
- data/contactbatches/ct_051.json
- data/contactbatches/ct_052.json
- data/contactbatches/ct_053.json
- data/contactbatches/ct_054.json
- data/contactbatches/ct_055.json
- data/contactbatches/ct_056.json
- data/contactbatches/ct_057.json
- data/contactbatches/ct_058.json
- data/contactbatches/ct_059.json
- data/contactbatches/ct_060.json
- data/contactbatches/ct_061.json
- data/contactbatches/ct_062.json
- data/contactbatches/ct_063.json
- data/contactbatches/ct_064.json
- data/contactbatches/ct_065.json
- data/contactbatches/ct_066.json
- data/contactbatches/ct_067.json
- data/contactbatches/ct_068.json
- data/contactbatches/ct_069.json
- data/contactbatches/ct_070.json
- data/contactbatches/ct_071.json
- data/contactbatches/ct_072.json
- data/contactbatches/ct_073.json
- data/contactbatches/ct_074.json
- data/contactbatches/ct_075.json
- data/contactbatches/ct_076.json
- data/contactbatches/ct_077.json
- data/contactbatches/ct_078.json
- data/contactbatches/ct_079.json
- data/contactbatches/ct_080.json
- data/contactbatches/ct_081.json
- data/contactbatches/ct_082.json
- data/contactbatches/ct_083.json
- data/contactbatches/ct_084.json
- data/contactbatches/ct_085.json
- data/contactbatches/ct_086.json
- data/contactbatches/ct_087.json
- data/contactbatches/ct_088.json
- data/contactbatches/ct_089.json
- data/contactbatches/ct_090.json
- data/contactbatches/ct_091.json
- data/contactbatches/ct_092.json
- data/contactbatches/ct_093.json
- data/contactbatches/ct_094.json
- data/contactbatches/ct_095.json
- data/contactbatches/ct_096.json
- data/contactbatches/ct_097.json
- data/contactbatches/ct_098.json
- data/contactbatches/ct_099.json
- data/contactbatches/ct_100.json
- data/contactbatches/ct_101.json
- data/contactbatches/ct_102.json
- data/contactbatches/ct_103.json
- data/contactbatches/ct_104.json
- data/contactbatches/ct_105.json
- data/contactbatches/ct_106.json
- data/contactbatches/ct_107.json
- data/contactbatches/ct_108.json
- data/contactbatches/ct_109.json
- data/contactbatches/ct_110.json
- data/contactbatches/ct_111.json
- data/contactbatches/ct_112.json
- data/contactbatches/ct_113.json
- data/contactbatches/ct_114.json
- data/contactbatches/ct_115.json
- data/contactbatches/ct_116.json
- data/contactbatches/ct_117.json
- data/contactbatches/ct_118.json
- data/contactbatches/ct_119.json
- data/contactbatches/ct_120.json
- data/contactbatches/ct_121.json
- data/contactbatches/ct_122.json
- data/contactbatches/ct_123.json
- data/contactbatches/ct_124.json
- data/contactbatches/ct_125.json
- data/contactbatches/ct_126.json
- data/contactbatches/ct_127.json
- data/contactbatches/ct_128.json
- data/contactbatches/ct_129.json
- data/contactbatches/ct_130.json
- data/contactbatches/ct_131.json
- data/contactbatches/ct_132.json
- data/contactbatches/ct_133.json
- data/contactbatches/ct_134.json
- data/contactbatches/ct_135.json
- data/contactbatches/ct_136.json
- data/contactbatches/ct_137.json
- data/mbatches/m_01.json
- data/mbatches/m_02.json
- data/mbatches/m_03.json
- data/mbatches/m_04.json
- data/mbatches/m_05.json
- data/mbatches/m_06.json
- data/mbatches/m_07.json
- data/mbatches/m_08.json
- data/mbatches/m_09.json
- data/mbatches/m_10.json
- data/mbatches/m_11.json
- data/mbatches/m_12.json
- data/mbatches/m_13.json
- data/mbatches/m_14.json
- data/mbatches/m_15.json
- data/mbatches/m_16.json
- data/mbatches/m_17.json
- data/mbatches/m_18.json
- data/mbatches/m_19.json
- data/mbatches/m_20.json
- data/mbatches/m_21.json
- data/mbatches/m_22.json
- data/mbatches/m_23.json
- data/mbatches/m_24.json
- data/mbatches/m_25.json
- data/mbatches/m_26.json
- data/mbatches/m_27.json
- data/mbatches/m_28.json
- data/mbatches/m_29.json
- data/mbatches/m_30.json
- data/mbatches/m_31.json
- data/mbatches/m_32.json
- data/mbatches/m_33.json
- data/mbatches/m_34.json
- data/mbatches/m_35.json
- data/mbatches/m_36.json
- data/mbatches/m_37.json
- data/mbatches/m_38.json
- data/mbatches/m_39.json
- data/mbatches/m_40.json
- data/mbatches/m_41.json
- data/mbatches/m_42.json
- data/mbatches/m_43.json
- data/mbatches/m_44.json
- data/mbatches/m_45.json
- data/mbatches/m_46.json
- data/mbatches/m_47.json
- data/mbatches/m_48.json
- data/missing_batches/mc_000.json
- data/missing_batches/mc_001.json
- data/missing_batches/mc_002.json
- data/missing_batches/mc_003.json
- data/missing_batches/mc_004.json
- data/missing_batches/mc_005.json
- data/missing_batches/mc_006.json
- data/missing_batches/mc_007.json
- data/missing_batches/mc_008.json
- data/missing_batches/mc_009.json
- data/missing_batches/mc_010.json
- data/missing_batches/mc_011.json
- data/missing_batches/mc_012.json
- data/missing_batches/mc_013.json
- data/missing_batches/mc_014.json
- data/missing_batches/mc_015.json
- data/missing_batches/mc_016.json
- data/missing_batches/mc_017.json
- data/missing_batches/mc_018.json
- data/missing_batches/mc_019.json
- data/missing_batches/mc_020.json
- data/missing_batches/mc_021.json
- data/missing_batches/mc_022.json
- data/missing_batches/mc_023.json
- data/missing_batches/mc_024.json
- data/missing_batches/mc_025.json
- data/missing_batches/mc_026.json
- data/missing_batches/mc_027.json
- data/missing_batches/mc_028.json
- data/missing_batches/mc_029.json
- data/missing_batches/mc_030.json
- data/missing_batches/mc_031.json
- data/missing_batches/mc_032.json
- data/missing_batches/mc_033.json
- data/missing_batches/mc_034.json
- data/missing_batches/mc_035.json
- data/missing_batches/mc_036.json
- data/missing_batches/mc_037.json
- data/missing_batches/mc_038.json
- data/missing_batches/mc_039.json
- data/missing_batches/mc_040.json
- data/missing_batches/mc_041.json
- data/missing_batches/mc_042.json
- data/missing_batches/mc_043.json
- data/missing_batches/mc_044.json
- data/missing_batches/mc_045.json
- data/missing_batches/mc_046.json
- data/missing_batches/mc_047.json
- data/missing_batches/mc_048.json
- data/missing_batches/mc_049.json
- data/missing_batches/mc_050.json
- data/missing_batches/mc_051.json
- data/missing_batches/mc_052.json
- data/missing_batches/mc_053.json
- data/missing_batches/mc_054.json
- data/missing_batches/mc_055.json
- data/missing_batches/mc_056.json
- data/missing_batches/mc_057.json
- data/missing_batches/mc_058.json
- data/missing_batches/mc_059.json
- data/missing_batches/mc_060.json
- data/missing_batches/mc_061.json
- data/missing_batches/mc_062.json
- data/missing_batches/mc_063.json
- data/missing_batches/mc_064.json
- data/missing_batches/mc_065.json
- data/missing_batches/mc_066.json
- data/missing_batches/mc_067.json
- data/missing_batches/mc_068.json
- data/missing_batches/mc_069.json
- data/missing_batches/mc_070.json
- data/missing_batches/mc_071.json
- data/missing_batches/mc_072.json
- data/missing_batches/mc_073.json
- data/missing_batches/mc_074.json
- data/missing_batches/mc_075.json
- data/missing_batches/mc_076.json
- data/missing_batches/mc_077.json
- data/missing_batches/mc_078.json
- data/missing_batches/mc_079.json
- data/missing_batches/mc_080.json
- data/missing_batches/mc_081.json
- data/missing_batches/mc_082.json
- data/missing_batches/mc_083.json
- data/missing_batches/mc_084.json
- data/missing_batches/mc_085.json
- data/missing_batches/mc_086.json
- data/missing_batches/mc_087.json
- data/missing_batches/mc_088.json
- data/missing_batches/mc_089.json
- data/missing_batches/mc_090.json
- data/missing_batches/mc_091.json
- data/missing_batches/mc_092.json
- data/missing_batches/mc_093.json
- data/missing_batches/mc_094.json
- data/missing_batches/mc_095.json
- data/missing_batches/mc_096.json
- data/missing_batches/mc_097.json
- data/missing_batches/mc_098.json
- data/missing_batches/mc_099.json
- data/missing_batches/mc_100.json
- data/missing_batches/mc_101.json
- data/missing_batches/mc_102.json
- data/missing_batches/mc_103.json
- data/missing_batches/mc_104.json
- data/missing_batches/mc_105.json
- data/missing_batches/mc_106.json
- data/missing_batches/mc_107.json
- data/missing_batches/mc_108.json
- data/missing_batches/mc_109.json
- data/missing_batches/mc_110.json
- data/missing_batches/mc_111.json
- data/missing_batches/mc_112.json
- data/missing_batches/mc_113.json
- data/missing_batches/mc_114.json
- data/missing_batches/mc_115.json
- data/missing_batches/mc_116.json
- data/missing_batches/mc_117.json
- data/ocbatches/oc_00.json
- data/ocbatches/oc_00_li.json
- data/ocbatches/oc_01.json
- data/ocbatches/oc_01_li.json
- data/ocbatches/oc_02.json
- data/ocbatches/oc_02_li.json
- data/ocbatches/oc_03.json
- data/ocbatches/oc_03_li.json
- data/ocbatches/oc_04.json
- data/ocbatches/oc_04_li.json
- data/ocbatches/oc_05.json
- data/ocbatches/oc_05_li.json
- data/ocbatches/oc_06.json
- data/ocbatches/oc_06_li.json
- data/ocbatches/oc_07.json
- data/ocbatches/oc_07_li.json
- data/ocbatches/oc_08.json
- data/ocbatches/oc_08_li.json
- data/ocbatches/oc_09.json
- data/ocbatches/oc_09_li.json
- data/ocbatches/oc_10.json
- data/ocbatches/oc_10_li.json
- data/ocbatches/oc_11.json
- data/ocbatches/oc_11_li.json
- data/ocbatches/oc_12.json
- data/ocbatches/oc_12_li.json
- data/ocbatches/oc_next.json
- data/ocbatches/oc_next_li.json
- data/searched_names.txt
- data/spbatches/sp_01.json
- data/spbatches/sp_02.json
- data/spbatches/sp_03.json
- data/spbatches/sp_04.json
- data/spbatches/sp_05.json
- data/spbatches/sp_06.json
- data/spbatches/sp_07.json
- data/spbatches/sp_08.json
- data/spbatches/sp_09.json
- data/spbatches/sp_10.json
- data/spbatches/sp_11.json
- data/spbatches/sp_12.json
- data/spbatches/sp_13.json
- data/spbatches/sp_14.json
- data/spbatches/sp_15.json
- data/spbatches/sp_16.json
- data/spbatches/sp_17.json
- data/spbatches/sp_18.json
- data/spbatches/sp_19.json
- data/spbatches/sp_20.json
- data/spbatches/sp_21.json
- data/spbatches/sp_22.json
- data/spbatches/sp_23.json
- data/spbatches/sp_24.json
- data/spbatches/sp_25.json
- data/spbatches/sp_26.json
- data/spbatches/sp_27.json
- data/spbatches/sp_28.json
- data/spbatches/sp_29.json
- data/spbatches/sp_30.json
- data/spbatches/sp_31.json
- data/spbatches/sp_32.json
- data/spbatches/sp_33.json
- data/spbatches/sp_34.json
- data/spbatches/sp_35.json
- data/spbatches/sp_36.json
- data/spbatches/sp_37.json
- data/spbatches/sp_38.json
- data/spbatches/sp_39.json
- data/spbatches/sp_40.json
- data/spbatches/sp_41.json
- data/spbatches/sp_42.json
- data/spbatches/sp_43.json
- data/spbatches/sp_44.json
- data/spbatches/sp_45.json
- data/spbatches/sp_46.json
- data/spbatches/sp_47.json
- data/spbatches/sp_48.json
- data/spbatches/sp_49.json
- data/vpbatches/vp_01.json
- data/vpbatches/vp_02.json
- data/vpbatches/vp_03.json
- data/vpbatches/vp_04.json
- data/vpbatches/vp_05.json
- data/vpbatches/vp_06.json
- data/vpbatches/vp_07.json
- data/vpbatches/vp_08.json
- data/vpbatches/vp_09.json
- data/vpbatches/vp_10.json
- data/vpbatches/vp_11.json
- data/vpbatches/vp_12.json
- data/vpbatches/vp_13.json
- data/vpbatches/vp_14.json
- data/vpbatches/vp_15.json
- data/vpbatches/vp_16.json
- data/vpbatches/vp_17.json
- data/vpbatches/vp_18.json
- data/vpbatches/vp_19.json
- data/vpbatches/vp_20.json
- data/vpbatches/vp_21.json
- data/vpbatches/vp_22.json
- data/vpbatches/vp_23.json
- data/vpbatches/vp_24.json
- data/vpbatches/vp_25.json
- data/vpbatches/vp_26.json
- data/vpbatches/vp_27.json
- data/vpbatches/vp_28.json
- data/vpbatches/vp_29.json
- data/vpbatches/vp_30.json
- data/vpbatches/vp_31.json
- data/vpbatches/vp_32.json
- data/vpbatches/vp_33.json
- data/vpbatches/vp_34.json
- data/vpbatches/vp_35.json
- data/vpbatches/vp_36.json
- data/vpbatches/vp_37.json
- data/vpbatches/vp_38.json
- data/vpbatches/vp_39.json
- data/vpbatches/vp_40.json
- data/vpbatches/vp_41.json
- data/vpbatches/vp_42.json
- data/vpbatches/vp_43.json
- data/vpbatches/vp_44.json
- data/vpbatches/vp_45.json
- data/vpbatches/vp_46.json
- data/vpbatches/vp_47.json
- data/vpbatches/vp_48.json
- data/vpbatches/vp_49.json