kepr3

TypeScript

185 saves · 13,588 lines · updated 13 minutes ago

d9c345d0eac2 scaffold kepr 3 on bun with strict typescript, biome and validated kepr.toml loading (v3.0.1) 2026-09-26 16:09 · claude-opus-5-5 · kepr 3 implementation62097d82837d add the read-only bucket reader with the koh-remote format check, verified objects and a koh3-built fixture (v3.0.2) 2026-09-26 16:09 · claude-opus-5-5 · kepr 3 implementation80ceee69d14a add security headers, the 64 KB body cap, the budget check and the route-list test (v3.0.3) 2026-09-26 16:10 · claude-opus-5-5 · kepr 3 implementation3f94f3d4aead add agents guide, continuity and visual reference for kepr 3 (v3.0.4) 2026-09-26 16:11 · claude-opus-5-5 · kepr 3 implementation1972104e46af validate paths, ids and fields of bucket save records before use (v3.0.5) 2026-09-26 16:15 · claude-opus-5-5 · kepr 3 implementationaab0488febf0 add kepr.db, the per-repo koh 3 mirror with its queries, and the two-minute sync loop that applies strip events and records the last sync (v3.0.6) 2026-09-26 16:23 · claude-opus-5-5 · kepr 3 implementationde50af6ed620 add the public repo page, file viewer and raw files behind the visibility gate, with the svg timeline, shiki highlighting and kepr 2's look (v3.0.7) 2026-09-26 17:57 · claude-opus-5-5 · kepr 3 implementation9b2c795e05c6 treat large invalid utf-8 files as binary, check event kinds against their fields, and refuse unknown mirror schema versions (v3.0.8) 2026-09-26 18:00 · claude-opus-5-5 · kepr 3 implementation532072a50935 add descriptions from comments per §21.5, with license-header and shebang skips and first-sentence one-liners (v3.0.9) 2026-09-26 18:06 · claude-opus-5-5 · kepr 3 implementation5e4eb28dcc4a add the Atlas to the repo page: folder tree with described rows, per-file history panels and ?at= views at any save (v3.0.10) 2026-09-26 18:12 · claude-opus-5-5 · kepr 3 implementationffa764f54431 add the Atlas browser island: hover panel, filename filter and remembered open folders, with phase 2 recorded in continuity (v3.0.11) 2026-09-26 18:13 · claude-opus-5-5 · kepr 3 implementation08451dd8bbb6 take license headers only in their real shapes, find the README intro as the Atlas finds a first paragraph, and pin real-source headers in tests (v3.0.12) 2026-09-26 18:17 · claude-opus-5-5 · kepr 3 implementationa6176ba16faf give Atlas folder panels the full history facts and make the island ignore malformed remembered folders (v3.0.13) 2026-09-26 18:19 · claude-opus-5-5 · kepr 3 implementationdec9767f3870 add the save page: facts, flag reason, parent past checkpoints, files changed with line stats and highlighted unified diffs from a small Myers diff (v3.0.14) 2026-09-26 18:26 · claude-opus-5-5 · kepr 3 implementationaf1f70ffc57a add deterministic source tarballs byte-identical to kepr 2's tar, cached on disk and dropped by strip events, with the HEAD redirect and its immutable link (v3.0.15) 2026-09-26 18:31 · claude-opus-5-5 · kepr 3 implementationbf8f698c551b add the archives panel with HEAD and recent tarballs and nix profile add lines for flakes, drop stray test mirror files, and record phase 3 in continuity (v3.0.16) 2026-09-26 18:33 · claude-opus-5-5 · kepr 3 implementation56d982f71079 key cached tarballs by the mirror's strip count so a strip never serves stale bytes even without cleanup, and write every file 0644 as kepr 2 does (v3.0.17) 2026-09-26 18:37 · claude-opus-5-5 · kepr 3 implementationc2ced00ce4c7 show a change to a file's final newline as a changed last line with the no-newline marker, and record the phase 3 review fixes in continuity (v3.0.18) 2026-09-26 18:38 · claude-opus-5-5 · kepr 3 implementation06b0512cf8ae record kepr 2's release and compatibility routes from kepr.uk as contract fixtures, with the GET-only script that re-records them (v3.0.19) 2026-09-26 18:45 · claude-opus-5-5 · kepr 3 implementationa16dea674709 read release records into the mirror when head or releases/latest moves, and keep hidden releases, notes overrides and download and install counts in kepr.db (v3.0.20) 2026-09-26 18:47 · claude-opus-5-5 · kepr 3 implementation4622d4048bd6 add the builds panel with versions newest first, notes or their fallback, per-file label, size, sha-256, download count and install hints, and show the newest release in the repo header (v3.0.21) 2026-09-26 18:48 · claude-opus-5-5 · kepr 3 implementation0f7e06f66cce serve the release feeds, checksums and downloads of §22.1 and §22.4 with kepr 2's bytes and error bodies, count downloads before a five-minute presigned redirect, count nix tarball fetches as installs, and pin the koh 2 route on 2.1.16 (v3.0.22) 2026-09-26 18:52 · claude-opus-5-5 · kepr 3 implementation075f6d740acc test every recorded kepr 2 route against kepr 3: byte-exact feeds, history, version.txt, checksums and 404s, and the shape where the spec makes kepr 3 differ, with the frozen koh 2 route on 2.1.16 (v3.0.23) 2026-09-26 18:54 · claude-opus-5-5 · kepr 3 implementationa79b2f329d95 serve the generic install.sh per repo, tested end to end against a stand-in s3, and add robots.txt, the public-repos sitemap and kepr 2's favicon (v3.0.24) 2026-09-26 18:56 · claude-opus-5-5 · kepr 3 implementation1fc904a2b237 record phase 4 in continuity: release decisions, peach android's confirmed contract and the missing koh 2.1.16 release (v3.0.25) 2026-09-26 18:58 · claude-opus-5-5 · kepr 3 implementation3835b4d58a83 take update-info's head from the actual head save, send cors on the api feeds' 404s, compare version components exactly, and refuse a releases/latest that is not a version (v3.0.26) 2026-09-26 19:02 · claude-opus-5-5 · kepr 3 implementation755ef3f89667 add the issues and thread tables to kepr.db with per-repo numbers, hashed follow-up tokens and the data layer the public pages read (v3.0.27) 2026-09-26 19:05 · claude-opus-5-5 · kepr 3 implementation6fcced41a42c serve public issue pages: filing with honeypot, 3-second stamp, hashed-ip rate limit and size cap, one-time follow-up links, and the marked thread (v3.0.28) 2026-09-26 19:10 · claude-opus-5-5 · kepr 3 implementationde6037e2c124 rate-limit issue filing by the socket peer, taking x-forwarded-for's rightmost entry only from a loopback proxy (v3.0.29) 2026-09-26 19:33 · claude-opus-5-5 · kepr 3 implementationb623f609221b add the front page and browse: the drifting save-message ticker, the library's count of distinct objects, the file-type and category cloud, latest offered and shared repo cards with one tick per save, all from public repos and real saves only (v3.0.30) 2026-09-26 19:59 · claude-opus-5-5 · kepr 3 implementation9a87fc577759 add the operator's profile at /@<handle>: the hex backdrop of real save ids with its glow island, the signature image served from data/assets or the handle in sacramento, settings-driven identity, public stats, the language bar, recent activity and repo cards, and a 404 for any other handle (v3.0.31) 2026-09-26 20:00 · claude-opus-5-5 · kepr 3 implementation53b804b9db21 serve /docs with the self-hosting guide and /support from markdown in the repo, rendered once at startup, and record phase 6 in continuity (v3.0.32) 2026-09-26 20:04 · claude-opus-5-5 · kepr 3 implementation1c735cca38e4 count public lines and languages at the newest real save so a checkpoint at head never reaches the cloud, bar, cards or header, follow reduced-motion changes in the hex glow, and test encoded traversal and nested asset paths (v3.0.33) 2026-09-26 20:10 · claude-opus-5-5 · kepr 3 implementation3917c91388df add the admin sign-in at /sign-in with an argon2id check, a per-address and global failure limit and a double-submit token, 30-day revocable sessions stored as hashes, sign-out, and the /admin guard requiring a session plus origin and form token on every post, with the status page (v3.0.34) 2026-09-26 20:17 · claude-opus-5-5 · kepr 3 implementation0750fb5f4f0a add the admin repos section: every repo the sync found with its visibility switch, category, homepage, card order, three install lines, last sync time and error, and sync now, tested to 404 every public surface and drop a private repo from every list and count (v3.0.35) 2026-09-26 20:20 · claude-opus-5-5 · kepr 3 implementation1a15eaa5791b add the admin issues section: every repo's issues with open, closed and hidden filters, the reporter's contact detail, reply, close with an optional fixed-in save, reopen, hide, unhide and set type, tested end to end from a public filing to the operator's answer and close (v3.0.36) 2026-09-26 20:21 · claude-opus-5-5 · kepr 3 implementationf412b53f8e44 add the admin releases section: every version per repo with download counts per platform, displayed notes stored in kepr.db over the record's, and hide or unhide, tested to drop a hidden version from pages, latest and every feed (v3.0.37) 2026-09-26 20:22 · claude-opus-5-5 · kepr 3 implementation0c07b179ceeb add the admin site and profile section: site name, tagline, branding, handle, bio, location, link and building since, and a signature upload checked by magic bytes as png, jpeg or webp only, stored content-named under data/assets with svg refused (v3.0.38) 2026-09-26 20:24 · claude-opus-5-5 · kepr 3 implementation4538c2a89e9a add daily backups of kepr.db by vacuum into plus assets into data/backups with the last 14 kept and sessions left out, the status page's last backup and download backup as a tarball, a restore test onto a fresh instance, the docs' admin and backup sections, and phase 7 in continuity (v3.0.39) 2026-09-26 20:29 · claude-opus-5-5 · kepr 3 implementationdbc8eb3d4b8a cache per-save pages, raw files and tarballs as private for a year so no shared cache keeps a repo after it turns private, and note why a backup cannot interleave with a signature change (v3.0.40) 2026-09-26 20:34 · claude-opus-5-5 · kepr 3 implementationb73f541c166b write backup download entries 0600 through a file mode on the tar writer, keeping source tarballs 0644, and refuse signatures over 60 KB before the body cap (v3.0.41) 2026-09-26 20:35 · claude-opus-5-5 · kepr 3 implementation7ec223c3528a answer Kepr 2's moved URLs with 301s and its retired ones with 410 Gone, refuse to sync bucket repos named like Kepr's own routes, and check the route list both ways (v3.0.42) 2026-09-26 20:45 · claude-opus-5-5 · kepr 3 implementation946c9882a405 add the one-time Kepr 2 import tool, writing put-if-absent and checked by the sync's own release validator, with a local-Postgres test, and record phase 8 in continuity (v3.0.43) 2026-09-26 21:02 · claude-opus-5-5 · kepr 3 implementation71ae032e7c17 make the Kepr 2 import fail loudly before any bucket write on a bad imported row, credit replies to the operator only from Kepr 2's operator marks and refuse third-party ones, and accept a 412 only when the object holds the same bytes (v3.0.44) 2026-09-26 21:12 · claude-opus-5-5 · kepr 3 implementation8722a5c608af gate Kepr 2's redirects behind the visibility check, treat a page past the last as page 1, refuse a non-hostname domain at startup, reject a flag or clear event with a path, and validate static paths before touching the disk (v3.0.45) 2026-09-26 21:23 · claude-opus-5-5 · kepr 3 implementation009e5c4064e1 place timeline dots and card ticks between the earliest and latest save times, and end a /** */ description at its */ when code follows on the line (v3.0.46) 2026-09-26 21:24 · claude-opus-5-5 · kepr 3 implementationfd5e11c6a76c test that a whole-history strip already in the mirror strips late-arriving saves made before it and spares one made after (v3.0.47) 2026-09-26 21:26 · claude-opus-5-5 · kepr 3 implementationbb3469688eaa record each Kepr 2 fixture request into a fresh header file and fail on curl errors other than the expected max-filesize stop, and note the review fixes in continuity (v3.0.48) 2026-09-26 21:27 · claude-opus-5-5 · kepr 3 implementationd784c3018552 record the kepr 3 campaign outcome and june's open decisions in continuity (v3.0.49) 2026-09-26 21:30 · claude-opus-5-5 · kepr 3 implementation0f0b95ee972f document haproxy on the same host as the production reverse proxy in place of caddy (v3.0.50) 2026-09-26 23:31 · claude-opus-5-5 · kepr 3 implementationdbdfebfae1f4 refuse a kepr.toml domain whose port is outside 1-65535, closing the codex re-check of the review fixes (v3.0.51) 2026-09-26 23:35 · claude-opus-5-5 · kepr 3 implementation2b7a429de79a apply the rebalanced budgets and R11's normal layout across Kepr, and close the five fixes: the frozen Koh 2 404 body, executable bits in tarballs, the per-address sign-in lockout, the sandbox on raw files and uploaded assets, and Koh's own strip rule in the mirror (v3.0.52) 2026-09-27 10:42 · deepseek/deepseek-flash · kepr 3 implementationdedcbd4f3830 test the joint release contract with the real koh3: offer --builds publishes, Kepr serves the release on every route byte for byte, and the suite is pinned to the koh3 it was verified with (v3.0.53) 2026-09-27 10:42 · deepseek/deepseek-flash · kepr 3 implementationf4a466e83f88 test that koh3 updates itself from a release Kepr served: check exit codes, an unreachable download refused with the binary untouched, and the installed copy signed and running (v3.0.54) 2026-09-27 14:07 · deepseek/deepseek-flash · kepr 3 implementationcf30e2643e1a record the campaign in AGENTS.md and continuity: the rebalanced budgets, the writing rules, the koh3 version pin and what the joint tests cover (v3.0.55) 2026-09-27 14:10 · deepseek/deepseek-flash · kepr 3 implementation9445b343df7f make the frozen Koh 2 route a permanent 404, keep executable bits in tarballs and confine the sandbox to raw files and uploaded assets, with the pin moved to the koh3 they were verified against (v3.0.56) 2026-09-27 14:17 · deepseek/deepseek-flash · kepr 3 implementation47192351ee32 close the joint update test's review: a tampered download refused with the binary untouched, a watchdog and a timeout on every wait, the temporary folders cleaned up, and the environment's limits named in the file (v3.0.57) 2026-09-27 14:17 · deepseek/deepseek-flash · kepr 3 implementation2886f480bd44 pin the mirror's strip landing with a regression test that fails without it, note why two long HTML rows stay whole, and move the koh3 pin to the binary it was verified with (v3.0.58) 2026-09-27 14:27 · deepseek/deepseek-flash · kepr 3 implementation75c84df65b78 record the corrections and the final counts in continuity (v3.0.59) 2026-09-27 14:30 · deepseek/deepseek-flash · kepr 3 implementationefb3a30ea420 move the koh3 pin to the release build now installed, verified against the whole suite (v3.0.60) 2026-09-27 14:31 · deepseek/deepseek-flash · kepr 3 implementation4928df826985 note why the hidden-checkbox row stays on one line, closing the last R11 finding (v3.0.61) 2026-09-27 14:34 · deepseek/deepseek-flash · kepr 3 implementationb16612d47778 hand out bucket access to a signed-in machine through a one-time code (v3.0.62) 2026-09-27 15:06 · deepseek/deepseek-flash · kepr connect and public steal731c1ce0a9b6 close the connect review findings and follow koh3 3.0.94's renamed view command (v3.0.63) 2026-09-27 15:10 · deepseek/deepseek-flash · kepr connect and public steal4c969e0a75af serve public repos read-only in Koh's remote layout (v3.0.64) 2026-09-27 15:16 · deepseek/deepseek-flash · kepr connect and public steal1b4865e81200 prove public steal end to end: list the saves and objects a clone walks, and prune the redemption limit by value (v3.0.65) 2026-09-27 16:01 · deepseek/deepseek-flash · kepr connect and public stealfe8c5250fc91 upgrade a stolen repo through offer, and pin koh3 3.0.98 (v3.0.66) 2026-09-27 16:12 · deepseek/deepseek-flash · kepr connect and public steal1e6bacd9a98d close the joint test's review: prove the explicit offer, every field, and the clock-order prune (v3.0.67) 2026-09-27 16:17 · deepseek/deepseek-flash · kepr connect and public steal1d0e27dd457a record that guided steal (8e) was discarded unbuilt, not in flight (v3.0.68) 2026-09-28 03:23 · deepseek/deepseek-flash · kepr connect and public stealbb2b6cc5f7e2 record guided steal completion in Koh 3.0.102 (v3.0.69) 2026-09-28 04:26 · gpt-5 · guided stealf03421d19ef3 pin koh3 3.0.108 and prove a stolen repo's offer stops on a clash instead of choosing a side (v3.0.70) 2026-09-28 05:20 · claude-opus-5-5 · fix a2 review findings4bc2782ec862 give every test and fixture hook 30 seconds, preloaded, so a busy machine no longer skips a whole file at Bun's 5-second default (v3.0.71) 2026-09-28 05:26 · claude-opus-5-5 · fix a2 review findings2cea84c3cba0 work out a sign-in's next path once, and restore the note on why login registers first (v3.0.72) 2026-09-28 05:28 · claude-opus-5-5 · fix a2 review findings27749f473202 record only the redemption attempts that were allowed, capping the list at ten per address (v3.0.73) 2026-09-28 05:29 · claude-opus-5-5 · fix a2 review findings81e9c1e06919 keep only the twenty redeemed codes the machines list shows, so kepr.db stops growing with every sign-in (v3.0.74) 2026-09-28 05:30 · claude-opus-5-5 · fix a2 review findings1be3f9f00948 record the closed A2 review, the installed koh3 3.0.108, the open mirror strip question and the discipline lessons in continuity (v3.0.75) 2026-09-28 05:32 · claude-opus-5-5 · fix a2 review findings654b34548308 strip every save in the mirror, whatever its time, so Kepr and Koh agree that a strip bans its path from all of history (v3.0.76) 2026-09-28 05:50 · claude-opus-5-5 · strip removes a path for good46b0e7b67956 pin koh3 3.1.0 and expect a stripped file to stay banned in the joint test (v3.0.77) 2026-09-28 05:59 · claude-opus-5-5 · strip removes a path for goodf54ad035856a write the handoff: the open codex findings, the koh3 pin and the discipline for the next session (v3.0.78) 2026-09-28 11:54 · claude-opus-5-5 · strip removes a path for good4e46c3606ea7 pin koh3 3.1.2, which applies held strips to arriving saves as the mirror does (v3.0.79) 2026-09-28 12:21 · claude-opus-5-5 · strips reach every arriving saveb8f30916f471 break same-second ties in the connected machines list and its prune by insertion order, so twenty-one redemptions in one second keep the latest twenty (v3.0.80) 2026-09-28 12:22 · claude-opus-5-5 · last twenty machines tiesba3f6dc2df15 record the closed review findings and the koh3 3.1.2 pin in continuity (v3.0.80) 2026-09-28 12:22 · claude-opus-5-5 · last twenty machines ties7da960f87946 pin koh3 3.1.3, whose offer takes back what a racing strip reaches (v3.0.81) 2026-09-28 12:30 · claude-opus-5-5 · offer strip race1340381db563 record koh3 3.1.3 and the closed codex findings in continuity (v3.0.81) 2026-09-28 12:31 · claude-opus-5-5 · offer strip race60a7a945470c pin koh3 3.1.4 and prove offer --json names the saves that came in flagged during the upgrade (v3.0.82) 2026-09-28 12:41 · claude-opus-5-5 · finalize the queuecb7f939c60ce format the flagged offer test, which v3.0.82 saved failing biome (v3.0.83) 2026-09-28 12:41 · claude-opus-5-5 · finalize the queue223dda02aa56 pin koh3 3.1.5, which bans a stripped path with wildcard characters as itself (v3.0.84) 2026-09-28 12:46 · claude-opus-5-5 · finalize the queue72900049ddaf rename clone, push and commit out of Kepr's source, tests and import script: a repo is stolen, a copy follows its source, the import ends its transaction with END (v3.0.85) 2026-09-28 12:47 · claude-opus-5-5 · remove git terminology from sourcea9f5efa204e1 record koh3 3.1.5, the terminology sweep and the gate lesson in continuity (v3.0.85) 2026-09-28 12:47 · claude-opus-5-5 · finalize the queue1252116e72ce quarantine unsafe or oversized paths instead of stopping a repo's sync, cap object inflation at 512 MiB, recount stats outside the landing and past 8 MiB files; pin koh3 3.2.2 (v3.0.86) 2026-09-28 15:27 · claude-opus-5-5 · quarantine unsafe paths0336dc246093 test that Koh and Kepr drop the same unsafe paths and keep the same file list for every save; pin koh3 3.2.3 (v3.0.87) 2026-09-28 15:35 · claude-opus-5-5 · quarantine unsafe paths00ab790a7f56 prove koh offer --builds --json names saves that came in flagged during a stolen repo's upgrade, sharing the test platform helper (v3.0.88) 2026-09-28 15:36 · claude-opus-5-5 · quarantine unsafe paths450ce8b458b5 point the agent guide at the spec's home in koh3/docs and record the finished A3 in continuity (v3.0.89) 2026-09-28 15:38 · claude-opus-5-5 · quarantine unsafe pathsa601b8bd7c1d read records as Koh does: unpaired surrogate escapes and bytes outside UTF-8 fail a path without refusing the record, names escape byte for byte like Koh's, and strips with illegal paths are ignored; pin koh3 3.2.4 (v3.0.90) 2026-09-28 17:01 · claude-opus-5-5 · quarantine unsafe paths32b93d188feb pin koh3 3.2.5 and record the closed malformed-name and illegal-strip findings in continuity (v3.0.91) 2026-09-28 17:06 · claude-opus-5-5 · quarantine unsafe paths82660c8bc70b pin koh3 3.2.7, whose status opens with the save it is on, and check the stolen copy lists no src.v change rather than no mention of it (v3.0.92) 2026-09-28 17:23 · claude-opus-5-5 · status wording85e95637c3da pin koh3 3.2.8 (v3.0.93) 2026-09-28 18:10 · claude-opus-5-5 · status wording4bb14f4e233b pin koh3 3.2.12 (v3.0.94) 2026-09-28 18:52 · claude-opus-5-5 · clear feedback0c3107c1f7e1 pin koh3 3.2.13 (v3.0.95) 2026-09-28 19:43 · claude-opus-5-5 · clear feedback8a14ff237458 pin koh3 3.2.14 (v3.0.96) 2026-09-28 20:13 · claude-opus-5-5 · clear feedback7355fa2f379c pin koh3 3.2.15 (v3.0.97) 2026-09-29 02:08 · claude-opus-5-5 · clear feedbackbef1b9ecd957 pin koh3 3.2.22 (v3.0.98) 2026-09-29 15:13 · claude-sonnet-5-5 · pin koh30ee0106284c7 match Kepr 2's repo page: slow glowing ticker, drifting timeline canvas, log in link, koh steal button, inline panels, four-row scrolling history, HEAD save picker, search button, popup file viewer, linked breadcrumbs, plain cards, no repeated counts; pin koh3 3.2.24 (v3.0.99) 2026-09-29 17:55 · claude-opus-5-5 · match kepr 2 repo page8ac8cee09624 bound the Atlas to Kepr 2's 520px scroll area, shorten the timeline to a 64px strip without its legend, and drop versions from the HEAD picker (v3.0.100) 2026-09-29 18:00 · claude-opus-5-5 · match kepr 2 repo page520bd4107571 hide .kohignore from the Atlas, let the Atlas shrink below 520px, and keep issue pages and their forms inside the inline panel (v3.0.101) 2026-09-29 18:06 · claude-opus-5-5 · match kepr 2 repo page84560fbbe45a fix the Atlas at its closed tree's height so opened folders scroll inside it instead of spilling over the page (v3.0.102) 2026-09-29 18:07 · claude-opus-5-5 · match kepr 2 repo pageb420f182b4cc space the timeline's dots by the capped gap between saves so it loops without long empty stretches (v3.0.103) 2026-09-29 18:08 · claude-opus-5-5 · match kepr 2 repo pagea44c7c21e466 count a repo's lines as source lines only: files in a known language, tests, docs and data left out, recounting existing mirrors once (v3.0.104) 2026-09-29 18:11 · claude-opus-5-5 · match kepr 2 repo paged5eaa7c0b5e5 keep the logo's outer triangle gold and flash the inner one red now and then (v3.0.105) 2026-09-29 18:12 · claude-opus-5-5 · match kepr 2 repo page88502325cbf4 bring Kepr 2's repo map to the Atlas panel: each file's exports, project imports, users and tests, a folder's users, found by syntax per language and linked to jump through the tree (v3.0.106) 2026-09-29 18:18 · claude-opus-5-5 · match kepr 2 repo page386cd633d244 name the release in the stylesheet and script URLs so a new release is never shown with an hour-old cached copy (v3.0.107) 2026-09-29 18:19 · claude-opus-5-5 · match kepr 2 repo page4030bdcacda1 edit a repo's description and details on its page when signed in: Markdown toolbar, live preview, picture, GIF and video uploads sized and placed from the caret, served privately with Range; log in returns to the page (v3.0.108) 2026-09-29 18:30 · claude-opus-5-5 · repo text editing1d43f75aee52 draw the HEAD picker above the sections after the Atlas, and label its box search (v3.0.109) 2026-09-29 19:31 · claude-opus-5-5 · match kepr 2 repo page10a0fccd0ed8 make the support page the operator's own Markdown, edited and switched off in the console, and give the report form a cancel link (v3.0.110) 2026-09-29 19:33 · claude-opus-5-5 · editable support pagef12f0453ceae cap the inline archives and builds at about five entries in a scrolling box (v3.0.111) 2026-09-29 19:34 · claude-opus-5-5 · match kepr 2 repo pagea9143c7181f1 draw timeline dots at Kepr 2's radius of 5 (v3.0.112) 2026-09-29 19:36 · claude-opus-5-5 · match kepr 2 repo page5d7a600d9f51 keep Kepr's uploads in its own .kepr/ folder of the bucket, written only there with the write key and served by presigned link or with Range (v3.0.113) 2026-09-29 19:39 · claude-opus-5-5 · kepr folder in buckete2a194a044a9 add an expand all and collapse all button to the Atlas bar (v3.0.114) 2026-09-29 19:42 · claude-opus-5-5 · match kepr 2 repo page97a0a7672807 pin koh3 3.2.25 (v3.0.115) 2026-09-29 19:45 · claude-opus-5-5 · pin koh37120956a7fa3 give the docs page a section sidebar and rewrite it into eight short sections (v3.0.116) 2026-09-29 19:57 · claude-opus-5-5 · docs page sidebar8c1ff73fd409 show protected log out in the signed-in navbar (v3.0.117) 2026-09-29 20:26 · gpt-6-sol · navbar login state52bd51d09124 show admin beside log out for signed-in operators (v3.0.118) 2026-09-29 20:27 · gpt-6-sol · signed in admin link9af784d30135 give the operator a focused workspace with separate profile editing (v3.0.119) 2026-09-29 20:38 · gpt-6-sol · operator workspace73424a9e6ac2 restore Kepr 2 hierarchy and actions in repo islands (v3.0.120) 2026-09-29 20:54 · gpt-6-sol · restore repo islands9ca245205729 raise the approved CSS allowance to 3000 lines (v3.0.121) 2026-09-29 20:57 · gpt-6-sol · allow readable island styles61dc281fbb19 keep island template markup readable (v3.0.122) 2026-09-29 20:58 · gpt-6-sol · restore repo islands51905dc98553 align the issue form action row (v3.0.123) 2026-09-29 21:21 · gpt-6-sol · compact profile and form layoutdc1ad7f95d01 show six scrollable profile activity rows (v3.0.124) 2026-09-29 21:23 · gpt-6-sol · compact profile and form layout68cf65f02c26 edit descriptions through direct click and keyboard activation (v3.0.125) 2026-09-29 21:25 · gpt-6-sol · description click editing419974952a84 remove unnecessary repository search (v3.0.126) 2026-09-29 21:26 · gpt-6-sol · direct repo selection0cfcf6b2b220 remove signature image controls from profile settings (v3.0.127) 2026-09-29 21:28 · gpt-6-sol · simplify profile settings88d31110724c allocate approved admin and server headroom (v3.0.128) 2026-09-29 21:29 · gpt-6-sol · operator control headroom29a59bb8b319 give backups their own operator sidebar section (v3.0.129) 2026-09-29 21:33 · gpt-6-sol · dedicated backup workspace55425ebd763c wip: record operator rebuild handoff; 8 sandbox test failures (v3.0.130) 2026-09-29 22:00 · gpt-6-sol · operator rebuild handoff63e55f152976 edit, test and live-apply S3 bucket settings from the admin console (v3.0.131) 2026-09-29 22:17 · claude-opus-5-5 · editable bucket settings3559470a0d0e allocate the last 200 reserve lines to the server area (v3.0.132) 2026-09-29 22:21 · claude-opus-5-5 · server budget headroom364bcfc8c156 turn the repo section into a selected-repo workspace with shown languages (v3.0.133) 2026-09-29 22:25 · claude-opus-5-5 · repo workspace987482f17e06 add issue triage tabs, filters, follow-up hiding and a per-repo pause on new issues (v3.0.134) 2026-09-29 22:31 · claude-opus-5-5 · issue triageeb098609196d add in-app operator notifications with unread count and per-kind switches (v3.0.135) 2026-09-29 22:34 · claude-opus-5-5 · operator notifications2d3ee7d12177 raise the TypeScript ceiling to 10,500 for email and backups (v3.0.136) 2026-09-29 22:36 · claude-opus-5-5 · ceiling for email and backups301147eeaa38 email notifications over SMTP with a test send and a retrying delivery queue (v3.0.137) 2026-09-29 22:41 · claude-opus-5-5 · email delivery58d7fe07cda0 list and download every backup, back up now, and show the last failure and restore steps (v3.0.138) 2026-09-29 22:45 · claude-opus-5-5 · backup workspace3c4ab82be15c accept plain-http admin forms when the domain is localhost, so local saves stop being refused (v3.0.139) 2026-09-30 13:37 · claude-opus-5-5 · admin repo settings4ffd21d3611b remove install lines and card order; repos sort by name and old kepr.db columns are dropped (v3.0.140) 2026-09-30 13:43 · claude-opus-5-5 · admin repo settings71860b49096f let a folder instance switch to S3 from the bucket section (v3.0.141) 2026-09-30 13:44 · claude-opus-5-5 · admin repo settings086289d5af85 edit a repo's description and details from its admin page (v3.0.142) 2026-09-30 13:45 · claude-opus-5-5 · admin repo settings528bcf043cac edit each build's notes and visibility on its repo's admin page, replacing the releases section (v3.0.143) 2026-09-30 13:47 · claude-opus-5-5 · admin repo settings9a44722de6e7 delete a build from the bucket on its repo's admin page, moving releases/latest to the newest left (v3.0.144) 2026-09-30 13:50 · claude-opus-5-5 · admin repo settings02702253e7ae keep built tarballs in the bucket under .kepr/tarballs instead of the data directory (v3.0.145) 2026-09-30 13:53 · claude-opus-5-5 · admin repo settingsb967d82d724e delete a repo's kept tarballs from the bucket on its admin page (v3.0.146) 2026-09-30 13:54 · claude-opus-5-5 · admin repo settings3c2984c576fc fix the one-settings-form test that v3.0.146 saved red after adding the tarball form (v3.0.147) 2026-09-30 13:55 · claude-opus-5-5 · admin repo settings1305a0bb9d6d hide files and folders per repo from every page, the stats and tarballs, handing the list to Koh under .kepr/hidden (v3.0.148) 2026-09-30 13:58 · claude-opus-5-5 · admin repo settings756506893ff9 record that Kepr may delete builds in AGENTS.md, and the session's state in continuity (v3.0.149) 2026-09-30 13:59 · claude-opus-5-5 · admin repo settingsdf02ac46afce note the connect-test timeout flake and gating on bun test's exit code (v3.0.150) 2026-09-30 14:01 · claude-opus-5-5 · admin repo settings2b4b50250d6d key kept tarballs by strips, hidden paths and mirror epoch, recheck after every await, and rebuild mirrors in place so held handles stay usable (v3.0.151) 2026-09-30 15:42 · claude-opus-5-5 · codex review fixesba443d076bce delete builds one at a time, moving latest first and the record last, so a failed delete retries cleanly (v3.0.152) 2026-09-30 15:44 · claude-opus-5-5 · codex review fixes2d05e7661d88 record the codex review fixes and June's operator-console asks in continuity (v3.0.153) 2026-09-30 15:57 · claude-opus-5-5 · codex review fixesde3f4637e3ef raise the TypeScript ceiling to 12,600 with admin 2,800, server 2,000, issues 1,200 and CSS 3,400 (v3.0.154) 2026-09-30 16:06 · claude-opus-5-5 · operator console9288dbfe8a4f copy each backup to an optional backup bucket set in the console, keeping the newest 14 there (v3.0.155) 2026-09-30 16:09 · claude-opus-5-5 · operator consolea602ee4ac891 change the admin password, sign out other sessions and set the domain from a new Account section, applied without a restart (v3.0.156) 2026-09-30 16:11 · claude-opus-5-5 · operator console3be930495fbc switch the bucket source between S3 and a folder remote either way from the console (v3.0.157) 2026-09-30 16:13 · claude-opus-5-5 · operator console53796355d42e set Kepr up in the browser on first run with a one-time code from the terminal, then hand over without a restart (v3.0.158) 2026-09-30 16:17 · claude-opus-5-5 · operator console0fb42c17ed78 record the operator console's first part and what comes next in continuity (v3.0.159) 2026-09-30 16:18 · claude-opus-5-5 · operator console1a625426812f delete one file of a build, rewriting its release record first (v3.0.160) 2026-09-30 23:16 · claude-opus-5-5 · operator console850a5062b8fe count downloads per repo and day, shown at /admin/downloads with totals and top files (v3.0.161) 2026-09-30 23:18 · claude-opus-5-5 · operator console0c5812ee878a show bucket storage by repo at /admin/storage, with per-tarball delete and cleanup of Kepr's orphaned files (v3.0.162) 2026-09-30 23:20 · claude-opus-5-5 · operator console1440b2ee584c block a reporter's address from filing and following up, listed and lifted in the console (v3.0.163) 2026-09-30 23:22 · claude-opus-5-5 · operator console5487c6f1524a close, reopen, hide or unhide ticked issues together from the console list (v3.0.164) 2026-09-30 23:24 · claude-opus-5-5 · operator consoleeb54516e9dc9 split the repo workspace into overview, settings, builds and archives tabs (v3.0.165) 2026-09-30 23:27 · claude-opus-5-5 · operator consolef47afb6afc01 draw the download day bars in the theme's colours and centre console row buttons (v3.0.166) 2026-09-30 23:30 · claude-opus-5-5 · operator consolea4e1f5407345 record the finished operator console in continuity (v3.0.167) 2026-09-30 23:31 · claude-opus-5-5 · operator console318ff45f727a fold the navbar links behind a menu button on phones, wrapping them when the script is absent (v3.0.168) 2026-10-01 13:50 · claude-opus-5-5 · mobile nav menuc45748e284b7 let the file viewer and the description editor take a phone's full width, their phone rules now after the rules they override (v3.0.169) 2026-10-01 13:51 · claude-opus-5-5 · mobile nav menu798f81d1cc3c record the phone menu, the viewer's CSS order fix and the stale-asset trap in continuity (v3.0.170) 2026-10-01 13:52 · claude-opus-5-5 · mobile nav menu819b6f716f84 record Kepr 3 running on Tylee in place of Kepr 2 in continuity (v3.0.171) 2026-10-01 14:07 · claude-opus-5-5 · tylee kepr 3 cutoverf59a3792d797 send the setup page with a same-origin referrer policy so browsers post it with their real origin (v3.0.172) 2026-10-01 14:13 · claude-opus-5-5 · tylee kepr 3 cutover0f18e9e415d7 record the first five repos migrated and offered to the live bucket in continuity (v3.0.173) 2026-10-01 16:05 · claude-opus-5-5 · tylee kepr 3 cutover611700826bbf pin the tests to koh3 3.2.26, which lowercases repo names at first offer (v3.0.174) 2026-10-01 18:07 · claude-opus-5-5 · tylee kepr 3 cutover72c73018a692 land a sync's new history in 32 MB batches oldest first, so a big first sync fits in memory and resumes if cut short (v3.0.175) 2026-10-01 18:13 · claude-opus-5-5 · tylee kepr 3 cutover0b7b8cbd36f5 keep only save IDs while walking a sync and cap a batch at 100 saves, since each record lists its whole tree (v3.0.176) 2026-10-01 18:17 · claude-opus-5-5 · tylee kepr 3 cutoverefd0734feb70 count the front page's distinct objects from the objects table, not a DISTINCT over every save's whole tree (v3.0.177) 2026-10-01 18:20 · claude-opus-5-5 · tylee kepr 3 cutovera7772f7d8854 hide names ignored in every repo, set in the site section, at any depth from pages, stats and tarballs (v3.0.178) 2026-10-01 18:28 · claude-opus-5-5 · tylee kepr 3 cutover82938843e282 store a save's objects ahead of it when one save alone passes a batch, so a first import's huge save fits in memory (v3.0.179) 2026-10-01 18:31 · claude-opus-5-5 · tylee kepr 3 cutover9504bcb405d8 record the OOM fixes, lowercase names, global ignore and the pending Haven cleanup in continuity (v3.0.180) 2026-10-01 18:32 · claude-opus-5-5 · tylee kepr 3 cutover12218adb0fdf read the bucket through presigned fetches, since Bun's S3File reads keep a copy of every body (v3.0.181) 2026-10-01 19:07 · claude-opus-5-5 · tylee kepr 3 cutover43081c75fd34 accept the six-character save IDs Koh 2's early saves keep through migration, an exact ID winning over a longer one it begins (v3.0.182) 2026-10-01 19:39 · claude-opus-5-5 · tylee kepr 3 cutover
220 files
HEAD
43081c75fd34accept the six-character save IDs Koh 2's early saves keep through migration, an exact ID winning over a longer one it begins (v3.0.182)· 13 minutes ago12218adb0fdfread the bucket through presigned fetches, since Bun's S3File reads keep a copy of every body (v3.0.181)· 46 minutes ago9504bcb405d8record the OOM fixes, lowercase names, global ignore and the pending Haven cleanup in continuity (v3.0.180)· 1 hour ago82938843e282store a save's objects ahead of it when one save alone passes a batch, so a first import's huge save fits in memory (v3.0.179)· 1 hour agoa7772f7d8854hide names ignored in every repo, set in the site section, at any depth from pages, stats and tarballs (v3.0.178)· 1 hour agoefd0734feb70count the front page's distinct objects from the objects table, not a DISTINCT over every save's whole tree (v3.0.177)· 1 hour ago0b7b8cbd36f5keep only save IDs while walking a sync and cap a batch at 100 saves, since each record lists its whole tree (v3.0.176)· 1 hour ago72c73018a692land a sync's new history in 32 MB batches oldest first, so a big first sync fits in memory and resumes if cut short (v3.0.175)· 1 hour ago611700826bbfpin the tests to koh3 3.2.26, which lowercases repo names at first offer (v3.0.174)· 1 hour ago0f18e9e415d7record the first five repos migrated and offered to the live bucket in continuity (v3.0.173)· 3 hours agof59a3792d797send the setup page with a same-origin referrer policy so browsers post it with their real origin (v3.0.172)· 5 hours ago819b6f716f84record Kepr 3 running on Tylee in place of Kepr 2 in continuity (v3.0.171)· 5 hours ago798f81d1cc3crecord the phone menu, the viewer's CSS order fix and the stale-asset trap in continuity (v3.0.170)· 6 hours agoc45748e284b7let the file viewer and the description editor take a phone's full width, their phone rules now after the rules they override (v3.0.169)· 6 hours ago318ff45f727afold the navbar links behind a menu button on phones, wrapping them when the script is absent (v3.0.168)· 6 hours agoa4e1f5407345record the finished operator console in continuity (v3.0.167)· 20 hours agof47afb6afc01draw the download day bars in the theme's colours and centre console row buttons (v3.0.166)· 20 hours agoeb54516e9dc9split the repo workspace into overview, settings, builds and archives tabs (v3.0.165)· 20 hours ago5487c6f1524aclose, reopen, hide or unhide ticked issues together from the console list (v3.0.164)· 20 hours ago1440b2ee584cblock a reporter's address from filing and following up, listed and lifted in the console (v3.0.163)· 20 hours ago0c5812ee878ashow bucket storage by repo at /admin/storage, with per-tarball delete and cleanup of Kepr's orphaned files (v3.0.162)· 20 hours ago850a5062b8fecount downloads per repo and day, shown at /admin/downloads with totals and top files (v3.0.161)· 20 hours ago1a625426812fdelete one file of a build, rewriting its release record first (v3.0.160)· 20 hours ago0fb42c17ed78record the operator console's first part and what comes next in continuity (v3.0.159)· 1 day ago53796355d42eset Kepr up in the browser on first run with a one-time code from the terminal, then hand over without a restart (v3.0.158)· 1 day ago3be930495fbcswitch the bucket source between S3 and a folder remote either way from the console (v3.0.157)· 1 day agoa602ee4ac891change the admin password, sign out other sessions and set the domain from a new Account section, applied without a restart (v3.0.156)· 1 day ago9288dbfe8a4fcopy each backup to an optional backup bucket set in the console, keeping the newest 14 there (v3.0.155)· 1 day agode3f4637e3efraise the TypeScript ceiling to 12,600 with admin 2,800, server 2,000, issues 1,200 and CSS 3,400 (v3.0.154)· 1 day ago2d05e7661d88record the codex review fixes and June's operator-console asks in continuity (v3.0.153)· 1 day agoba443d076bcedelete builds one at a time, moving latest first and the record last, so a failed delete retries cleanly (v3.0.152)· 1 day ago2b4b50250d6dkey kept tarballs by strips, hidden paths and mirror epoch, recheck after every await, and rebuild mirrors in place so held handles stay usable (v3.0.151)· 1 day agodf02ac46afcenote the connect-test timeout flake and gating on bun test's exit code (v3.0.150)· 1 day ago756506893ff9record that Kepr may delete builds in AGENTS.md, and the session's state in continuity (v3.0.149)· 1 day ago1305a0bb9d6dhide files and folders per repo from every page, the stats and tarballs, handing the list to Koh under .kepr/hidden (v3.0.148)· 1 day ago3c2984c576fcfix the one-settings-form test that v3.0.146 saved red after adding the tarball form (v3.0.147)· 1 day agob967d82d724edelete a repo's kept tarballs from the bucket on its admin page (v3.0.146)· 1 day ago02702253e7aekeep built tarballs in the bucket under .kepr/tarballs instead of the data directory (v3.0.145)· 1 day ago9a44722de6e7delete a build from the bucket on its repo's admin page, moving releases/latest to the newest left (v3.0.144)· 1 day ago528bcf043cacedit each build's notes and visibility on its repo's admin page, replacing the releases section (v3.0.143)· 1 day ago086289d5af85edit a repo's description and details from its admin page (v3.0.142)· 1 day ago71860b49096flet a folder instance switch to S3 from the bucket section (v3.0.141)· 1 day ago4ffd21d3611bremove install lines and card order; repos sort by name and old kepr.db columns are dropped (v3.0.140)· 1 day ago3c4ab82be15caccept plain-http admin forms when the domain is localhost, so local saves stop being refused (v3.0.139)· 1 day ago58d7fe07cda0list and download every backup, back up now, and show the last failure and restore steps (v3.0.138)· 1 day ago301147eeaa38email notifications over SMTP with a test send and a retrying delivery queue (v3.0.137)· 1 day ago2d3ee7d12177raise the TypeScript ceiling to 10,500 for email and backups (v3.0.136)· 1 day agoeb098609196dadd in-app operator notifications with unread count and per-kind switches (v3.0.135)· 1 day ago987482f17e06add issue triage tabs, filters, follow-up hiding and a per-repo pause on new issues (v3.0.134)· 1 day ago364bcfc8c156turn the repo section into a selected-repo workspace with shown languages (v3.0.133)· 1 day ago3559470a0d0eallocate the last 200 reserve lines to the server area (v3.0.132)· 1 day ago63e55f152976edit, test and live-apply S3 bucket settings from the admin console (v3.0.131)· 1 day ago55425ebd763cwip: record operator rebuild handoff; 8 sandbox test failures (v3.0.130)· 1 day ago29a59bb8b319give backups their own operator sidebar section (v3.0.129)· 1 day ago88d31110724callocate approved admin and server headroom (v3.0.128)· 1 day ago0cfcf6b2b220remove signature image controls from profile settings (v3.0.127)· 1 day ago419974952a84remove unnecessary repository search (v3.0.126)· 1 day ago68cf65f02c26edit descriptions through direct click and keyboard activation (v3.0.125)· 1 day agodc1ad7f95d01show six scrollable profile activity rows (v3.0.124)· 1 day ago51905dc98553align the issue form action row (v3.0.123)· 1 day ago61dc281fbb19keep island template markup readable (v3.0.122)· 1 day ago9ca245205729raise the approved CSS allowance to 3000 lines (v3.0.121)· 1 day ago73424a9e6ac2restore Kepr 2 hierarchy and actions in repo islands (v3.0.120)· 1 day ago9af784d30135give the operator a focused workspace with separate profile editing (v3.0.119)· 1 day ago52bd51d09124show admin beside log out for signed-in operators (v3.0.118)· 1 day ago8c1ff73fd409show protected log out in the signed-in navbar (v3.0.117)· 1 day ago7120956a7fa3give the docs page a section sidebar and rewrite it into eight short sections (v3.0.116)· 1 day ago97a0a7672807pin koh3 3.2.25 (v3.0.115)· 2 days agoe2a194a044a9add an expand all and collapse all button to the Atlas bar (v3.0.114)· 2 days ago5d7a600d9f51keep Kepr's uploads in its own .kepr/ folder of the bucket, written only there with the write key and served by presigned link or with Range (v3.0.113)· 2 days agoa9143c7181f1draw timeline dots at Kepr 2's radius of 5 (v3.0.112)· 2 days agof12f0453ceaecap the inline archives and builds at about five entries in a scrolling box (v3.0.111)· 2 days ago10a0fccd0ed8make the support page the operator's own Markdown, edited and switched off in the console, and give the report form a cancel link (v3.0.110)· 2 days ago1d43f75aee52draw the HEAD picker above the sections after the Atlas, and label its box search (v3.0.109)· 2 days ago4030bdcacda1edit a repo's description and details on its page when signed in: Markdown toolbar, live preview, picture, GIF and video uploads sized and placed from the caret, served privately with Range; log in returns to the page (v3.0.108)· 2 days ago386cd633d244name the release in the stylesheet and script URLs so a new release is never shown with an hour-old cached copy (v3.0.107)· 2 days ago88502325cbf4bring Kepr 2's repo map to the Atlas panel: each file's exports, project imports, users and tests, a folder's users, found by syntax per language and linked to jump through the tree (v3.0.106)· 2 days agod5eaa7c0b5e5keep the logo's outer triangle gold and flash the inner one red now and then (v3.0.105)· 2 days agoa44c7c21e466count a repo's lines as source lines only: files in a known language, tests, docs and data left out, recounting existing mirrors once (v3.0.104)· 2 days agob420f182b4ccspace the timeline's dots by the capped gap between saves so it loops without long empty stretches (v3.0.103)· 2 days ago84560fbbe45afix the Atlas at its closed tree's height so opened folders scroll inside it instead of spilling over the page (v3.0.102)· 2 days ago520bd4107571hide .kohignore from the Atlas, let the Atlas shrink below 520px, and keep issue pages and their forms inside the inline panel (v3.0.101)· 2 days ago8ac8cee09624bound the Atlas to Kepr 2's 520px scroll area, shorten the timeline to a 64px strip without its legend, and drop versions from the HEAD picker (v3.0.100)· 2 days ago0ee0106284c7match Kepr 2's repo page: slow glowing ticker, drifting timeline canvas, log in link, koh steal button, inline panels, four-row scrolling history, HEAD save picker, search button, popup file viewer, linked breadcrumbs, plain cards, no repeated counts; pin koh3 3.2.24 (v3.0.99)· 2 days agobef1b9ecd957pin koh3 3.2.22 (v3.0.98)· 2 days ago7355fa2f379cpin koh3 3.2.15 (v3.0.97)· 2 days ago8a14ff237458pin koh3 3.2.14 (v3.0.96)· 2 days ago0c3107c1f7e1pin koh3 3.2.13 (v3.0.95)· 3 days ago4bb14f4e233bpin koh3 3.2.12 (v3.0.94)· 3 days ago85e95637c3dapin koh3 3.2.8 (v3.0.93)· 3 days ago82660c8bc70bpin koh3 3.2.7, whose status opens with the save it is on, and check the stolen copy lists no src.v change rather than no mention of it (v3.0.92)· 3 days ago32b93d188febpin koh3 3.2.5 and record the closed malformed-name and illegal-strip findings in continuity (v3.0.91)· 3 days agoa601b8bd7c1dread records as Koh does: unpaired surrogate escapes and bytes outside UTF-8 fail a path without refusing the record, names escape byte for byte like Koh's, and strips with illegal paths are ignored; pin koh3 3.2.4 (v3.0.90)· 3 days ago450ce8b458b5point the agent guide at the spec's home in koh3/docs and record the finished A3 in continuity (v3.0.89)· 3 days ago00ab790a7f56prove koh offer --builds --json names saves that came in flagged during a stolen repo's upgrade, sharing the test platform helper (v3.0.88)· 3 days ago0336dc246093test that Koh and Kepr drop the same unsafe paths and keep the same file list for every save; pin koh3 3.2.3 (v3.0.87)· 3 days ago1252116e72cequarantine unsafe or oversized paths instead of stopping a repo's sync, cap object inflation at 512 MiB, recount stats outside the landing and past 8 MiB files; pin koh3 3.2.2 (v3.0.86)· 3 days agoa9f5efa204e1record koh3 3.1.5, the terminology sweep and the gate lesson in continuity (v3.0.85)· 3 days ago72900049ddafrename clone, push and commit out of Kepr's source, tests and import script: a repo is stolen, a copy follows its source, the import ends its transaction with END (v3.0.85)· 3 days ago223dda02aa56pin koh3 3.1.5, which bans a stripped path with wildcard characters as itself (v3.0.84)· 3 days agocb7f939c60ceformat the flagged offer test, which v3.0.82 saved failing biome (v3.0.83)· 3 days ago60a7a945470cpin koh3 3.1.4 and prove offer --json names the saves that came in flagged during the upgrade (v3.0.82)· 3 days ago1340381db563record koh3 3.1.3 and the closed codex findings in continuity (v3.0.81)· 3 days ago7da960f87946pin koh3 3.1.3, whose offer takes back what a racing strip reaches (v3.0.81)· 3 days agoba3f6dc2df15record the closed review findings and the koh3 3.1.2 pin in continuity (v3.0.80)· 3 days agob8f30916f471break same-second ties in the connected machines list and its prune by insertion order, so twenty-one redemptions in one second keep the latest twenty (v3.0.80)· 3 days ago4e46c3606ea7pin koh3 3.1.2, which applies held strips to arriving saves as the mirror does (v3.0.79)· 3 days agof54ad035856awrite the handoff: the open codex findings, the koh3 pin and the discipline for the next session (v3.0.78)· 3 days ago46b0e7b67956pin koh3 3.1.0 and expect a stripped file to stay banned in the joint test (v3.0.77)· 3 days ago654b34548308strip every save in the mirror, whatever its time, so Kepr and Koh agree that a strip bans its path from all of history (v3.0.76)· 3 days ago1be3f9f00948record the closed A2 review, the installed koh3 3.0.108, the open mirror strip question and the discipline lessons in continuity (v3.0.75)· 3 days ago81e9c1e06919keep only the twenty redeemed codes the machines list shows, so kepr.db stops growing with every sign-in (v3.0.74)· 3 days ago27749f473202record only the redemption attempts that were allowed, capping the list at ten per address (v3.0.73)· 3 days ago2cea84c3cba0work out a sign-in's next path once, and restore the note on why login registers first (v3.0.72)· 3 days ago4bc2782ec862give every test and fixture hook 30 seconds, preloaded, so a busy machine no longer skips a whole file at Bun's 5-second default (v3.0.71)· 3 days agof03421d19ef3pin koh3 3.0.108 and prove a stolen repo's offer stops on a clash instead of choosing a side (v3.0.70)· 3 days agobb2b6cc5f7e2record guided steal completion in Koh 3.0.102 (v3.0.69)· 3 days ago1d0e27dd457arecord that guided steal (8e) was discarded unbuilt, not in flight (v3.0.68)· 3 days ago1e6bacd9a98dclose the joint test's review: prove the explicit offer, every field, and the clock-order prune (v3.0.67)· 4 days agofe8c5250fc91upgrade a stolen repo through offer, and pin koh3 3.0.98 (v3.0.66)· 4 days ago1b4865e81200prove public steal end to end: list the saves and objects a clone walks, and prune the redemption limit by value (v3.0.65)· 4 days ago4c969e0a75afserve public repos read-only in Koh's remote layout (v3.0.64)· 4 days ago731c1ce0a9b6close the connect review findings and follow koh3 3.0.94's renamed view command (v3.0.63)· 4 days agob16612d47778hand out bucket access to a signed-in machine through a one-time code (v3.0.62)· 4 days ago4928df826985note why the hidden-checkbox row stays on one line, closing the last R11 finding (v3.0.61)· 4 days agoefb3a30ea420move the koh3 pin to the release build now installed, verified against the whole suite (v3.0.60)· 4 days ago75c84df65b78record the corrections and the final counts in continuity (v3.0.59)· 4 days ago2886f480bd44pin the mirror's strip landing with a regression test that fails without it, note why two long HTML rows stay whole, and move the koh3 pin to the binary it was verified with (v3.0.58)· 4 days ago47192351ee32close the joint update test's review: a tampered download refused with the binary untouched, a watchdog and a timeout on every wait, the temporary folders cleaned up, and the environment's limits named in the file (v3.0.57)· 4 days ago9445b343df7fmake the frozen Koh 2 route a permanent 404, keep executable bits in tarballs and confine the sandbox to raw files and uploaded assets, with the pin moved to the koh3 they were verified against (v3.0.56)· 4 days agocf30e2643e1arecord the campaign in AGENTS.md and continuity: the rebalanced budgets, the writing rules, the koh3 version pin and what the joint tests cover (v3.0.55)· 4 days agof4a466e83f88test that koh3 updates itself from a release Kepr served: check exit codes, an unreachable download refused with the binary untouched, and the installed copy signed and running (v3.0.54)· 4 days agodedcbd4f3830test the joint release contract with the real koh3: offer --builds publishes, Kepr serves the release on every route byte for byte, and the suite is pinned to the koh3 it was verified with (v3.0.53)· 4 days ago2b7a429de79aapply the rebalanced budgets and R11's normal layout across Kepr, and close the five fixes: the frozen Koh 2 404 body, executable bits in tarballs, the per-address sign-in lockout, the sandbox on raw files and uploaded assets, and Koh's own strip rule in the mirror (v3.0.52)· 4 days agodbdfebfae1f4refuse a kepr.toml domain whose port is outside 1-65535, closing the codex re-check of the review fixes (v3.0.51)· 4 days ago0f0b95ee972fdocument haproxy on the same host as the production reverse proxy in place of caddy (v3.0.50)· 4 days agod784c3018552record the kepr 3 campaign outcome and june's open decisions in continuity (v3.0.49)· 4 days agobb3469688eaarecord each Kepr 2 fixture request into a fresh header file and fail on curl errors other than the expected max-filesize stop, and note the review fixes in continuity (v3.0.48)· 4 days agofd5e11c6a76ctest that a whole-history strip already in the mirror strips late-arriving saves made before it and spares one made after (v3.0.47)· 4 days ago009e5c4064e1place timeline dots and card ticks between the earliest and latest save times, and end a /** */ description at its */ when code follows on the line (v3.0.46)· 4 days ago8722a5c608afgate Kepr 2's redirects behind the visibility check, treat a page past the last as page 1, refuse a non-hostname domain at startup, reject a flag or clear event with a path, and validate static paths before touching the disk (v3.0.45)· 4 days ago71ae032e7c17make the Kepr 2 import fail loudly before any bucket write on a bad imported row, credit replies to the operator only from Kepr 2's operator marks and refuse third-party ones, and accept a 412 only when the object holds the same bytes (v3.0.44)· 4 days ago946c9882a405add the one-time Kepr 2 import tool, writing put-if-absent and checked by the sync's own release validator, with a local-Postgres test, and record phase 8 in continuity (v3.0.43)· 4 days ago7ec223c3528aanswer Kepr 2's moved URLs with 301s and its retired ones with 410 Gone, refuse to sync bucket repos named like Kepr's own routes, and check the route list both ways (v3.0.42)· 4 days agob73f541c166bwrite backup download entries 0600 through a file mode on the tar writer, keeping source tarballs 0644, and refuse signatures over 60 KB before the body cap (v3.0.41)· 4 days agodbc8eb3d4b8acache per-save pages, raw files and tarballs as private for a year so no shared cache keeps a repo after it turns private, and note why a backup cannot interleave with a signature change (v3.0.40)· 4 days ago4538c2a89e9aadd daily backups of kepr.db by vacuum into plus assets into data/backups with the last 14 kept and sessions left out, the status page's last backup and download backup as a tarball, a restore test onto a fresh instance, the docs' admin and backup sections, and phase 7 in continuity (v3.0.39)· 4 days ago0c07b179ceebadd the admin site and profile section: site name, tagline, branding, handle, bio, location, link and building since, and a signature upload checked by magic bytes as png, jpeg or webp only, stored content-named under data/assets with svg refused (v3.0.38)· 4 days agof412b53f8e44add the admin releases section: every version per repo with download counts per platform, displayed notes stored in kepr.db over the record's, and hide or unhide, tested to drop a hidden version from pages, latest and every feed (v3.0.37)· 4 days ago1a15eaa5791badd the admin issues section: every repo's issues with open, closed and hidden filters, the reporter's contact detail, reply, close with an optional fixed-in save, reopen, hide, unhide and set type, tested end to end from a public filing to the operator's answer and close (v3.0.36)· 4 days ago0750fb5f4f0aadd the admin repos section: every repo the sync found with its visibility switch, category, homepage, card order, three install lines, last sync time and error, and sync now, tested to 404 every public surface and drop a private repo from every list and count (v3.0.35)· 4 days ago3917c91388dfadd the admin sign-in at /sign-in with an argon2id check, a per-address and global failure limit and a double-submit token, 30-day revocable sessions stored as hashes, sign-out, and the /admin guard requiring a session plus origin and form token on every post, with the status page (v3.0.34)· 4 days ago1c735cca38e4count public lines and languages at the newest real save so a checkpoint at head never reaches the cloud, bar, cards or header, follow reduced-motion changes in the hex glow, and test encoded traversal and nested asset paths (v3.0.33)· 4 days ago53b804b9db21serve /docs with the self-hosting guide and /support from markdown in the repo, rendered once at startup, and record phase 6 in continuity (v3.0.32)· 4 days ago9a87fc577759add the operator's profile at /@<handle>: the hex backdrop of real save ids with its glow island, the signature image served from data/assets or the handle in sacramento, settings-driven identity, public stats, the language bar, recent activity and repo cards, and a 404 for any other handle (v3.0.31)· 4 days agob623f609221badd the front page and browse: the drifting save-message ticker, the library's count of distinct objects, the file-type and category cloud, latest offered and shared repo cards with one tick per save, all from public repos and real saves only (v3.0.30)· 4 days agode6037e2c124rate-limit issue filing by the socket peer, taking x-forwarded-for's rightmost entry only from a loopback proxy (v3.0.29)· 5 days ago6fcced41a42cserve public issue pages: filing with honeypot, 3-second stamp, hashed-ip rate limit and size cap, one-time follow-up links, and the marked thread (v3.0.28)· 5 days ago755ef3f89667add the issues and thread tables to kepr.db with per-repo numbers, hashed follow-up tokens and the data layer the public pages read (v3.0.27)· 5 days ago3835b4d58a83take update-info's head from the actual head save, send cors on the api feeds' 404s, compare version components exactly, and refuse a releases/latest that is not a version (v3.0.26)· 5 days ago1fc904a2b237record phase 4 in continuity: release decisions, peach android's confirmed contract and the missing koh 2.1.16 release (v3.0.25)· 5 days agoa79b2f329d95serve the generic install.sh per repo, tested end to end against a stand-in s3, and add robots.txt, the public-repos sitemap and kepr 2's favicon (v3.0.24)· 5 days ago075f6d740acctest every recorded kepr 2 route against kepr 3: byte-exact feeds, history, version.txt, checksums and 404s, and the shape where the spec makes kepr 3 differ, with the frozen koh 2 route on 2.1.16 (v3.0.23)· 5 days ago0f7e06f66cceserve the release feeds, checksums and downloads of §22.1 and §22.4 with kepr 2's bytes and error bodies, count downloads before a five-minute presigned redirect, count nix tarball fetches as installs, and pin the koh 2 route on 2.1.16 (v3.0.22)· 5 days ago4622d4048bd6add the builds panel with versions newest first, notes or their fallback, per-file label, size, sha-256, download count and install hints, and show the newest release in the repo header (v3.0.21)· 5 days agoa16dea674709read release records into the mirror when head or releases/latest moves, and keep hidden releases, notes overrides and download and install counts in kepr.db (v3.0.20)· 5 days ago06b0512cf8aerecord kepr 2's release and compatibility routes from kepr.uk as contract fixtures, with the GET-only script that re-records them (v3.0.19)· 5 days agoc2ced00ce4c7show a change to a file's final newline as a changed last line with the no-newline marker, and record the phase 3 review fixes in continuity (v3.0.18)· 5 days ago56d982f71079key cached tarballs by the mirror's strip count so a strip never serves stale bytes even without cleanup, and write every file 0644 as kepr 2 does (v3.0.17)· 5 days agobf8f698c551badd the archives panel with HEAD and recent tarballs and nix profile add lines for flakes, drop stray test mirror files, and record phase 3 in continuity (v3.0.16)· 5 days agoaf1f70ffc57aadd deterministic source tarballs byte-identical to kepr 2's tar, cached on disk and dropped by strip events, with the HEAD redirect and its immutable link (v3.0.15)· 5 days agodec9767f3870add the save page: facts, flag reason, parent past checkpoints, files changed with line stats and highlighted unified diffs from a small Myers diff (v3.0.14)· 5 days agoa6176ba16fafgive Atlas folder panels the full history facts and make the island ignore malformed remembered folders (v3.0.13)· 5 days ago08451dd8bbb6take license headers only in their real shapes, find the README intro as the Atlas finds a first paragraph, and pin real-source headers in tests (v3.0.12)· 5 days agoffa764f54431add the Atlas browser island: hover panel, filename filter and remembered open folders, with phase 2 recorded in continuity (v3.0.11)· 5 days ago5e4eb28dcc4aadd the Atlas to the repo page: folder tree with described rows, per-file history panels and ?at= views at any save (v3.0.10)· 5 days ago532072a50935add descriptions from comments per §21.5, with license-header and shebang skips and first-sentence one-liners (v3.0.9)· 5 days ago9b2c795e05c6treat large invalid utf-8 files as binary, check event kinds against their fields, and refuse unknown mirror schema versions (v3.0.8)· 5 days agode50af6ed620add the public repo page, file viewer and raw files behind the visibility gate, with the svg timeline, shiki highlighting and kepr 2's look (v3.0.7)· 5 days agoaab0488febf0add kepr.db, the per-repo koh 3 mirror with its queries, and the two-minute sync loop that applies strip events and records the last sync (v3.0.6)· 5 days ago1972104e46afvalidate paths, ids and fields of bucket save records before use (v3.0.5)· 5 days ago3f94f3d4aeadadd agents guide, continuity and visual reference for kepr 3 (v3.0.4)· 5 days ago80ceee69d14aadd security headers, the 64 KB body cap, the budget check and the route-list test (v3.0.3)· 5 days ago62097d82837dadd the read-only bucket reader with the koh-remote format check, verified objects and a koh3-built fixture (v3.0.2)· 5 days agod9c345d0eac2scaffold kepr 3 on bun with strict typescript, biome and validated kepr.toml loading (v3.0.1)· 5 days ago
.agent/116.6 KB · 1 hour ago
docs/13.3 KB · 1 hour ago
public/87.0 KB · 6 hours ago
scripts/10.1 KB · 1 day ago
src/364.3 KB · 13 minutes ago
admin/98.3 KB · 13 minutes ago
bucket/29.1 KB · 13 minutes ago
describe/15.5 KB · 2 days ago
issues/26.7 KB · 20 hours ago
mirror/27.3 KB · 13 minutes ago
pages/79.3 KB · 1 day ago
releases/24.8 KB · 20 hours ago
server/53.9 KB · 1 hour ago
tarball/7.6 KB · 1 day ago
main.ts1.9 KB · 1 day ago
tasks/1.2 KB · 1 day ago
tests/450.7 KB · 13 minutes ago
fixtures/93.2 KB · 4 days ago
kepr2/93.2 KB · 4 days ago
api_haven_releases_history.body352 B · 5 days ago api_haven_releases_history.headers89 B · 5 days ago api_haven_releases_latest.body908 B · 5 days ago api_haven_releases_latest.headers89 B · 5 days ago api_kepr_releases_history.body2.8 KB · 5 days ago api_kepr_releases_history.headers89 B · 5 days ago api_kepr_releases_latest.body889 B · 5 days ago api_kepr_releases_latest.headers89 B · 5 days ago api_koh_releases_2.1.0_linux-x86_64.headers99 B · 5 days ago api_koh_releases_2.1.0_macos-aarch64.headers99 B · 5 days ago api_koh_releases_2.1.16_linux-x86_64.body51 B · 5 days ago api_koh_releases_2.1.16_linux-x86_64.headers58 B · 5 days ago api_koh_releases_history.body9 B · 5 days ago api_koh_releases_history.headers12 B · 5 days ago api_koh_releases_latest.body2.1 KB · 5 days ago api_koh_releases_latest.headers58 B · 5 days ago api_nina_releases_history.body13.9 KB · 5 days ago api_nina_releases_history.headers89 B · 5 days ago api_nina_releases_latest.body1.8 KB · 5 days ago api_nina_releases_latest.headers89 B · 5 days ago api_nowhere_releases_latest.body53 B · 5 days ago api_nowhere_releases_latest.headers58 B · 5 days ago api_peach-android_releases_history.body27.1 KB · 5 days ago api_peach-android_releases_history.headers89 B · 5 days ago api_peach-android_releases_latest.body1.6 KB · 5 days ago api_peach-android_releases_latest.headers89 B · 5 days ago api_peach-relay_releases_history.body45 B · 5 days ago api_peach-relay_releases_history.headers58 B · 5 days ago api_peach-relay_releases_latest.body45 B · 5 days ago api_peach-relay_releases_latest.headers58 B · 5 days ago haven_meta.body334 B · 5 days ago haven_meta.headers58 B · 5 days ago haven_releases_0.6.1_checksums.txt.body401 B · 5 days ago haven_releases_0.6.1_checksums.txt.headers52 B · 5 days ago haven_releases_0.6.1_haven-macos-aarch64.headers109 B · 5 days ago haven_releases_0.6.1_macos-aarch64.headers109 B · 5 days ago haven_releases_latest_version.txt.body5 B · 5 days ago haven_releases_latest_version.txt.headers52 B · 5 days ago haven_releases_latest.body0 B · 5 days ago haven_releases_latest.headers44 B · 5 days ago haven_update-info.body378 B · 5 days ago haven_update-info.headers58 B · 5 days ago kepr_meta.body479 B · 5 days ago kepr_meta.headers58 B · 5 days ago kepr_releases_2.0.16_checksums.txt.body397 B · 5 days ago kepr_releases_2.0.16_checksums.txt.headers52 B · 5 days ago kepr_releases_2.0.16_kepr-linux-aarch64.headers114 B · 5 days ago kepr_releases_2.0.16_linux-aarch64.headers114 B · 5 days ago kepr_releases_latest_version.txt.body6 B · 5 days ago kepr_releases_latest_version.txt.headers52 B · 5 days ago kepr_releases_latest.body0 B · 5 days ago kepr_releases_latest.headers44 B · 5 days ago kepr_update-info.body377 B · 5 days ago kepr_update-info.headers58 B · 5 days ago koh_meta.body491 B · 5 days ago koh_meta.headers58 B · 5 days ago koh_releases_2.1.0_checksums.txt.body753 B · 5 days ago koh_releases_2.1.0_checksums.txt.headers52 B · 5 days ago koh_releases_2.1.0_koh-linux-x86_64.headers112 B · 5 days ago koh_releases_2.1.0_linux-x86_64.headers112 B · 5 days ago koh_releases_latest_version.txt.body5 B · 5 days ago koh_releases_latest_version.txt.headers52 B · 5 days ago koh_releases_latest.body0 B · 5 days ago koh_releases_latest.headers42 B · 5 days ago koh_update-info.body678 B · 5 days ago koh_update-info.headers58 B · 5 days ago nina_meta.body415 B · 5 days ago nina_meta.headers58 B · 5 days ago nina_releases_3.4.14_checksums.txt.body763 B · 5 days ago nina_releases_3.4.14_checksums.txt.headers52 B · 5 days ago nina_releases_3.4.14_linux-aarch64.headers114 B · 5 days ago nina_releases_3.4.14_nina-linux-aarch64.headers114 B · 5 days ago nina_releases_latest_version.txt.body6 B · 5 days ago nina_releases_latest_version.txt.headers52 B · 5 days ago nina_releases_latest.body0 B · 5 days ago nina_releases_latest.headers44 B · 5 days ago nina_update-info.body691 B · 5 days ago nina_update-info.headers58 B · 5 days ago peach-android_meta.body362 B · 5 days ago peach-android_meta.headers58 B · 5 days ago peach-android_releases_2.17.43_android-arm64.headers135 B · 5 days ago peach-android_releases_2.17.43_checksums.txt.body441 B · 5 days ago peach-android_releases_2.17.43_checksums.txt.headers52 B · 5 days ago peach-android_releases_2.17.43_peach-android-android-arm64.headers135 B · 5 days ago peach-android_releases_latest_version.txt.body7 B · 5 days ago peach-android_releases_latest_version.txt.headers52 B · 5 days ago peach-android_releases_latest.body0 B · 5 days ago peach-android_releases_latest.headers54 B · 5 days ago peach-android_update-info.body414 B · 5 days ago peach-android_update-info.headers58 B · 5 days ago peach-relay_meta.body311 B · 5 days ago peach-relay_meta.headers58 B · 5 days ago peach-relay_update-info.body33 B · 5 days ago peach-relay_update-info.headers58 B · 5 days ago record.shRecords Kepr 2's §22.4 compatibility routes from kepr.uk, GET only, into this folder: <slug>.headers (status line plus the headers the contract tests read) and <slug>.body.2.0 KB · 4 days ago schema.sql28.4 KB · 4 days ago
account.test.tsCovers the console's Account section (June, 2026-09-30): the admin password, other sessions and the domain, all changed without touching kepr.toml by hand, and applied without a restart.4.2 KB · 1 day ago admin.test.ts7.4 KB · 1 day ago backup.test.ts6.4 KB · 1 day ago backupbucket.test.tsCovers the optional backup bucket (June, 2026-09-30): set, tested and removed in the console, written to kepr.toml by Kepr alone, each backup copied there with the newest 14 kept, and a failure shown and told once until an upload succeeds.6.1 KB · 1 day ago backupworkspace.test.tsCovers §24's backup workspace: every kept backup listed and downloadable, back up now, the last failure until a backup succeeds, and the written restore steps.3.4 KB · 1 day ago browser.ts3.1 KB · 1 day ago bucket.test.ts11.1 KB · 13 minutes ago bucketadmin.test.tsCovers §24's Bucket section: masked secrets, the connection test, and a save that rewrites kepr.toml and applies the new settings without a restart.9.1 KB · 1 day ago config.test.ts2.9 KB · 4 days ago connect.test.tsCovers connect setup, validation, one-time redemption, rate limits, admin history, and secrecy.15.9 KB · 3 days ago console.test.ts27.2 KB · 20 hours ago contract.test.ts14.2 KB · 1 day ago describe.test.ts9.8 KB · 4 days ago diff.test.ts2.9 KB · 5 days ago downloads.test.tsCovers §24's Downloads section: counts per UTC day, the last 30 days per repo or across all, each repo's totals, the most downloaded files, and dropping days older than 400.2.9 KB · 20 hours ago email.test.tsCovers §24's Email section: SMTP settings in kepr.toml, the test send, emailed notifications and the delivery queue's retries, retry now and discard.9.9 KB · 1 day ago fake-s3.tsA bucket in memory, served over HTTP for the joint public-steal test: koh3's own S3 backend and Bun's S3Client both talk to it, so Kepr and the two koh3 machines share one bucket.2.4 KB · 4 days ago fixture.ts8.7 KB · 3 days ago front.test.ts10.6 KB · 1 day ago hidden.test.tsCovers per-repo hidden paths (June, 2026-09-30): gone from every page, the stats and new tarballs, kept hidden through later syncs, handed to Koh under .kepr/hidden/, and back on unhide.5.0 KB · 20 hours ago ignored.test.tsCovers names ignored in every repo (June, 2026-10-01): a file or folder with that exact name, at any depth, is gone from every repo at once, stays gone in later saves, and comes back when the name is taken off the list.3.9 KB · 1 hour ago import.test.ts15.6 KB · 4 days ago install.test.ts4.5 KB · 1 day ago issues.test.ts13.7 KB · 20 hours ago kepr2.test.ts4.2 KB · 4 days ago koh-version.txt7 B · 1 hour ago kohpaths.test.ts3.6 KB · 1 day ago kohrelease.test.ts5.1 KB · 1 day ago kohremote.test.tsCovers addendum A2 part 2: Koh's own remote layout, served read-only from a public repo's mirror.6.9 KB · 1 day ago kohsteal.test.tsThe joint public-steal contract (addendum A2, item 8d): one machine publishes a repo to a bucket, Kepr serves it read-only over HTTP in Koh's own layout, a second koh3 steals it — and later, once that machine has signed in, offers its work back to the bucket.15.5 KB · 1 day ago kohupdate.test.ts11.0 KB · 1 day ago links.test.ts2.8 KB · 2 days ago navbar.test.ts1.7 KB · 1 day ago notifications.test.tsCovers §24's in-app notifications: what raises one, unread state, opening, mark all read, switching kinds off, and keeping the newest 200.5.1 KB · 1 day ago pages.test.ts19.7 KB · 1 day ago releases.test.ts17.3 KB · 1 day ago repotext.test.ts7.9 KB · 20 hours ago repoworkspace.test.tsCovers §24's selected-repo workspace: the summary, detected and shown languages, where the description comes from, and the repo's releases.8.8 KB · 20 hours ago server.test.ts2.3 KB · 4 days ago setup.test.tsCovers first-run setup (June, 2026-09-30): with no kepr.toml, Kepr serves only /setup, which takes the one-time code printed in the terminal, then the password, domain and bucket, writes kepr.toml itself, and hands over to the real app.4.2 KB · 5 hours ago storage.test.tsCovers §24's Storage section: sizes by repo and kind, kept tarballs with a delete each, and orphan cleanup that touches only Kepr's own files.3.1 KB · 20 hours ago sync.test.ts15.6 KB · 13 minutes ago tarball.test.ts13.3 KB · 1 day ago timeout.ts359 B · 3 days ago triage.test.tsCovers §23–§24's triage: tab counts, awaiting reply, repo/type/word filters, hiding one follow-up, and pausing new issues per repo.8.1 KB · 20 hours ago
AGENTS.mdKepr 3 is a small, self-hostable TypeScript web app (Bun + Hono + bun:sqlite) that reads one operator's Koh 3 bucket, read-only, and presents it: code and history pages, source tarballs, release downloads and update feeds, public issues.5.4 KB · 1 day ago biome.json361 B · 5 days ago bun.lock20.8 KB · 1 day ago bunfig.toml40 B · 3 days ago kepr.example.tomlCopy to kepr.toml (never saved: it holds the admin password hash and the bucket key).851 B · 1 day ago package.json526 B · 13 minutes ago tsconfig.json441 B · 5 days ago
43081c75fd34accept the six-character save IDs Koh 2's early saves keep through migration, an exact ID winning over a longer one it begins (v3.0.182)13 minutes ago12218adb0fdfread the bucket through presigned fetches, since Bun's S3File reads keep a copy of every body (v3.0.181)46 minutes ago9504bcb405d8record the OOM fixes, lowercase names, global ignore and the pending Haven cleanup in continuity (v3.0.180)1 hour ago82938843e282store a save's objects ahead of it when one save alone passes a batch, so a first import's huge save fits in memory (v3.0.179)1 hour agoa7772f7d8854hide names ignored in every repo, set in the site section, at any depth from pages, stats and tarballs (v3.0.178)1 hour agoefd0734feb70count the front page's distinct objects from the objects table, not a DISTINCT over every save's whole tree (v3.0.177)1 hour ago0b7b8cbd36f5keep only save IDs while walking a sync and cap a batch at 100 saves, since each record lists its whole tree (v3.0.176)1 hour ago72c73018a692land a sync's new history in 32 MB batches oldest first, so a big first sync fits in memory and resumes if cut short (v3.0.175)1 hour ago611700826bbfpin the tests to koh3 3.2.26, which lowercases repo names at first offer (v3.0.174)1 hour ago0f18e9e415d7record the first five repos migrated and offered to the live bucket in continuity (v3.0.173)3 hours agof59a3792d797send the setup page with a same-origin referrer policy so browsers post it with their real origin (v3.0.172)5 hours ago819b6f716f84record Kepr 3 running on Tylee in place of Kepr 2 in continuity (v3.0.171)5 hours ago798f81d1cc3crecord the phone menu, the viewer's CSS order fix and the stale-asset trap in continuity (v3.0.170)6 hours agoc45748e284b7let the file viewer and the description editor take a phone's full width, their phone rules now after the rules they override (v3.0.169)6 hours ago318ff45f727afold the navbar links behind a menu button on phones, wrapping them when the script is absent (v3.0.168)6 hours agoa4e1f5407345record the finished operator console in continuity (v3.0.167)20 hours agof47afb6afc01draw the download day bars in the theme's colours and centre console row buttons (v3.0.166)20 hours agoeb54516e9dc9split the repo workspace into overview, settings, builds and archives tabs (v3.0.165)20 hours ago5487c6f1524aclose, reopen, hide or unhide ticked issues together from the console list (v3.0.164)20 hours ago1440b2ee584cblock a reporter's address from filing and following up, listed and lifted in the console (v3.0.163)20 hours ago0c5812ee878ashow bucket storage by repo at /admin/storage, with per-tarball delete and cleanup of Kepr's orphaned files (v3.0.162)20 hours ago850a5062b8fecount downloads per repo and day, shown at /admin/downloads with totals and top files (v3.0.161)20 hours ago1a625426812fdelete one file of a build, rewriting its release record first (v3.0.160)20 hours ago0fb42c17ed78record the operator console's first part and what comes next in continuity (v3.0.159)1 day ago53796355d42eset Kepr up in the browser on first run with a one-time code from the terminal, then hand over without a restart (v3.0.158)1 day ago3be930495fbcswitch the bucket source between S3 and a folder remote either way from the console (v3.0.157)1 day agoa602ee4ac891change the admin password, sign out other sessions and set the domain from a new Account section, applied without a restart (v3.0.156)1 day ago9288dbfe8a4fcopy each backup to an optional backup bucket set in the console, keeping the newest 14 there (v3.0.155)1 day agode3f4637e3efraise the TypeScript ceiling to 12,600 with admin 2,800, server 2,000, issues 1,200 and CSS 3,400 (v3.0.154)1 day ago2d05e7661d88record the codex review fixes and June's operator-console asks in continuity (v3.0.153)1 day agoba443d076bcedelete builds one at a time, moving latest first and the record last, so a failed delete retries cleanly (v3.0.152)1 day ago2b4b50250d6dkey kept tarballs by strips, hidden paths and mirror epoch, recheck after every await, and rebuild mirrors in place so held handles stay usable (v3.0.151)1 day agodf02ac46afcenote the connect-test timeout flake and gating on bun test's exit code (v3.0.150)1 day ago756506893ff9record that Kepr may delete builds in AGENTS.md, and the session's state in continuity (v3.0.149)1 day ago1305a0bb9d6dhide files and folders per repo from every page, the stats and tarballs, handing the list to Koh under .kepr/hidden (v3.0.148)1 day ago3c2984c576fcfix the one-settings-form test that v3.0.146 saved red after adding the tarball form (v3.0.147)1 day agob967d82d724edelete a repo's kept tarballs from the bucket on its admin page (v3.0.146)1 day ago02702253e7aekeep built tarballs in the bucket under .kepr/tarballs instead of the data directory (v3.0.145)1 day ago9a44722de6e7delete a build from the bucket on its repo's admin page, moving releases/latest to the newest left (v3.0.144)1 day ago528bcf043cacedit each build's notes and visibility on its repo's admin page, replacing the releases section (v3.0.143)1 day ago086289d5af85edit a repo's description and details from its admin page (v3.0.142)1 day ago71860b49096flet a folder instance switch to S3 from the bucket section (v3.0.141)1 day ago4ffd21d3611bremove install lines and card order; repos sort by name and old kepr.db columns are dropped (v3.0.140)1 day ago3c4ab82be15caccept plain-http admin forms when the domain is localhost, so local saves stop being refused (v3.0.139)1 day ago58d7fe07cda0list and download every backup, back up now, and show the last failure and restore steps (v3.0.138)1 day ago301147eeaa38email notifications over SMTP with a test send and a retrying delivery queue (v3.0.137)1 day ago2d3ee7d12177raise the TypeScript ceiling to 10,500 for email and backups (v3.0.136)1 day agoeb098609196dadd in-app operator notifications with unread count and per-kind switches (v3.0.135)1 day ago987482f17e06add issue triage tabs, filters, follow-up hiding and a per-repo pause on new issues (v3.0.134)1 day ago364bcfc8c156turn the repo section into a selected-repo workspace with shown languages (v3.0.133)1 day ago

older →