Frontend follow-up to mammon [domain-ownership] 3 — One rule book per user (eveal/mammon#14).
Why
mammon#14 restructures the rule slice: rule_book becomes a per-user singleton (one owned rule book per user; the seeded default stays global as a fallback), and the per-character selection is retired — character_rule_book + ledger_binding collapse into a user-scoped rule book + bindings, and resolution moves from character to user. Endpoints are reworked accordingly (GET /rule-books, GET /rule-books/{id}, create/update/delete; and /characters/{characterId}/rule-book).
The current gemory rule-book UI is built on the old per-character model and will break / become obsolete.
CharacterRuleBookApi wiring in src/mammon/mammonService.ts
useCharacterRuleBooksStore
Rework the rule-book pages to a single user-owned rule book:
ListRuleBooks.vue / EditRuleBook.vue and routes.ts (listRuleBooks, newRuleBook, editRuleBook) — a user now has exactly one rule book (default global as fallback), so list/new/edit navigation should be reconsidered (likely a single "my rule book" edit view).
useRuleBooksStore — resolve by user; drop the FIXME don't call refresh path in EditRuleBook.vue.
Update bindings UI so ledger bindings reference only the user's (or system) ledgers.
Regenerate the API client from the updated OpenAPI spec once mammon#14 lands (src/generated/, docs/mammon-api.yml).
Depends on
eveal/mammon#14 (backend must land first; API client regeneration follows)
Acceptance criteria
Per-character rule-book pages, routes, store, and CharacterRuleBookApi removed.
Rule-book UI reflects one owned rule book per user (default global as fallback).
Bindings only offer the user's / system ledgers.
Non-owned rule book access is handled (403/404) gracefully in the UI.
Frontend follow-up to mammon **[domain-ownership] 3 — One rule book per user** (eveal/mammon#14).
## Why
mammon#14 restructures the rule slice: `rule_book` becomes a **per-user singleton** (one owned rule book per user; the seeded default stays global as a fallback), and the **per-character selection is retired** — `character_rule_book` + `ledger_binding` collapse into a user-scoped rule book + bindings, and resolution moves from *character* to *user*. Endpoints are reworked accordingly (`GET /rule-books`, `GET /rule-books/{id}`, create/update/delete; and `/characters/{characterId}/rule-book`).
The current gemory rule-book UI is built on the old per-character model and will break / become obsolete.
## Scope
- **Retire the per-character rule-book UI:**
- `ListCharacterRuleBooks.vue`, `EditCharacterRuleBook.vue` (route `/characters/:characterId/rules`, `editCharacterRulebook`)
- `CharacterRuleBookApi` wiring in `src/mammon/mammonService.ts`
- `useCharacterRuleBooksStore`
- **Rework the rule-book pages to a single user-owned rule book:**
- `ListRuleBooks.vue` / `EditRuleBook.vue` and `routes.ts` (`listRuleBooks`, `newRuleBook`, `editRuleBook`) — a user now has exactly one rule book (default global as fallback), so list/new/edit navigation should be reconsidered (likely a single "my rule book" edit view).
- `useRuleBooksStore` — resolve by user; drop the `FIXME don't call refresh` path in `EditRuleBook.vue`.
- Update bindings UI so ledger bindings reference only the user's (or system) ledgers.
- Regenerate the API client from the updated OpenAPI spec once mammon#14 lands (`src/generated/`, `docs/mammon-api.yml`).
## Depends on
- eveal/mammon#14 (backend must land first; API client regeneration follows)
## Acceptance criteria
- [x] Per-character rule-book pages, routes, store, and `CharacterRuleBookApi` removed.
- [x] Rule-book UI reflects one owned rule book per user (default global as fallback).
- [x] Bindings only offer the user's / system ledgers.
- [x] Non-owned rule book access is handled (403/404) gracefully in the UI.
Sirttas
added a new dependency 2026-07-02 09:54:24 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Frontend follow-up to mammon [domain-ownership] 3 — One rule book per user (eveal/mammon#14).
Why
mammon#14 restructures the rule slice:
rule_bookbecomes a per-user singleton (one owned rule book per user; the seeded default stays global as a fallback), and the per-character selection is retired —character_rule_book+ledger_bindingcollapse into a user-scoped rule book + bindings, and resolution moves from character to user. Endpoints are reworked accordingly (GET /rule-books,GET /rule-books/{id}, create/update/delete; and/characters/{characterId}/rule-book).The current gemory rule-book UI is built on the old per-character model and will break / become obsolete.
Scope
ListCharacterRuleBooks.vue,EditCharacterRuleBook.vue(route/characters/:characterId/rules,editCharacterRulebook)CharacterRuleBookApiwiring insrc/mammon/mammonService.tsuseCharacterRuleBooksStoreListRuleBooks.vue/EditRuleBook.vueandroutes.ts(listRuleBooks,newRuleBook,editRuleBook) — a user now has exactly one rule book (default global as fallback), so list/new/edit navigation should be reconsidered (likely a single "my rule book" edit view).useRuleBooksStore— resolve by user; drop theFIXME don't call refreshpath inEditRuleBook.vue.src/generated/,docs/mammon-api.yml).Depends on
Acceptance criteria
CharacterRuleBookApiremoved.