Files
GitHop/docs/gitea-hop-native.md
T
cyph3rasi 12c806c77f Stop publishing repository-wide prompt ledgers and enforce per-user prompt isolation through authenticated Gitea IDs.
Hop-State: A_06FN8NFDRFAFN5VCJTHJAAG
Hop-Proposal: R_06FN8NEGJ054CPMJF9ZAN70
Hop-Task: T_06FN8HT6XG332C3XY6PYCCG
Hop-Attempt: AT_06FN8HT6XGRXW0B4WPFFBJG
2026-07-11 20:19:05 -07:00

2.2 KiB

Hop-native Gitea semantics

HopWeb keeps Gitea's existing forge interface and adds a Hop-specific public home page, brand mark, and semantic vocabulary for collaboration elements.

Install

From the project root:

./deploy/gitea/install-hop-native.sh

Set ENV_FILE when the Compose environment is stored elsewhere:

ENV_FILE=/path/to/environment ./deploy/gitea/install-hop-native.sh

The installer copies the home page, brand mark, styles, and adapter into Gitea's persistent custom directory, sets the application name to Hop, restarts Gitea, and waits for a healthy response. Re-run it after editing an asset or replacing the Gitea volume.

Semantic mapping

Native route and behavior Hop label
Repository code Files
Prompts (Hop-native causal record)
Issues Tasks
Branches Attempts
Commits Checkpoints
Pull requests Proposals
Actions Evidence
Merge pull request Accept proposal

The adapter updates visible text, document titles, form placeholders, tooltips, and ARIA labels. It scopes replacements to Gitea navigation, headings, menus, breadcrumbs, labels, and buttons, so repository content and user-authored prose remain unchanged.

Repository home pages also receive a Hop workflow group in the existing Gitea sidebar. It uses Gitea's own classes, links, icons, and live counts.

Private prompt history

The Prompts tab reads from the Hop control plane. The browser's Gitea session identifies the viewer, repository authorization is checked, and the database query is scoped to that viewer's immutable Gitea user ID. Unowned legacy rows are excluded. The UI never reads .hop/records/prompts/ from a Git branch: repository-wide portable records cannot enforce a per-user privacy boundary.

Local Hop exports can contain prompts and machine paths. .hop/ is ignored and must not be committed or served by the forge.

Upgrade check

After changing the pinned Gitea version:

  1. run the installer;
  2. confirm Prompts, Tasks, Proposals, and Evidence in repository navigation;
  3. confirm Attempts and Checkpoints in the Files view;
  4. confirm proposal creation and acceptance labels;
  5. inspect browser console errors; and
  6. test a narrow viewport and keyboard navigation.