gemini "fixes"

This commit is contained in:
2026-02-22 11:32:54 -05:00
parent 4755f4b590
commit 1b598972fb
3 changed files with 131 additions and 256 deletions

View File

@@ -126,9 +126,8 @@ def build_summary_section(base_dir: Path, files: list[str]) -> str:
items = build_file_items(base_dir, files)
return summarize.build_summary_markdown(items)
def build_markdown(base_dir: Path, files: list[str], screenshot_base_dir: Path, screenshots: list[str], history: list[str], summary_only: bool = False) -> str:
def build_static_markdown(base_dir: Path, files: list[str], screenshot_base_dir: Path, screenshots: list[str], summary_only: bool = False) -> str:
parts = []
# STATIC PREFIX: Files and Screenshots must go first to maximize Cache Hits
if files:
if summary_only:
parts.append("## Files (Summary)\n\n" + build_summary_section(base_dir, files))
@@ -136,12 +135,12 @@ def build_markdown(base_dir: Path, files: list[str], screenshot_base_dir: Path,
parts.append("## Files\n\n" + build_files_section(base_dir, files))
if screenshots:
parts.append("## Screenshots\n\n" + build_screenshots_section(screenshot_base_dir, screenshots))
# DYNAMIC SUFFIX: History changes every turn, must go last
if history:
parts.append("## Discussion History\n\n" + build_discussion_section(history))
return "\n\n---\n\n".join(parts)
return "\n\n---\n\n".join(parts) if parts else ""
def run(config: dict) -> tuple[str, Path]:
def build_dynamic_markdown(history: list[str]) -> str:
return "## Discussion History\n\n" + build_discussion_section(history) if history else ""
def run(config: dict) -> tuple[str, str, Path, list[dict]]:
namespace = config.get("project", {}).get("name")
if not namespace:
namespace = config.get("output", {}).get("namespace", "project")
@@ -155,18 +154,21 @@ def run(config: dict) -> tuple[str, Path]:
output_dir.mkdir(parents=True, exist_ok=True)
increment = find_next_increment(output_dir, namespace)
output_file = output_dir / f"{namespace}_{increment:03d}.md"
# Provide full files to trigger Gemini's 32k cache threshold and give the AI immediate context
markdown = build_markdown(base_dir, files, screenshot_base_dir, screenshots, history,
summary_only=False)
static_md = build_static_markdown(base_dir, files, screenshot_base_dir, screenshots, summary_only=False)
dynamic_md = build_dynamic_markdown(history)
markdown = f"{static_md}\n\n---\n\n{dynamic_md}" if static_md and dynamic_md else static_md or dynamic_md
output_file.write_text(markdown, encoding="utf-8")
file_items = build_file_items(base_dir, files)
return markdown, output_file, file_items
return static_md, dynamic_md, output_file, file_items
def main():
with open("config.toml", "rb") as f:
import tomllib
config = tomllib.load(f)
markdown, output_file, _ = run(config)
static_md, dynamic_md, output_file, _ = run(config)
print(f"Written: {output_file}")
if __name__ == "__main__":