Skip to content

Daaf dev - #20

Merged
brhkim merged 30 commits into
mainfrom
daaf_dev
Aug 18, 2026
Merged

Daaf dev#20
brhkim merged 30 commits into
mainfrom
daaf_dev

Conversation

@brhkim

@brhkim brhkim commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

Merge daaf_dev updates through v3.0.2!

DAAF Container and others added 30 commits August 2, 2026 19:47
…tegration

Add file-explorer entry points so users can start DAAF without typing
terminal commands, as thin shims over the existing control panel scripts:

- scripts/host/daaf.bat (Windows): cd-to-self + same-console PowerShell
  handoff to daaf.ps1 with per-process ExecutionPolicy bypass; window
  held open on any nonzero/negative exit; UNC-path guard; committed with
  CRLF bytes via a new *.bat -text gitattributes rule (install.ps1
  serves the raw blob, so the committed bytes must be CRLF)
- scripts/host/DAAF.command (macOS, mode 100755): Bash-3.2-safe
  cd-to-self + exec bash daaf.sh, with pre-handoff guards only
- scripts/host/daaf.ico: DAAF icon (6-size ICO, 16-256px, RGBA)
- install.sh / install.ps1: place the launchers (Darwin-gated .command
  chmod; non-fatal icon download); install.ps1 creates a draggable
  in-folder DAAF.lnk shortcut (never writes to the Desktop; icon via
  Test-Path fallback; warn-and-continue on any failure)
- update_daaf.sh / update_daaf.ps1: platform-filter whitelists so
  existing installs receive the launchers and icon on update, with
  exec-bit preservation for .command
- Docs: quickstart, host README, and technical FAQ cover the per-OS
  double-click paths, the one-time Gatekeeper note for browser-downloaded
  copies, and Linux's terminal-only path (no launcher by design);
  terminal commands remain the universal fallback
- Tests: new launcher_shims.bats (11 tests incl. a runtime handoff/env
  passthrough exercise) plus updater filter coverage (+4 bats, +2
  Pester); lint gains a binary-asset exemption for the icon; CI bash -n
  gate extended to *.command; CLAUDE.md records the .command exec-bit
  convention and the .bat CRLF exception

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TPeEQJdorcZxyimrErNgvu
…n standard

Encode a mode-agnostic rule that every substantive turn end briefs the user on
all work since their last message, taken altogether — translational,
action/insight-oriented, attention-economy-governed (no fixed length/item
quotas). Master statement added under SKILL.md "User-Facing Communication
Standards"; pointers propagated into all nine mode files following the Wave
Barrier Discipline define-once pattern. User-facing paragraph added to
user_reference/02. remind-orchestrator.sh GPT-gated register guidance removed
(user-deployed), superseded by the model-agnostic standard.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CZmJomwUAb5AYaanHpd5t4
…, v3 billing reconciliation

- models.yaml: add deepseek/deepseek-v4-flash-0731:novita/fp8 (pricing verified
  online 2026-08-02; wire_id OBSERVED via probe run, purity verified); retire
  the undated DeepSeek V4 Flash entry per the REMOVED-block precedent; new
  retired_model_pricing: section preserving list rates for retirees with
  corpus history (viewer-only, harness ignores it)
- README: new 10-step "Adding a New Model" checklist (S4); billing
  reconciliation pipeline documentation in S7 (v1-stale/v2/v3 lineage,
  +/-0.26 correction rule, dated-permaslug gotcha); 2026-08-02 reconciliation
  snapshot changelog entry; stale example key and count re-sweeps
- test_chatgpt_route.py: key-set partition updated for the add/retire;
  Terra/Sol now asserted against their own published tiers (registry was
  corrected 2026-07-29 but the test still froze Luna's copied schedule) -
  module green 27/27
- generate_results_viewer_v2.py: load_model_pricing() reads
  retired_model_pricing so retired models with corpus history keep cost
  estimates (30/30 priced)
- viewer_template.html: Key Takeaways refocused on DeepSeek V4 Flash 0731
  (name-only swaps in prose + fillTakeaways lookups)

Benchmark battery (4 phases x 3 reps, zero failed runs): DC 27/36 (old Flash
22/36), MC 42/45, PC 24/27, SR 5/45. Reconciliation: obs/pred 0.639 flagged;
rate correction deliberately deferred pending a second campaign.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJgLy49vixnTBbe3w7Pat5
Existing Windows installs predate install.ps1's DAAF.lnk block and never
received an in-folder shortcut. Sync-HostScript now creates (or refreshes,
preserving user customizations like hotkeys; dragged-away copies untouched)
the DAAF.lnk after daaf.bat/daaf.ico sync, with the installer's non-fatal
warn-and-continue semantics; the absolute TargetPath also self-repairs a
stale shortcut after a folder move. Dry-run gated so CI never invokes
WScript.Shell COM (unavailable on Linux pwsh). FAQ updated: running an
update is now the easiest way to recreate a missing shortcut.

+3 static Pester tests (COM cannot be exercised on Linux; the dry-run
gating test pins branch nesting by requiring an '} else {' token between
the dry-run message and the COM call, not just textual order).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TPeEQJdorcZxyimrErNgvu
Normalize the three newest CHANGELOG version headings (v3.0.1, v3.0.0, v2.1.0) from '--' to em dashes so all six Table-of-Contents anchors resolve, and rename the v2.0.0 '### Painfully Detailed Changelog' subsection to '### Detailed Notes'.

Repo-wide cross-link sweep fixed 65 broken heading anchors: 1 in user_reference/07_faq_technical.md (renamed 'GPT Fast Mode' heading), 15 stale/typo ToC anchors across crdc/fsa/pseo/fixest/statsmodels skill references (including removing one dead 'Status Flags' entry), and 49 kramdown {#custom-id} attributes stripped from six synthetic-data-workflow references with their ToCs repointed to GitHub-computed slugs. Independently verified: 14/14 files pass, 0 residual {#id}.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HuVMk979GU4JVMoSorBtfh
… all-perfect Consistency rate (v3.7.3)

T4 previously ran on the v3.7.0 rate_agree agreement variant, which is a
predictability measure (a model failing identically every rep scores high)
and had no counterpart anywhere in the data displays. It now reads the
all-perfect consistency rate — the same metric as the leaderboard's
Consistency column — so the takeaway's claim is verifiable in the table,
and the contrast is starker (Fable 5 88.2% vs DeepSeek V4 Flash 0731
52.9%, vs 92.2%/80.4% under agreement).

- viewer_template.html: T4 prose reworked (headline narrowed to
  "reliability"; mechanism sentence names the leaderboard tie-in); spans
  renamed kt-t4-{topagree,budgetagree} -> kt-t4-{topcons,budgetcons};
  fillTakeaways reads .rate; anchor comment restamped (supersedes the
  2026-07-29 hand-edit protection per user decision)
- generate_results_viewer_v2.py: v3.7.3 changelog entry, version bump,
  dev-guide/inline comments corrected (rate_agree stays in the payload
  under the schema-additive contract but is display-orphaned)
- test_viewer_schema_loading.py: generator_version pin updated to 3.7.3
  (was stale at 3.7.1, already failing against the committed 3.7.2)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011D99zruSSS3nVqQFmVmCQ8
…Changelog

Align viewer_template.html with the 2026-08-03 site-wide navbar change on the
Open Augments website: Support is now a dropdown (Overview + Changelog at
daaf-product/changelog.html). Regenerated viewers no longer clobber the
hand-patched website copy. Reuses the existing button-based nav-dropdown
pattern; no CSS/JS changes needed. ../daaf-product/ link count is now 14,
matching the website deploy check.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LB4tLa3LpWWCgemZp6hEqV
…al in 7defcc8

Commit 7defcc8 removed the GPT-gated collaborator-guidance branch from
remind-orchestrator.sh (superseded by the model-agnostic Turn-End Briefing
standard) but left the BATS suite asserting the removed guidance, breaking
8 tests in CI. Flip guidance assertions to refutations (regression guard:
the marker string may never reappear), collapse the four guidance-positive
model-matching tests into one, and drop the unused GUIDANCE_* clause
variables. All 21 tests pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LB4tLa3LpWWCgemZp6hEqV
…th verbatim relocations

Relocate the Defense-in-Depth table to BOUNDARIES.md and context-threshold
profile-selection mechanics to new CONTEXT_THRESHOLDS_REFERENCE.md; backfill
code-style rules, file-naming tables, and the stage-directory table into
SCRIPT_EXECUTION_REFERENCE.md (previously existing only in CLAUDE.md).
Condense Versioning & Naming and Shell Script Permissions to summaries with
pointers. All cited headings preserved; stale cross-references updated in
revision-and-extension-mode.md, FRAMEWORK_INTEGRATION_CHECKLIST.md (H3/HM6/
HR3), and ERROR_RECOVERY.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LB4tLa3LpWWCgemZp6hEqV
Use medium as the fallback response verbosity, update operator guidance, and align focused regression expectations and shim version metadata.

Co-Authored-By: Claude <noreply@anthropic.com>
…ing WebFetch

Add a local-first web retrieval system: scripts/web_fetch.py + web_fetch.sh
(httpx + trafilatura) save raw bytes, a deterministic .md extract, and an
atomic MANIFEST.jsonl provenance row (SHA-256s, redirect chain, dual byte
counts) per fetch attempt, failures included. Safety guards live inside the
tool: env-secret exfiltration refusal, DEST_DIR containment under /daaf,
http(s)-only, size/URL caps, untrusted-content fencing with injection-shape
redaction, enumerated exit codes (3 reserved for run_with_capture.sh), and
graceful raw-only degradation when trafilatura is absent.

New web-retrieval skill encodes the doctrine: WebSearch = discovery only,
web_fetch.sh = retrieval; permitted contexts (search-agent, data-ingest,
debugger, orchestrator); size rules; failure table; untrusted-content rule;
recorded stances (honest UA + --browser-ua escape hatch, robots.txt not
honored, hook-only enforcement).

Block the built-in WebFetch via the instructive block-webfetch.sh PreToolUse
hook (no permissions.deny entry, by design - the deny-rule would suppress
the teaching redirect). Correct stale WebFetch guidance in
deny-claude-code-guide.sh and enforce-explore-model.sh. Register the hook in
settings.json.

Sweep WebFetch out of the instruction surface: remove from three agents'
tools frontmatter; update agent protocols, agents README, CLAUDE.md,
orchestrator SKILL.md, four mode/workflow references, and the deploy-smoke
T2.3 pass signal; rewrite the framework-development-mode false claim about
framework-engineer web tools. Pin trafilatura 2.2.0 + extraction stack in
the framework Python layer of the Dockerfile.

Live-verified post-rebuild: trafilatura extraction, dedup detection,
thin-extract warning, network-failure audit row, guard refusals, and the
WebFetch deny hook all exercised successfully.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcXVBetVpXGZHYVtesTRtV
Add Trafilatura (Adrien Barbaresi) to the Open Source Software list -- it
powers the web-retrieval layer's content extraction -- with a pointer to the
Barbaresi (2021) ACL citation, and add Barbaresi to the software authors in
Methodological Foundations.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcXVBetVpXGZHYVtesTRtV
Add a Responsible-pillar note to the provenance section: cite Barbaresi
(2021, ACL-IJCNLP System Demonstrations) when retrieved web content
materially supports findings, mirroring data-source skills' citation
guidance. The manifest already records the trafilatura version per row.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcXVBetVpXGZHYVtesTRtV
…ol, and Ad Hoc wiring

New capability piloted in Ad Hoc Collaboration mode: user-directed analytic
triangulation that turns researcher concerns into competing hypotheses, bounded
discriminating tests, and evidence-calibrated interpretations in a pre-committed
hypothesis/evidence ledger — behavioral, output-level verification replacing
line-by-line code review.

- .claude/skills/creative-verification/: SKILL.md + 4 references (12 challenge
  families over Shadish-Cook-Campbell validity types; sensitivity-statistic
  catalog with container-verified executable vs flag-and-describe split; six
  interpretation statuses, budgets, stopping rules; interactive-artifact QA)
- agent_reference/TRIANGULATION_PROTOCOL.md: ledger schema, test lifecycle,
  provenance chain, pre-analysis variant, scope-change approval rules
- ad-hoc-collaboration-mode.md: trigger signals, direct-load wiring, ledger
  duties, promotion path to Revision and Extension
- README.md, user_reference 02/07: discoverability blurbs

Design grounded in a deep prior-art survey (multiverse/spec-curve, validity
frameworks, adversarial collaboration, graphical inference) and an observed
container package inventory. Three-angle review passed; CLAUDE.md registration
and Full Pipeline wiring deliberately deferred until post-pilot.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019v8Uemwff3V62fWYW9Qcta
…h revision-pinned fetches

Introduce the versioned-mirror architecture: mirrors.yaml gains a vintage block
pinning the 2026q3 HF mirror to immutable commit 0ad00ce0 (predecessor v0.24.0
repo frozen and pinned at 10fea9c7); fetch-patterns thread the revision through
every Python/R data, discovery, and codebook URL. datasets-reference gains the
vintage note, discovery-vs-fetch forward pointer, and verified year rows;
vintage-drift.md documents what changed between vintages (grad-rates dedup and
revaluation, cosmetic missing-code re-encoding classes). education-data-context
and tidyverse io.md updated to the pinned-URL pattern.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bg1F7KtnSSUdmVn57DrwGA
…vintage (v0.26.1)

Refresh the education-data-source-* family against the pinned 2026q3 mirror and
~460 live-verified data-doc claims: updated year coverages (grad-rates 1996-2023,
MEPS 2.0 through SY2022-23, 2024 CCD/SAIPE/IPEDS directory years), corrected
CRDC id-dtype framing (per-file heterogeneity, no universal contract), EADA
opeid softening, hate-crimes crime_type roster, csafety codebook-partialness
note, CCD teachers_fte API-rounding note, reproducible probe citations, and
mirror-first explorer cross-reference wording.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bg1F7KtnSSUdmVn57DrwGA
…skill

Replace the API-endpoint-centric explorer (28 of 83 documented routes dead,
41 of 62 matched endpoints carrying fabricated variable names per the
2026-08-07/08 probe audit) with a mirror-first discovery layer for read-only
agents:

- SKILL.md (591->177 lines): question->mirror-file routing, grain logic,
  emit-currency guidance; deletes the REST URL spine and live-fetch samples
- New routing references: colleges/districts/schools-datasets.md (85 dataset
  families: path, grain, verified years, real key variables, joins, caveats)
- 14 variable-dictionary-{source}.md: mechanically generated from the Portal
  varlist captured at v0.26.1 (2,235 per-source variables), zero hand
  transcription
- variable-codes.md: corrected award_level scheme, disability codes, CCD sex 9,
  sentinel roster (-99 in, -4/-9 out), local-filter examples, legacy-name
  alias table
- maintenance-live-api.md: live-API knowledge fenced as maintenance-only, with
  the four API-vs-bulk divergence classes and regeneration pointers
- Deletes *-endpoints.md and metadata-api.md (claim-by-claim migration ledger
  in the session workspace)

All facts trace to probe parquets or quoted live probes; verified by three-angle
review (119/120 traceability sample) plus a functional-equivalence audit (10/10
jobs, none degraded) and a live Stage-2 smoke run.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bg1F7KtnSSUdmVn57DrwGA
…ic Dataset Identifier

Fix the discovery->planning->acquisition currency mismatch: Stage-2 output and
the plan-completeness gate previously spoke Portal endpoint names while
acquisition consumes canonical dataset paths. The contract is now "Candidate
Datasets" keyed by "Dataset Identifier" - defined generically as the identifier
the domain's retrieval skill consumes - with the education mirror path kept
strictly as a labeled exemplar, so non-mirror domains (e.g. Dataverse-based
sources) fit the same contract. Applied consistently across WORKFLOW_PHASE1
(both contract copies), WORKFLOW_PHASE2, PLAN_TEMPLATE, full-pipeline-mode,
data-discovery-mode, and research-synthesizer's section-lookup table.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bg1F7KtnSSUdmVn57DrwGA
…ion tooling

Commit the scripts/mirror_maintenance/ toolchain (immutable, log-bearing per
DAAF script versioning): mirror audit/build/validation (01-36), the endpoint
ground-truth probe battery (37-44), parity-expansion harnesses (45-52), and the
regeneration pipeline referenced by the explorer skill's maintenance-live-api.md
- endpoint-file bridge (53), variable-dictionary generation (54), and the
EDFacts race-code probes (55-56, currently blocked by an Urban-side outage).
Appended execution logs are retained as the audit trail. Scripts reference
session-workspace input paths; next-vintage runs create dated revisions per
the documented regeneration pattern.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bg1F7KtnSSUdmVn57DrwGA
…metadata

- Convert 112 prose em dashes in rendered copy and JS display strings to
  the house `--` convention; retain 52 "no data" placeholder glyphs and
  all comment/CSS em dashes (comment-aware rule-based sweep, node --check
  verified on all script blocks)
- Metadata titles (title/og:title/twitter:title) and og:image:alt use a
  single hyphen per maintainer ruling 2026-08-10 (metadata-only exception
  to the body-copy `--` convention)
- Add missing head fields per cross-site field-presence audit:
  theme-color, og:site_name, apple-touch-icon, og:image width/height/alt
  companions, twitter:image; flip twitter:card to summary_large_image
  (no static og:image — deploy script injects exactly one)
- Replace inline SVG favicon with the shared site favicon-32 (absolute
  URL; bench page deploys under /bench/)
- REPLACE-WITH-FINAL-URL.html deploy token verified byte-identical

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VNFFUrT3m2iNUn7ZZzQTAc
- Add openrouter registry entries for thinkingmachines/inkling and
  /inkling-small, both pinned to deepinfra/fp8 (shared-provider pair per
  maintainer decision; together endpoint degraded on inkling at fetch
  time). Endpoint facts verified online 2026-08-10; wire_ids OBSERVED
  (bare slugs) from the dc-01 probe archives; full purity pinning
- Pricing billing-reconciled 2026-08-10: effective rates calibrated to
  obs/pred 1.00 on each model's billed token mix (heavy DeepInfra cache
  discounting); published list rates preserved in comments
- Full 4-phase battery completed at 3 reps (306/306 runs, no stalls or
  timeouts); results under results/20260810_*
- reconcile_openrouter_costs.py: default output JSON now dated at run
  time so reruns never overwrite a prior dated snapshot (the hardcoded
  2026-06-11 default silently clobbered the June historical file)
- README model-matrix counts 36/24; test_chatgpt_route key partition and
  count assertions updated (27/27 passing)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VNFFUrT3m2iNUn7ZZzQTAc
…collision (1.3.10 -> 1.3.18)

Root cause: auto-start failed when a stale PID-derived FIFO
(shim.stream.<pid>) collided with a reused supervisor PID. The repair
replaces PID-derived transport with private mktemp-allocated stream
workspaces and, across bounded review cycles, hardens the full
lifecycle protocol:

- kernel flock lifecycle/log locking with stable private lock dirs
- queue-only signal handling retained through natural shell exit, with
  durable SHIM_RESTART_RESULT append as the irreversible commit boundary
- typed fail-closed PID evidence via the new standard-library helper
  scripts/provider_shim/lifecycle_capability.py (no-follow reads, exact
  decimal grammar, role adjudication, start-time-bound TERM->KILL)
- inode-aware workspace cleanup with quarantine-rename + re-stat +
  identity-bound unlink; documented as best-effort hardening against
  same-UID substitution (Linux has no inode-conditional unlink)
- exact legacy four-field supervisor argv compatibility for live
  transitions; exact W1 capability token grammar
- benchmark wire-ID contract narrowed to the observed exception;
  stale ModelConfig guidance corrected

Tests: lifecycle Bats grown 52 -> 108; helper contract suite added
(7 tests); provider suite 287/287; shim-route 36/36; benchmarks
182/182. Live daemon validated at 1.3.18 (strict ready, smoke-clean
on all shim-relevant probes).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Lyjxj4He482bpUfuKzba2
…erdict triage

Voice-pass follow-up to the lifecycle repair (eb11074). The technical
lifecycle-guarantees paragraph had accreted in the Option F setup flow
across repair cycles; per the voice-pass standard (shim internals do
not belong in setup steps), it now lives in the lane's optional
"Under the hood" reference as "Lifecycle safety and its limits," with
every load-bearing fact preserved verbatim, and the setup flow keeps
one plain-language sentence in its place.

Also adds SHIM_RESTART_RESULT triage guidance to the technical FAQ's
shim troubleshooting entry: how to read the verdict line and its
stage vocabulary (stop/launch/readiness), verified against the
manager source.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Lyjxj4He482bpUfuKzba2
…erage and display-retirement fixes (viewer v3.8.1)

Pricing (2026-08-11 schedules, verified against live OpenAI/OpenRouter pages):
- models.yaml: GPT-5.6 Terra/Luna api-equivalent blocks repriced to OpenAI's
  new schedule (Terra ~-20%, Luna 5x cut; Sol re-verified unchanged);
  OpenRouter lane entries updated to OpenRouter's listed rates (Terra
  cached_input inferred, marked provisional); dated provenance comments
- cost_estimator.py: LUNA_*_CONTEXT_RATES constants + source/accessed stamps
- README dual-ledger table and prose; install-guide slug table; rate-derived
  test expectations recomputed (test_chatgpt_route, test_subscription_accounting,
  test_artifacts_and_preflight)
- Viewer battery costs re-price all historical runs at current list rates
  (existing build-time behavior); archived billing records untouched

Changelog feature (viewer v3.8.0):
- New curated, public, date-keyed benchmarks/CHANGELOG.md (16 entries,
  2026-06-12 onward) parsed at build time (load_changelog, fail-soft) into
  __CHANGELOG_HTML__/__CHANGELOG_LATEST__ tokens; hero pill button (teal
  border, inline with the report date) opens a mobile-friendly modal
  (scrim/Escape/close dismiss, focus trap + return, scroll lock, full-screen
  sheet on narrow viewports); wrapped-bullet continuation-line parsing;
  README §8 format contract + regeneration workflow

Cost coverage + display retirement (viewer v3.8.1):
- reconcile_openrouter_costs.py: PERMASLUG_BASE_OVERRIDES for the dated-slug
  gotcha (deepseek-v4-flash-20260731 -> -0731); removed the stale static
  gemini-3.5-flash exclusion — both models restored to the battery-cost table
  via the new 2026-08-11 reconciliation snapshot
- retired_display_exclusions (models.yaml + generator): undated DeepSeek V4
  Flash fully removed from all report surfaces (168 runs; on-disk runs
  untouched); obsolete retired_model_pricing entry retired
- Public prose no longer cites the OpenRouter Terra/Luna discount (report
  GPT-5.6 costs are OpenAI api-equivalent)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VfzTapWcwjWWwCk8j3rMMd
Drop the "Relative Duration" price-basis toggle from the Cost vs. Performance
COST_FORMS registry and the "duration multiplier, precisely" methodology
footnote (durationDisclosureHtml + call site) — both functionally deactivated.
PRECOMPUTED.duration payload and the now-unreachable isDur branch remain
(schema-additive, v3.7.0 precedent). Deliberately no public CHANGELOG.md
entry (dead-UI removal, not audience-relevant); recorded in the generator's
v3.8.1 docstring notes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VfzTapWcwjWWwCk8j3rMMd
…en 3.8, harden onboarding process

Model onboarding (benchmarks/README.md § Adding a New Model, followed end-to-end):
- config/models.yaml: add x-ai/grok-4.6:xai/zdr (wire_id OBSERVED, purity
  verified), deepseek/deepseek-v4-pro-0813 (bare slug; undated Pro kept
  active for side-by-side comparison), and qwen/qwen3.8-2.4t-a95b (day-zero
  endpoint not yet benchmark-viable: 3x instant 400 then 502 on full-payload
  traffic, $0 billed; temporarily display-quarantined via
  retired_display_exclusions to unbreak the range-quartile tier breaks).
- Full 3-rep four-phase batteries for Grok 4.6 + DS Pro 0813; billing
  reconciled (billed/harness 1.06 / 1.04, list rates retained). New
  PERMASLUG_BASE_OVERRIDES entry: dated permaslug deepseek-v4-pro-20260813
  otherwise misattributes to the still-active undated Pro.
- tests/test_chatgpt_route.py: key partition + count assertions (39 total /
  27 openrouter); fixed pre-existing count-comment drift (27/27 tests pass).

Rep-count hygiene + editorial refresh (viewer v2, bundle daafbench_2026-08-12d):
- Exactly-3-reps corpus contract verified: 33 models x 51 cases, 0 deviations
  (scratch/verify_rep_counts_2026-08-12.py, uses the generator's own loader).
  Onboarding probe sets quarantined (_quarantine_* rename + notes); DS 0813
  dc-11 topped up at --timeout 1500.
- viewer_template.html: hero + Key Takeaways re-ratified for the new frontier
  (five models, four creators; Grok 4.6 joins T1 prose); span contract now 27
  with two-way span<->setter verification.
- build_rerun_queue.py: dc-11/dc-12 are valid, retained cases (maintainer
  decision 2026-08-12, supersedes the 2026-07-18 audit exclusion);
  DEFAULT_EXCLUDED_CASES emptied.
- README: new mandatory onboarding steps 7b (rep-count hygiene) and 8b
  (editorial review of narrative/takeaways/headlines).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EEPQtVXw9qcjVtVd374DzC
…n install.sh

The DAAF.command fetch failure previously degraded to a quiet NOTE while the
install reported success — the same fault aborts loudly on Windows (daaf.bat is
load-bearing in install.ps1), so Mac gaps went invisible. The failure branch now
emits a WARNING with the curl exit code, exact URL, and effective branch, plus
remediation guidance (update_daaf.sh existence-heal; bash daaf.sh fallback), and
removes any partial download so a broken file cannot shadow the later heal
(Tier A only copies absent files). Still non-fatal; dry-run branch, Darwin gate,
and success path unchanged.

Diagnosed alongside: field report was installer bootstrap version skew (main
install.sh executing with DAAF_BRANCH=daaf_dev content), resolved by
branch-adjusted bootstrap; deferred follow-ups recorded in session notes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbZcyZY2nw7mrPQg56wFMQ
…e pass

Version sweep across the 9-file touchset (CITATION.cff first, README badge/citations, four agent_reference templates). New CHANGELOG entry: Double-Click to Launch, incl. two-updater-runs note and Windows AV known-issue note. Doc-currency fixes: two-run parenthetical precision, ~57 pinned Python packages, 12 R library skills. Voice pass over README, CONTRIBUTING, and user_reference 01/02/03/04/07 per five-reviewer scoping and three-angle review; all load-bearing facts preserved verbatim.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbZcyZY2nw7mrPQg56wFMQ
Appended by run_all_smoke_tests.sh during v3.0.2 release validation (exit 0, igraph/tidygraph/ggraph all pass). Matches the committed-log convention of the other 18 smoke scripts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbZcyZY2nw7mrPQg56wFMQ
@brhkim
brhkim merged commit 4c5fc85 into main Aug 18, 2026
28 of 38 checks passed
@brhkim
brhkim deleted the daaf_dev branch August 18, 2026 21:51
@brhkim
brhkim restored the daaf_dev branch August 18, 2026 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant