Build lane 11: stat blocks and character sheets (WIKI-19) #737

Closed
opened 2026-09-22 00:12:28 +00:00 by claude-bot · 10 comments
Collaborator

Build lane 11 of the v4.5.0 redesign. The brief is docs/design/v4.5.0-brief.md (§9, the lanes in order); the build plan is docs/design/v4.5.0-build-plan.md (the rollout rule, the design-system mapping, the journeys as tests). Umbrella: #366. Goes after lane 8 (it replaces the wiki's stat block) and can run beside 9 and 10.

Scope

Surfaces: WIKI-19 and its seams on WIKI-3, WIKI-7, TABLE-1, PREP-2, WIKI-15, ADMIN-11 and CAMP-8.
The drawing: /feedback/prototype/lane9 — the page the build must match, still by still.
Decisions: the brief §7, and each surface's header in redesign-surfaces/sources/headers.md.

Server changes it needs (in this lane or an earlier one)

  • sheet_definitions, character_sheets, character_sheet_versions with rolls_log; the definition validator; the sheet evaluator in both languages with shared fixtures, for creation and levelling (docs/design/character-sheets-spec.md §4, §5, §7 phase 1)
  • the first-party PF2e (ORC) and 5e (SRD 5.2.1, CC BY 4.0) packs with sheets/; entry fields per kind; LoreEntry.stats becomes the projection (D74)
  • phase 2 and 3 of the spec (Foundry both ways, Pathbuilder, conversion, the community packs) are their own issues later

Acceptance

  • Every placement coverage/lane9.py classifies as drawn or replaced is built as the prototype draws it; the script is the checklist. Rows it marks behaviour are tested, not drawn.
  • J7 (a player makes a character, the GM shows a block at the table, the character levels up) pass on desktop, on a phone and keyboard-only in the journeys suite (#726), with the axe scan clean (WCAG 2.2 AA, #367).
  • The brief's vocabulary (§5) throughout, from vocabulary.js; no page-level error destroys rendered content; every async operation shows progress and a next action on failure; disabled controls say why.
  • Main stays deployable after every PR of the lane: the new shell carries the old pages until each is replaced (the rollout rule).
  • The surfaces' headers in redesign-surfaces/sources/headers.md (Decided lines and the owner's review notes) are honoured; a departure is a decision change on #659 first.

Notes

  • Rolling during play is not built: it is Foundry's (D85).

🤖 Generated with Claude Code

**Build lane 11 of the v4.5.0 redesign.** The brief is `docs/design/v4.5.0-brief.md` (§9, the lanes in order); the build plan is `docs/design/v4.5.0-build-plan.md` (the rollout rule, the design-system mapping, the journeys as tests). Umbrella: #366. Goes after lane 8 (it replaces the wiki's stat block) and can run beside 9 and 10. ## Scope **Surfaces:** WIKI-19 and its seams on WIKI-3, WIKI-7, TABLE-1, PREP-2, WIKI-15, ADMIN-11 and CAMP-8. **The drawing:** `/feedback/prototype/lane9` — the page the build must match, still by still. **Decisions:** the brief §7, and each surface's header in `redesign-surfaces/sources/headers.md`. ## Server changes it needs (in this lane or an earlier one) - `sheet_definitions`, `character_sheets`, `character_sheet_versions` with `rolls_log`; the definition validator; the sheet evaluator in both languages with shared fixtures, for creation and levelling (`docs/design/character-sheets-spec.md` §4, §5, §7 phase 1) - the first-party PF2e (ORC) and 5e (SRD 5.2.1, CC BY 4.0) packs with `sheets/`; entry `fields` per kind; `LoreEntry.stats` becomes the projection (D74) - phase 2 and 3 of the spec (Foundry both ways, Pathbuilder, conversion, the community packs) are their own issues later ## Acceptance - [ ] Every placement `coverage/lane9.py` classifies as **drawn** or **replaced** is built as the prototype draws it; the script is the checklist. Rows it marks **behaviour** are tested, not drawn. - [ ] J7 (a player makes a character, the GM shows a block at the table, the character levels up) pass on desktop, on a phone and keyboard-only in the journeys suite (#726), with the axe scan clean (WCAG 2.2 AA, #367). - [ ] The brief's vocabulary (§5) throughout, from `vocabulary.js`; no page-level error destroys rendered content; every async operation shows progress and a next action on failure; disabled controls say why. - [ ] Main stays deployable after every PR of the lane: the new shell carries the old pages until each is replaced (the rollout rule). - [ ] The surfaces' headers in `redesign-surfaces/sources/headers.md` (Decided lines and the owner's review notes) are honoured; a departure is a decision change on #659 first. ## Notes - Rolling during play is not built: it is Foundry's (D85). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Author
Collaborator

An inheritance from lane 3: the CAMP-8 Foundry seam has no owner

Lane 3 has built Members & characters (CAMP-8, #768). Four of its drawn coverage rows are not built, and this is the lane whose scope names that seam.

IS-272 (members looked up by name in Foundry), IS-273 (AC · HP · Perception, and "Open in Foundry ↗"), IS-274 ("Synced 2 hours ago") and IS-275 (Refresh / "Synced 9 days ago" / "Fetching from Foundry…").

There is no server for any of it. The only Foundry code in the backend is app/reference/adapters/foundry.py, which imports reference content for content packs. Nothing fetches a Foundry actor, stores one, or records a sync time, and CampaignResponse has no Foundry connection field. D36 — "a Discord or Foundry action is never a dead button" — so the panel is absent rather than drawn dead. IS-276, the typed sheet link that stands in for it, is built.

Where it belongs is currently ambiguous, which is why this is here. This issue's scope includes "WIKI-19 and its seams on … CAMP-8", but its own notes say "phase 2 and 3 of the spec (Foundry both ways, Pathbuilder, conversion, the community packs) are their own issues later". D82 ("Foundry both ways and Pathbuilder in", owner, 2026-09-21) is phase 2. So on a plain reading these four rows are neither lane 3's, nor this lane's phase 1, nor any issue that exists yet.

Nothing needs deciding now — flagging it so that when phase 2 is cut as its own issue, these four rows are in its scope rather than being discovered later as a hole in CAMP-8. The member page is built to take the panel: the row layout leaves room for it and the sheet link is where it would sit.

🤖 Generated with Claude Code

## An inheritance from lane 3: the CAMP-8 Foundry seam has no owner Lane 3 has built **Members & characters** (CAMP-8, #768). Four of its drawn coverage rows are **not** built, and this is the lane whose scope names that seam. `IS-272` (members looked up by name in Foundry), `IS-273` (AC · HP · Perception, and "Open in Foundry ↗"), `IS-274` ("Synced 2 hours ago") and `IS-275` (Refresh / "Synced 9 days ago" / "Fetching from Foundry…"). **There is no server for any of it.** The only Foundry code in the backend is `app/reference/adapters/foundry.py`, which imports *reference content* for content packs. Nothing fetches a Foundry actor, stores one, or records a sync time, and `CampaignResponse` has no Foundry connection field. D36 — "a Discord or Foundry action is never a dead button" — so the panel is absent rather than drawn dead. `IS-276`, the typed sheet link that stands in for it, **is** built. **Where it belongs is currently ambiguous, which is why this is here.** This issue's scope includes "WIKI-19 and its seams on … CAMP-8", but its own notes say *"phase 2 and 3 of the spec (Foundry both ways, Pathbuilder, conversion, the community packs) are their own issues later"*. D82 ("Foundry both ways and Pathbuilder in", owner, 2026-09-21) is phase 2. So on a plain reading these four rows are neither lane 3's, nor this lane's phase 1, nor any issue that exists yet. Nothing needs deciding now — flagging it so that when phase 2 is cut as its own issue, **these four rows are in its scope** rather than being discovered later as a hole in CAMP-8. The member page is built to take the panel: the row layout leaves room for it and the sheet link is where it would sit. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Author
Collaborator

Addendum: Settings → Foundry (CAMP-16) is the second Foundry surface with no server

Following the CAMP-8 note above. Lane 3's last Settings PR leaves CAMP-16 unbuilt, for the same reason: every one of its rows needs a server that does not exist.

  • IS-268 Foundry server URL, API key, system selector
  • IS-269 set and clear the stored Foundry key (never returned)
  • IS-270 / IS-271 Test connection, with a clear pass/fail and an actionable error
  • IS-321 a scene paired with a Foundry map, in both directions

There are no Foundry fields on the campaign and no Foundry router at all — the only Foundry code in the backend is game_system.foundry_system_id and the content-pack reference adapter. IS-321 additionally needs scenes to be first-class (#689 / D33), which they are not yet.

D36: the section stays built: false in shell/settingsSections.js and is absent from the index and the Contents.

So phase 2's scope, whenever it is cut as an issue, now has nine drawn rows across two surfaces waiting on it: CAMP-8's four (IS-272–IS-275) and CAMP-16's five. The connection settings (IS-268–IS-271) are the natural first step, since everything else reads them.

🤖 Generated with Claude Code

## Addendum: Settings → Foundry (CAMP-16) is the second Foundry surface with no server Following the CAMP-8 note above. Lane 3's last Settings PR leaves **CAMP-16 unbuilt**, for the same reason: every one of its rows needs a server that does not exist. - `IS-268` Foundry server URL, API key, system selector - `IS-269` set and clear the stored Foundry key (never returned) - `IS-270` / `IS-271` Test connection, with a clear pass/fail and an actionable error - `IS-321` a scene paired with a Foundry map, in both directions There are **no Foundry fields on the campaign and no Foundry router at all** — the only Foundry code in the backend is `game_system.foundry_system_id` and the content-pack reference adapter. `IS-321` additionally needs scenes to be first-class (#689 / D33), which they are not yet. D36: the section stays `built: false` in `shell/settingsSections.js` and is absent from the index and the Contents. So phase 2's scope, whenever it is cut as an issue, now has **nine** drawn rows across two surfaces waiting on it: CAMP-8's four (`IS-272`–`IS-275`) and CAMP-16's five. The connection settings (`IS-268`–`IS-271`) are the natural first step, since everything else reads them. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Author
Collaborator

Correction to both notes above. I said the CAMP-8 and CAMP-16 Foundry rows "belong to nobody" and that phase 2 "has no issue yet". Both are wrong. The work is already planned, under the v5.0.0 – FoundryVTT Phase 1: Foundation milestone:

Drawn rows Owned by
IS-268, IS-269: URL, key, system selector #5, per-campaign Foundry connection settings
IS-270, IS-271: test connection, pass/fail #6, connection health check in campaign settings
IS-272–IS-275: CAMP-8's member-list panel #8, member-list Foundry sync: fetch, store, render, manual refresh
IS-321: scene ↔ map pairing #689 (D33), scenes first-class

So nothing is orphaned. Those rows arrive with v5.0.0, and the redesign ships without them, absent rather than drawn dead (D36). Lane 11's scope line about "its seams on … CAMP-8" is satisfied by #8 whenever v5.0.0 lands, not by lane 11 itself.

🤖 Generated with Claude Code

**Correction to both notes above.** I said the CAMP-8 and CAMP-16 Foundry rows "belong to nobody" and that phase 2 "has no issue yet". Both are wrong. The work is already planned, under the **v5.0.0 – FoundryVTT Phase 1: Foundation** milestone: | Drawn rows | Owned by | |---|---| | `IS-268`, `IS-269`: URL, key, system selector | **#5**, per-campaign Foundry connection settings | | `IS-270`, `IS-271`: test connection, pass/fail | **#6**, connection health check in campaign settings | | `IS-272`–`IS-275`: CAMP-8's member-list panel | **#8**, member-list Foundry sync: fetch, store, render, manual refresh | | `IS-321`: scene ↔ map pairing | #689 (D33), scenes first-class | So nothing is orphaned. Those rows arrive with v5.0.0, and the redesign ships without them, absent rather than drawn dead (D36). Lane 11's scope line about "its seams on … CAMP-8" is satisfied by #8 whenever v5.0.0 lands, not by lane 11 itself. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Author
Collaborator

Owner's answers, 2026-09-30. The build contract's Q1–Q10 (L1–L10 on the morning page) and L11 (the PF2e Hit Points wording) all went as recommended, so nothing already built changes. They are recorded as D243–D253 in sources/intro.md and CATALOGUE.md, and the prototype index and contract §5 note them. Branch docs/l11-decisions (dd0e3033); its PR opens when a CI slot frees.

One consequence to carry into the rest of the lane: D243 makes publishing the full Player Core and SRD 5.2.1 starters a release step for the owner, due before v4.5.1.

**Owner's answers, 2026-09-30.** The build contract's Q1–Q10 (L1–L10 on the morning page) and L11 (the PF2e Hit Points wording) all went as recommended, so nothing already built changes. They are recorded as **D243–D253** in `sources/intro.md` and `CATALOGUE.md`, and the prototype index and contract §5 note them. Branch `docs/l11-decisions` (dd0e3033); its PR opens when a CI slot frees. One consequence to carry into the rest of the lane: D243 makes publishing the full Player Core and SRD 5.2.1 starters a release step for the owner, due before v4.5.1.
Author
Collaborator

PR 11 #976 merged (2026-09-30, the sheet's hot half). It includes the lock-draft fix: a kept draft drops any fields the GM has locked since. The earlier red runs were runner trouble; the re-run was green.

PR 8 #977 is green but was refused as behind main; main is merged into it and it's being re-tested. PR 12 render-check fixes are committed (a7e90811; backend 818/818, the affected vitest files green) and being re-rendered. PR 13 is clean on a full run (backend 6519 passed, vitest 3448 passed) with PR 12 merged in. PR 15's name-match fallback is reverted (id match only), and it has a proper fix for the "adds a row" test race.

**PR 11 #976 merged** (2026-09-30, the sheet's hot half). It includes the lock-draft fix: a kept draft drops any fields the GM has locked since. The earlier red runs were runner trouble; the re-run was green. PR 8 #977 is green but was refused as behind main; main is merged into it and it's being re-tested. PR 12 render-check fixes are committed (a7e90811; backend 818/818, the affected vitest files green) and being re-rendered. PR 13 is clean on a full run (backend 6519 passed, vitest 3448 passed) with PR 12 merged in. PR 15's name-match fallback is reverted (id match only), and it has a proper fix for the "adds a row" test race.
Author
Collaborator

Merged on 2026-09-30: PR 8 #977, PR 12 #982, PR 13 #984 and PR 15 #985 (plus PR 11 #976 earlier). The D243–D253 decisions landed as #981. Lane 11 PRs 0–13 and 15 are now on main.

PR 14 (seams, Admin, demo seed wave A) is built on build/lane11-14-seams, with the seed merged in from build/lane11-14-seed. It is being re-tested after render-check fixes; its PR follows.

  • ADMIN-11: the definitions list and the upload report.
  • WIKI-15: "Add to a sheet ▾", with the new route #13 (GET /sheets/editable).
  • PREP-2: "Save as a page, with a block".
  • CAMP-8: Members' Open the sheet (sheet_id).
  • Seed wave A: 7 Amberwake PF2e characters, including Ossian exactly as drawn; 10 blocks; a rules creature card with its own HP; and Hollow & Ash (5e, D248), with Tam Ridley and four others and the owner a player.

Seed notes for later:

  • (a) Until PR 16's @ext.xp_awarded, PF2e XP reads 0 (Ossian 0/1,000, not the drawing's 340).
  • (b) Converted public legacy blocks come out as table audience, because that is what legacy.field_visibility does; the contract says party. To revisit.

PR 16 (Level up) is being built on build/lane11-16-levelup, off PR 15.

**Merged on 2026-09-30:** PR 8 #977, PR 12 #982, PR 13 #984 and PR 15 #985 (plus PR 11 #976 earlier). The D243–D253 decisions landed as #981. Lane 11 PRs 0–13 and 15 are now on main. **PR 14 (seams, Admin, demo seed wave A)** is built on `build/lane11-14-seams`, with the seed merged in from `build/lane11-14-seed`. It is being re-tested after render-check fixes; its PR follows. - ADMIN-11: the definitions list and the upload report. - WIKI-15: "Add to a sheet ▾", with the new route #13 (`GET /sheets/editable`). - PREP-2: "Save as a page, with a block". - CAMP-8: Members' Open the sheet (`sheet_id`). - Seed wave A: 7 Amberwake PF2e characters, including Ossian exactly as drawn; 10 blocks; a rules creature card with its own HP; and **Hollow & Ash** (5e, D248), with Tam Ridley and four others and the owner a player. Seed notes for later: - (a) Until PR 16's `@ext.xp_awarded`, PF2e XP reads 0 (Ossian 0/1,000, not the drawing's 340). - (b) Converted public legacy blocks come out as `table` audience, because that is what `legacy.field_visibility` does; the contract says party. To revisit. **PR 16 (Level up)** is being built on `build/lane11-16-levelup`, off PR 15.
Author
Collaborator

Progress, 1 Oct (15:05 UTC):

  • PR 14 merged as #986 (seams, Admin, demo seed wave A). On the way in: Members' "Open the sheet" reads the page's own sheet, the one source PR 15 put on main; the list's sheet_id stays as the contract has it. IS-463 and IS-464 are now classified in lane9.py, and in lane2.py and lane6b.py, which also failed on them.
  • PR 16 open as #987 (Level up), in CI. The five render faults are fixed and re-rendered at 390 and 1440 in both themes. The re-render found a sixth: What changes said "Every attribute +1" when four of six were boosted, and "Every other skill +1" when only trained skills rose. Fixed on the server; its wording is question L16 on the Questions page. L12–L15 are still open and #987 follows the recommendations.
  • PR 17 (J7 and demo seed wave B) is being built on build/lane11-17-j7. It also takes the two wave A seed caveats (PF2e XP reading 0; converted public legacy blocks coming out table rather than party).
  • Noted for PR 17: plain class: "Rogue" text on a PF2e sheet does not link the class record, so Hit Points lack the class figure. Start a character's picker sets it properly; seeded sheets must do the same.

After PR 17: lane 11's items go on the Redesign Review page, with the R3 (#980) answers.

Progress, 1 Oct (15:05 UTC): - **PR 14 merged** as #986 (seams, Admin, demo seed wave A). On the way in: Members' "Open the sheet" reads the page's own sheet, the one source PR 15 put on main; the list's `sheet_id` stays as the contract has it. IS-463 and IS-464 are now classified in `lane9.py`, and in `lane2.py` and `lane6b.py`, which also failed on them. - **PR 16 open** as #987 (Level up), in CI. The five render faults are fixed and re-rendered at 390 and 1440 in both themes. The re-render found a sixth: What changes said "Every attribute +1" when four of six were boosted, and "Every other skill +1" when only trained skills rose. Fixed on the server; its wording is question L16 on the Questions page. L12–L15 are still open and #987 follows the recommendations. - **PR 17** (J7 and demo seed wave B) is being built on `build/lane11-17-j7`. It also takes the two wave A seed caveats (PF2e XP reading 0; converted public legacy blocks coming out `table` rather than `party`). - Noted for PR 17: plain `class: "Rogue"` text on a PF2e sheet does not link the class record, so Hit Points lack the class figure. Start a character's picker sets it properly; seeded sheets must do the same. After PR 17: lane 11's items go on the Redesign Review page, with the R3 (#980) answers.
Author
Collaborator

Lane 11's build series is complete (1 Oct, 16:36 UTC). Every PR of the contract's plan, 0 to 17, is on main (46233e4c). Merged today: #986 (PR 14), #987 (PR 16), #989 (PR 17).

What landed today

  • PR 16, Level up (#987). Five render faults fixed and re-rendered at 390 and 1440 in both themes. Found on the way and fixed: What changes said "Every attribute +1" when four of six moved; it now says "every" only when true, else names up to four or counts them.
  • PR 17, J7 and demo seed wave B (#989). J7 passes on desktop, phone and keyboard with axe, in its own campaign (The Blackfen Warrant). The whole journeys suite: 151 passed, 11 designed skips. Wave B: Ossian at exactly 1,000 XP ("Level 7 is waiting"), Tam's level made by Level up with its die and milestone, Perrin Loake and Corwin Hale begun and left.
  • Bugs J7 and the seed found, fixed in #989: a sheet could report "Someone else changed this sheet" about your own save, after leaving it mid-save (every sheet, not only creation); a retired character kept collecting party XP; three buttons on the Ancestry step shared one name.

Wave A's two seed caveats

  • PF2e XP reading 0: settled; sheets carry what their levels spent and read the ledger.
  • Converted public blocks come out table, not party: left as built, on purpose (PR 7's AUDIENCE_OF, the merged migration and a test all hold it; party would hide a block from a member with no active character). The contract row is noted as differing. Question L17.

Open for the owner (Questions page, the build follows the recommendations): L12–L16 (Level up), L17 (converted blocks), L18 (a retired character's party XP), L19 (class feat step offers other classes' feats; a follow-up if (b)).

Follow-up closed: #988 (reads moving updated_at) was not reproducible.

Next: lane 11 is on the Redesign Review page (21 pieces), with the R3 (#980) re-checks. It needs a dev deploy and re-seed before the owner can review it; that waits for the owner's OK. This issue stays open for that review.

**Lane 11's build series is complete** (1 Oct, 16:36 UTC). Every PR of the contract's plan, 0 to 17, is on main (46233e4c). Merged today: #986 (PR 14), #987 (PR 16), #989 (PR 17). **What landed today** - **PR 16, Level up (#987).** Five render faults fixed and re-rendered at 390 and 1440 in both themes. Found on the way and fixed: What changes said "Every attribute +1" when four of six moved; it now says "every" only when true, else names up to four or counts them. - **PR 17, J7 and demo seed wave B (#989).** J7 passes on desktop, phone and keyboard with axe, in its own campaign (The Blackfen Warrant). The whole journeys suite: 151 passed, 11 designed skips. Wave B: Ossian at exactly 1,000 XP ("Level 7 is waiting"), Tam's level made by Level up with its die and milestone, Perrin Loake and Corwin Hale begun and left. - **Bugs J7 and the seed found, fixed in #989:** a sheet could report "Someone else changed this sheet" about your own save, after leaving it mid-save (every sheet, not only creation); a retired character kept collecting party XP; three buttons on the Ancestry step shared one name. **Wave A's two seed caveats** - PF2e XP reading 0: settled; sheets carry what their levels spent and read the ledger. - Converted public blocks come out `table`, not `party`: left as built, on purpose (PR 7's `AUDIENCE_OF`, the merged migration and a test all hold it; `party` would hide a block from a member with no active character). The contract row is noted as differing. Question L17. **Open for the owner** (Questions page, the build follows the recommendations): L12–L16 (Level up), L17 (converted blocks), L18 (a retired character's party XP), L19 (class feat step offers other classes' feats; a follow-up if (b)). **Follow-up closed:** #988 (reads moving `updated_at`) was not reproducible. **Next:** lane 11 is on the Redesign Review page (21 pieces), with the R3 (#980) re-checks. It needs a dev deploy and re-seed before the owner can review it; that waits for the owner's OK. This issue stays open for that review.
Author
Collaborator

The owner answered L12–L19 on 2026-10-01; recorded as D254–D261 in PR #1012 (merged, main 9112e245), with the eight answers from the issue work (D262–D269).

Question Answer Effect
D254 L12, a party award and a character in no party counts for them as built
D255 L13, who levels a character in a milestone campaign the GM marks a level as waiting, the player levels up changes what was built: #1007
D256 L14, a GM lock on Level stops the player as built
D257 L15, a starting XP the GM sets no new field as built
D258 L16, What changes wording "every" only when true; name four, count more as built
D259 L17, converted public stat blocks the table as built; the build contract's §3.1 row is corrected
D260 L18, a retired character's party XP none once they've left as built
D261 L19, other classes' feats shown disabled, with the reason follow-up: #1008

Lane 11 stays open for the owner's review of dev. #1007 and #1008 are being built now.

**The owner answered L12–L19 on 2026-10-01; recorded as D254–D261 in PR #1012** (merged, main `9112e245`), with the eight answers from the issue work (D262–D269). | | Question | Answer | Effect | |---|---|---|---| | D254 | L12, a party award and a character in no party | counts for them | as built | | **D255** | L13, who levels a character in a milestone campaign | **the GM marks a level as waiting, the player levels up** | **changes what was built: #1007** | | D256 | L14, a GM lock on Level | stops the player | as built | | D257 | L15, a starting XP the GM sets | no new field | as built | | D258 | L16, What changes wording | "every" only when true; name four, count more | as built | | D259 | L17, converted public stat blocks | the table | as built; the build contract's §3.1 row is corrected | | D260 | L18, a retired character's party XP | none once they've left | as built | | **D261** | L19, other classes' feats | **shown disabled, with the reason** | **follow-up: #1008** | Lane 11 stays open for the owner's review of dev. #1007 and #1008 are being built now.
Author
Collaborator

Lane 11 is signed off. The owner reviewed it on dev on 10 and 11 October (13 pieces fine, 7 to change; #1121), re-checked the fixes on v4.5.0-rc11 on 12 October, marked every piece "Looks right" and signed the lane: "I think you nailed it. Nice work!". Follow-ups from the review are #1121 (closed) and #1135. Closing.

**Lane 11 is signed off.** The owner reviewed it on dev on 10 and 11 October (13 pieces fine, 7 to change; #1121), re-checked the fixes on v4.5.0-rc11 on 12 October, marked every piece "Looks right" and signed the lane: "I think you nailed it. Nice work!". Follow-ups from the review are #1121 (closed) and #1135. Closing.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/Quest-Board#737
No description provided.