Repository navigation
Kintsugi v0.3.2
v0.3.2
This patch incorporates seven reviewed upstream commits through 012730c6, adds GitLab.com, Bitbucket Cloud and configurable Gitea connections, and fixes the generated Caddy configuration’s conflict with Tailscale UDP 41641.
The unpublished v0.3.1 tag stopped at full CI because an imported credential-helper test raced a stdin write against an intentional process exit. This release fixes that fixture, checks both ignored operations and preserves its intentional early-exit behaviour. No images or channels were published by the failed run; the earlier tag remains untouched.
Changes view
- Show unchanged tracked files alongside changes, loading their contents on demand.
- Edit unchanged working-tree text files through the existing conflict-checked edit flow. Committed comparisons stay read-only.
- Preview images, including unchanged images, and play unchanged video and audio when the browser supports their formats.
Git hosting
- Move GitHub behind a shared Git-hosting provider interface.
- Add GitLab.com token connections, public/member project search, HTTPS Git credentials, SSH host trust and the
glabCLI. - Add Bitbucket Cloud email/API-token connections, repository search across account workspaces, HTTPS Git credentials, SSH host trust and the
bktCLI. - Add one configurable Gitea HTTPS instance, including optional ports and installation subpaths, with token validation, repository search and HTTPS Git credentials. Derive the Git username from the validated account. No additional Gitea CLI is installed.
- Restrict Gitea substitution to the configured HTTPS origin, including its port. Capture hosts and credentials together during instance changes, refuse redirects and reject repository clone URLs outside that server. Connecting Gitea grants no workspace LAN access and adds no automatic SSH trust.
- Keep real provider tokens outside workspace environments; workspaces receive host-scoped placeholders and the non-secret account fields required by provider CLIs.
- Keep existing GitHub token storage and disconnect markers compatible with older installations and authenticated release-note lookup.
- Preserve Kintsugi’s applied network policy, host exclusions, response scrubbing and disabled URL-query secret substitution.
- Reject Bitbucket pagination URLs outside its HTTPS API origin before forwarding credentials, and refuse Bitbucket API redirects.
- Keep repository search and provider connection forms excluded from the authenticated admin API. One provider’s search failure does not hide other providers’ results.
GitLab support targets gitlab.com; arbitrary self-hosted GitLab servers are not included. Existing workspace containers do not receive newly added CLI binaries or environment variables merely because the app was updated. They need preparation against the updated workspace image; custom images still need to supply their own tools.
Caddy and Tailscale
Generated HTTPS proxy configuration now disables HTTP/3 specifically on each configured bind address at port 41641. The TCP preview origin remains available, Tailscale keeps UDP 41641, and other listeners retain their protocol defaults.
An app update does not rewrite an external Caddyfile. Regenerate or amend it as described in the proxy recovery instructions. Merge generated servers options into an existing global options block instead of adding a second block. Keep unrelated sites, admin settings and other global options. Validate and confirm the reload succeeds.
The preview range remains 41000–41999; existing and retired origins are preserved. The APT balancing proposal was not adopted; Kintsugi retains its semantic APT groups, with Git-provider CLI packages supplied by their modules.
Verification and limits
The local full suite passed 2,283 tests, with 39 skips and zero failures. Frozen dependency installs, lint/types, System bundling and workflow validation passed. External dependency versions were not updated.
Manual review covered Git-hosting connection forms on desktop/mobile, unchanged-file editing with persisted disk changes, image previews, and WebM/WAV playback. This browser lacks H.264 support, so its MP4 fixture was unsupported. The six-scenario, no-inference Chrome composer subset passed all 89 checks; sending, busy states, long transcripts and iOS keyboard behaviour were outside that subset.
A disposable, network-isolated runtime probe started all 1,000 Caddy TCP preview listeners while another process held UDP 41641, and confirmed that neighbouring HTTP/3 UDP 41642 remained available. The generated full-pool configuration also passed Caddy validation.
The browser review used an existing released workspace image as a UI fixture. Native publication checks execute gh, glab and bkt on both architectures in the new workspace image. A disposable real Gitea 1.24.6 fixture passed token validation, private-repository search through the running app, and a private HTTPS clone using the generated helper inside the fixture, with certificate verification enabled. Gitea connection/disconnection forms were reviewed on desktop/mobile. This covers the fixture, not an operator’s production Gitea or every server version.
Real GitLab/Bitbucket account sign-in and private remote cloning, physical microphone prompts, iOS keyboard/rotation and a complete installed update/rollback cycle have not been verified for this release.
System capability and app policy-reader format remain 2; the app minimum remains 0. Custom release sources, pins, registry credentials and retained-pair rollback protections are unchanged. Publication advances latest, leaves stable unchanged and does not restart installations.
Published verification
Tagged release workflow passed on its first attempt for v0.3.2: 2,283 tests passed, 39 skipped, zero failures. Native AMD64/ARM64 workspace, System and app checks passed, including execution of gh, glab and bkt and candidate app/System compatibility checks. Independent registry inspection confirmed matching v0.3.2/latest app, System and workspace digests, correct image source labels and workspace pins. System capability/policy-reader format remain 2; app minimum remains 0. Source: 6817a857828ba8c44155a5f3f29646af0ab7ae28. stable remains absent and unchanged. No installation was restarted.