---
id: 53434cf7-1ae7-4246-bd95-baae8f6a5989
title: Code page Gitea-style (file table + language bar)
state: closed
labels:
- area:render
assignees: []
milestone: m6-polish
created: 2026-09-10T06:30:20.770453164Z
updated: 2026-09-10T07:05:30.131502308Z
---
Context: Code page rework, Gitea-style. The big display issue of the round.
Tasks (research first: agent KNOWS Gitea/GitHub file tables; if network allows, fetch a Gitea repo page for reference — else work from knowledge, note which):
1. File list as TABLE (not bullets): rows = [name (linked, dirs with / suffix + trailing row), last-commit message (short, escaped, truncated 72), age (relative "3d ago" from committer date, computed at build)]. Dirs-first, then files, each alpha. Parent `..` row. Breadcrumb stays.
2. Language mix bar: at build, walk tree blobs by extension map (rs/py/js/ts/go/sh/css/html/md/toml/yaml/json/c/h + other), bytes share; render stacked bar (Tokyo Night hues per language, legend with %; <1% grouped as other). Pure build-time, no JS. Empty/tiny repos → bar hidden with no language-yet note? Show bar only if >=1 code file.
3. Keep meta bar, README, clone block (as #34/#32 leave them — rebase onto their output; supervisor sequences this LAST of the round).
4. Tests: table structure asserts, message truncation, relative age (fixed clock fixture), language math on fixture (known bytes → exact %), escaping of evil filename/message.
Swarm: strong Owl/Platinum-grade care. Branch `m6/code-gitea`. Land LAST (after #32).
