Commits
197c77bsilen2026-05-11 19:17chore: update version
a477db1silen2026-05-11 19:13chore: remove unused last_commit_date method and collapse nested if
dc943casilen2026-05-11 19:12fix: wrap create_namespace INSERTs in a transaction Both the namespace and namespace_members inserts now run within a single BEGIN/COMMIT transaction on the same connection. If the second insert fails, the first is rolled back, preventing orphan namespace records.
61bea90silen2026-05-11 19:11perf: introduce RepoHandle to open git repo once per request Previously each page view opened the git repo 5-8+ times (config load, commits, file listing, file reads, slides). RepoHandle opens the repo once and provides get_commits, read_file, list_files, and load_config_with_raw as methods on the open handle, eliminating redundant Repository::open calls.
8721eedsilen2026-05-11 19:06perf: change git_backend::Config::project_root() to return &str Avoids a String allocation on every call. Since project_root() is called on every git request, this removes unnecessary heap allocations from the hot path.
e725fcbsilen2026-05-11 19:05perf: add index on tokens(created_at) and cleanup expired tokens on login Add a database index on tokens.created_at to speed up the expiry filter in get_token_user/get_username_by_token queries. Wire up cleanup_expired_tokens() to run on every session creation, preventing unbounded table growth.
7118da7silen2026-05-11 19:05perf: filter repos by name before opening git repos in search search_repos_with_info() previously opened every git repository to get commit dates before filtering by name. Now filters directory names first and only opens matching repositories.
05a76d1silen2026-05-11 19:04perf: combine user_has_namespace_access into single JOIN query Previously this method ran two separate queries (owner check + member check). Now uses a single LEFT JOIN query with OR condition, halving the DB round trips for namespace access checks.
74dcdfcsilen2026-05-11 19:04perf: eliminate redundant namespace existence check in git auth path is_authenticated() already checks if the namespace exists via get_namespace_by_name(). Previously ensure_namespace_exists() performed the same query again. Now is_authenticated() returns whether the namespace exists, and ensure_namespace_exists() skips the check when called with a known-nonexistent namespace.
91ac0fdsilen2026-05-11 19:02perf: reduce get_username_from_request from 2 DB queries to 1 Add get_username_by_token() method that JOINs tokens and users tables in a single query, eliminating the separate get_user_by_id() call. Also add cleanup_expired_tokens() for future use.
cd58df2silen2026-05-11 19:02perf: eliminate duplicate git reads for FigConfig by returning raw content alongside parsed config FigConfig::load(), FigConfig::read_raw(), and FigConfig::config_filename() each opened the git repo and walked the tree independently, causing 2-4x redundant reads per page view. Replace with FigConfigWithRaw struct that returns all three in a single pass, and update all call sites accordingly.
f362480silen2026-05-11 18:35chore: update version
1f8515csilen2026-05-11 18:04chore: update version
985d549silen2026-05-11 17:51chore: update version
636d853silen2026-05-11 17:19chore: update version
fa22dd0silen2026-05-10 18:45chore: update version
7bbf15esilen2026-05-10 16:44chore: update version
4bd06e3silen2026-05-10 15:29chore: update version
dedef4fsilen2026-05-09 10:24fix: tabs
8896e85silen2026-05-09 10:23feat: add present tab for slide-based presentations from markdown files Add a present tab to the repo view that renders markdown files as slides with fullscreen mode and keyboard/click navigation. Configure via .fig.toml with [present] section containing files array and template vars for mustache replacement. Includes new md module for mustache, AST, and HTML conversion.
c875c72silen2026-05-02 18:59chore: update version
a500862silen2026-05-02 18:11fix: skills
b66daeasilen2026-05-02 17:58chore: update version
e5d8801silen2026-04-25 12:43chore: update version
a0f9a94silen2026-04-25 10:17chore: update version
5da650csilen2026-04-25 10:16refactor: naming
066e00fsilen2026-04-25 09:52fix: remove typst handling
5595a2dsilen2026-04-13 20:08chore: update version
e7b8375silen2026-04-13 19:39chore: update version
6c68010silen2026-04-13 19:37chore: update version
ee83d45silen2026-04-13 18:57chore: update version
e012a53silen2026-04-13 18:54chore: update version
4e08e00silen2026-04-13 18:50chore: update version
bc3aceesilen2026-04-13 18:31chore: update version
f463794silen2026-04-13 18:17chore: update version
0164b3bsilen2026-04-13 18:09fix: logging
a8d6ff8silenlocatelli2026-04-13 06:55fix: fig svg
bbd6aadsilenlocatelli2026-04-13 06:47fix: logo
0da6bf9silen2026-04-11 15:09fix: build
66b9033silen2026-04-08 17:38chore: version
323709dsilen2026-04-08 17:07chore: version
62d493fsilen2026-04-08 16:48chore: version
d189041silen2026-04-08 16:46fix: adjust config
5ff42e1silenlocatelli2026-04-08 07:19chore: ignore
b9100efsilenlocatelli2026-04-08 07:17chore: ignore for view
2a7f551silen2026-04-07 18:13chore: version
6ad081fsilen2026-04-07 15:47chore: version
ab54494silen2026-04-06 11:05chore: docs
d7abcd6silen2026-04-06 10:51chore: version
f41e24csilen2026-04-06 10:46fix: .git dupilcates
ae3a763silen2026-04-06 09:48chore: version
63b8f43silen2026-04-06 09:46chore: docs
9c4ce0asilen2026-04-06 09:27fix: repo view
0dbbb6bsilen2026-04-06 09:04fic
aad421bsilen2026-04-06 08:43refactor(db): split db module into topic-based submodules Split src/db.rs into separate files by topic: - mod.rs: Database struct and initialization - users.rs: User CRUD operations - namespaces.rs: Namespace operations and access control - tickets.rs: Signup ticket operations - tokens.rs: Session token operations
cb39b62silen2026-04-06 08:27fix: concurrent db connections
87057dbsilen2026-04-06 07:57refactor: config
4dad71esilen2026-04-06 07:29fix: remove not needed features
4858bd5silen2026-04-05 17:23refactor: remove JSON API endpoints except init Remove all JSON API endpoints, keeping only: - HTML UI endpoints for auth (signup, login, namespace creation) - New UI logout handler replacing JSON logout - Admin page with form-based API key authentication Also adds extensive logging to git backend HTTP operations. BREAKING CHANGE: All /api/* endpoints removed except git init
c10f9c0silen2026-04-05 16:51chore: version
24c43c1silen2026-04-05 16:49feat: add admin page with API key protection Add /admin endpoint protected by API_KEY that shows: - Database tables tab with row counts - Namespaces tab with owners and member access details - Users tab with all registered users Includes new database queries: - get_all_users() - get_namespace_members() - get_all_tables()
e00c486silen2026-04-05 16:14chore: version
aa5528dSilen Locatelli2026-04-05 15:59chore: version
07e5540Silen Locatelli2026-04-05 15:57fix: remove space in breadcrumb namespace link Fix the namespace breadcrumb link in repo view that had an extra space causing broken navigation back to namespace.
18a4467Silen Locatelli2026-04-05 15:50chore: version
00a18e5Silen Locatelli2026-04-05 15:42chore: bump version to 0.1.19
3324059Silen Locatelli2026-04-05 15:37fix(settings): make settings a standalone page - Fix route order: move /settings before /{namespace} to prevent namespace matching - Update breadcrumb from 'Namespaces / Settings' to 'Home / Settings' - Update navigation: show username as text with separate Settings link - Add hurl test for settings page functionality
f1b493aSilen Locatelli2026-04-05 15:16chore: version
103b834Silen Locatelli2026-04-05 15:12fix: email in db
062f345Silen Locatelli2026-04-05 14:55feat: use user email and name for git commits - Add email field to User struct and database schema - Require email during signup (no fallback) - Create settings page for users to update their email - Update bare_init to use username and email for git author info - Link username in navbar to settings page - Return error if user tries to create repo without email set
b604d0cSilen Locatelli2026-04-05 14:41chore: version
49ac64bSilen Locatelli2026-04-05 14:37fix: add git to docker image
03946b6Silen Locatelli2026-04-05 14:12chore: version''
3809d57Silen Locatelli2026-04-05 13:39fix: port
aec52baSilen Locatelli2026-04-05 13:36expose port 80 by default
18a98c4Silen Locatelli2026-04-05 12:45chore: bump version
34a33afSilen Locatelli2026-04-05 12:39refactor: remove unused run function from git_backend
47ab603Silen Locatelli2026-04-05 12:35chore: change default port to 80, set justfile PORT to 8080
4de36b1Silen Locatelli2026-04-05 12:27fix: format
cab3598Silen Locatelli2026-04-05 12:02feat: prepare for deploy
4f1d206Silen Locatelli2026-04-04 16:06fix: release
5fc23b1Silen Locatelli2026-04-04 15:30feat: better auth flow
f6442ecSilen Locatelli2026-04-04 12:44feat: add RESET_DB env var and merge migrations - Add RESET_DB environment variable support - set to 'true' to reset database at startup - Merge migrations into single init_tables function - Remove separate migrate_tickets_table function (now handled in initial schema)
6952949Silen Locatelli2026-04-04 12:19feat: redirect to overview after login if user has namespaces - Add user_has_any_namespaces database method - After login: redirect to home page if user already has namespaces - After login: show Create Namespace page only if user has no namespaces - Uses HX-Redirect header for seamless navigation
4b6603dSilen Locatelli2026-04-04 12:16fix: check namespace access for create repo button and fix logout - Only show Create repo button if user has access to the namespace - Fix logout to work with session cookies (not just Bearer tokens) - Logout now checks for session cookie as fallback when no Bearer token
b9f2a02Silen Locatelli2026-04-04 12:12feat: add breadcrumb navigation - Add breadcrumb navigation to repository view: Namespaces / {namespace} / {repo} - Add breadcrumb navigation to namespace view: Namespaces / {namespace} - Breadcrumb links are clickable for easy navigation back to parent pages
d72abdeSilen Locatelli2026-04-04 12:10feat: add namespace and repo management UI with auth improvements - Add repository creation form in namespace view (hidden until clicked) - Show repos in table format with last commit date - Add backend search for repositories in namespace view - Show namespaces in table format with owner username - Add backend search for namespaces on homepage - Hide Login/Signup links when user is logged in - Show username and Logout link when authenticated - Add get_user_by_id database method - Add get_repos_with_info and search_repos_with_info git methods - Add namespace search with owner info database methods - Fix route ordering to prevent conflicts with git endpoints
c958b34Silen Locatelli2026-04-04 11:50feat: auth
0886733Silen Locatelli2026-04-03 14:50feat: initial commit on repo init and graceful empty repo handling - Create initial commit with .fig file when initializing repos - Handle unborn branches gracefully in git/bare.rs functions - Fix error handling: replace unwrap() with proper Result handling - Remove non-existent custom.css reference from layout - Add test descriptions to README test content - Add hurl test for repo view
e1c39a7Silen Locatelli2026-04-02 18:25feat: ui
47e3362Silen Locatelli2026-04-02 16:11fix: ci release
fbb1f6fSilen Locatelli2026-04-01 20:19fix: wrong place for scripts
e143defSilen Locatelli2026-04-01 20:13fix: releaserc
55c18caSilen Locatelli2026-04-01 20:08fix: force version
7cba686Silen Locatelli2026-04-01 19:50chore: adjust port
3f51213Silen Locatelli2026-04-01 19:48feat: add up endpoint
11c5e47Silen Locatelli2026-04-01 19:47fix: init
c74bdf7Silen Locatelli2026-03-28 15:11feat: init repo
ca837dbSilen Locatelli2026-03-27 20:44improve
a754961Silen Locatelli2026-03-26 17:10intermediate
a0fad4cSilen Locatelli2026-03-26 17:10intermediate
005dbb7Silen Locatelli2026-03-26 16:42feat: initial commit
bec8d84Silen Locatelli2026-03-26 15:37Initial commit