Skip to content

feat: translation library + glossary, slim README (top 10, first screen) - #10

Merged
jammyfu merged 3 commits into
mainfrom
feat/slim-readme-translation-library
Oct 30, 2026
Merged

jammyfu merged 3 commits into
mainfrom
feat/slim-readme-translation-library

Conversation

@jammyfu

@jammyfu jammyfu commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Stacked on #8 (base feat/agy-local-polish; merge #8 first, then this PR retargets to main). Not merged. About / topics / llms.txt untouched.

1. Token saving

  • data/newcomer_i18n.json is now the translation library data/translation_library.json, keyed exactly by repo + sha256(source)[:12] + language. Hit = no model call. Miss (new or changed text) = only the missing languages of that text are sent. Old versions stay (a change back is a hit). seen + newcomer_i18n.py --prune-days N for cleanup (never automatic). Old flat files are still read.
  • data/glossary.json: fixed terms (star, agent, skill, repo, prompt ...) in 5 languages; only the terms present in a batch go into the prompt.
  • Polish sends only un-polished entries (new-repo texts are keyed by repo + source hash).
  • Logs: translate: library 45/50 hits (90%), 0 partial, 5 new -> 5 to send to the model, 0 calls for the hits, polish: 8/12 texts already polished or given up on (skipped), 4 to send. Printed also when the model is unavailable.
  • Tests: zero model calls on a full hit (also no runner is even built), only changed source is sent, same text in another repo is not a hit, log counts, glossary only-present-terms, only un-polished entries polished.

2. Slim README (generator only, 5 languages)

First screen: switcher (line 1), headline, header image .github/social-preview.png, 3 badges (MIT, CI, last updated), one sentence, update stamp, links (Website, How it works, Facts, History, Latest), category leaders table (rows link to the boards), top-10 note, 3 Q&A subheads linking docs/FAQ.md. Then the boards (top 10 each; full top 20 in latest/), star prompt, how to cite (CITATION.cff).
Intro, schedule, methodology, categories table, contributing and the long new-repo explanation moved to generated docs/HOW_IT_WORKS*.md. Daily scripts now git add docs/HOW_IT_WORKS*.md.
docs/FAQ.md, docs/FACTS.md, CITATION.cff, .github/social-preview.png come from GEO PR #9; they are only linked (the link test skips exactly these four until #9 merges).

README.md size: 148,743 B before -> 113,426 B after (zh-Hans 150,814 -> 114,907).

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-30T10:01:57.192189Z d85a0ef PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d85a0eff52

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/i18n_pipeline.py
Comment on lines 539 to +543
if not gaps:
result["translate"] = {"todo": 0}
log("translate: nothing to do, every displayed description already has a current translation")
hs = nci.hit_stats(lib, items)
result["translate"] = {"todo": 0, **hs, "calls": 0}
log(f"translate: library {hs['hits']}/{hs['total']} hits ({_pct(hs['hits'], hs['total'])}), "
"nothing new, 0 model calls")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Refresh usage dates even when every translation is cached

When all ranked descriptions are cache hits, this branch skips translate(), which is the only place that calls nci.touch(). Consequently, a successful run leaves the entries' seen dates unchanged, and a subsequent --prune-days N can delete translations that were just used once their stored dates exceed the retention window. The same problem affects cached entries when other descriptions have gaps but the model is unavailable. Refresh and save usage dates independently of whether model work is needed, while preserving the no-write behavior of dry runs.

Useful? React with 👍 / 👎.

@jammyfu
jammyfu changed the base branch from feat/agy-local-polish to main October 30, 2026 10:15
@jammyfu
jammyfu force-pushed the feat/slim-readme-translation-library branch from d85a0ef to 53c0e42 Compare October 30, 2026 10:16
@jammyfu
jammyfu force-pushed the feat/slim-readme-translation-library branch from 53c0e42 to 9b778af Compare October 30, 2026 10:16
@jammyfu
jammyfu merged commit 41a555e into main Oct 30, 2026
1 check passed
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