docs(subgroups): the dialect catalogue is in the tree now, so cite it again
Written while the catalogue was on an unmerged branch, so three citations were replaced with the reasoning stated directly. It landed on mantra during the build and the merge brought it in, so `DialectScaffold`, `AfricanLanguages` and docs/african-dialect-catalogue.md are all here. The restated reasoning stays rather than turning back into links -- a plan that explains its own rule survives the file it borrowed it from being moved -- but two cross-references are worth having. `DialectScaffold` is the closest thing in the tree to `SubgroupOrigin`, and `DialectScaffold.pendingIn` is Phase 7's `ceremoniesFor` solving the same race one layer up: read what is already in flight, so two admins looking at the same screen do not propose the same thing twice. Eighty dialects there, two rooms for one project here. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -32,11 +32,22 @@ differently the table says so, and it did so seven times worth reading:
|
||||
| the empty-dialect test deletes the rows | neither DAO has a `@Delete`, and adding one for a test is a schema surface nobody asked for. It seeds a third dialect with nothing in it, which is also the truer fixture — a room defines a dialect before it has anything in it |
|
||||
|
||||
One more worth stating because it was a *drafting* error rather than a design
|
||||
one. The first draft of this plan cited `DialectScaffold`, `AfricanLanguages` and
|
||||
`docs/african-dialect-catalogue.md` as precedent. None of them are in this tree —
|
||||
that work is on `claude/african-dialect-convenience-de2f69`, unmerged — so the
|
||||
identity rule is now stated from the schema rather than cited, and Phase 1's
|
||||
parallel is `TranslationScaffold` and `ChapterScaffolding`, which do exist here.
|
||||
one, and because it resolved itself. The first draft cited `DialectScaffold`,
|
||||
`AfricanLanguages` and [african-dialect-catalogue.md](./african-dialect-catalogue.md)
|
||||
as precedent; at the time none of them were in the tree, so the citations were
|
||||
replaced with the reasoning stated directly. The dialect catalogue landed on
|
||||
`mantra` while this was being built, so all three are here now and the
|
||||
cross-references below are real again — but the restated reasoning is kept
|
||||
rather than turned back into links, because a plan that explains its own rule
|
||||
survives the file it borrowed it from being moved.
|
||||
|
||||
Two of them are worth following. `DialectScaffold` is the closest thing in the
|
||||
tree to Phase 1's `SubgroupOrigin`: pure, in `managers/`, derived from the rows
|
||||
rather than beside them. And `DialectScaffold.pendingIn` is Phase 7's
|
||||
`ceremoniesFor` solving the same problem one layer up — it reads the proposals
|
||||
already in flight so two admins looking at the same list do not propose the same
|
||||
forty dialects twice. The subgroup version of that race is two rooms for one
|
||||
project instead of eighty dialects, which is rarer and more expensive.
|
||||
|
||||
## What the four have in common
|
||||
|
||||
@@ -237,8 +248,8 @@ object SubgroupOrigin {
|
||||
}
|
||||
```
|
||||
|
||||
Parallel to `TranslationScaffold` and `ChapterScaffolding`: `managers/`, pure,
|
||||
tested in `commonTest`. `name` is trimmed and handed over bare — the `#` is added
|
||||
Parallel to `DialectScaffold`, `TranslationScaffold` and `ChapterScaffolding`:
|
||||
`managers/`, pure, tested in `commonTest`. `name` is trimmed and handed over bare — the `#` is added
|
||||
by `MarmotGroupName.of` where the name is used, twice, idempotently, exactly as
|
||||
the typed name is today.
|
||||
|
||||
@@ -492,7 +503,9 @@ ceremonies for it:
|
||||
reads the same list. A subgroup whose room this device does not hold still
|
||||
shows, because `Subgroup.room` is already nullable and already drawn that way.
|
||||
- **In flight.** `DkgSession` rows in that room with that origin whose stage is
|
||||
neither `FAILED` nor `COMPLETE`. Two admins both open the project's screen,
|
||||
neither `FAILED` nor `COMPLETE`. The same move `DialectScaffold.pendingIn`
|
||||
makes for the dialect catalogue, and for the same reason. Two admins both open
|
||||
the project's screen,
|
||||
both see no room, and the group gets two ceremonies and two rooms for one
|
||||
project — a race this feature would hit on first use, because the screen that
|
||||
invites the act is the screen that cannot see the act in progress. Making the
|
||||
|
||||
Reference in New Issue
Block a user