Decisions of 2026-08-20 (evening), recorded
Six answers from Nick: F6 is a strict 2.0 screens (build task, chrome compresses); hold stays reachable from any status (T7.3 question closed); CR-014 bodies get deep links and may name customer context but never embed confidential document content; CR-008 merged-PDF becomes KNOWN-ISSUES 3 (decided, not deferred by accident); BL-023 becomes D12, the productivity factor on the dashboard; BL-020 closed as decided-keep. Housekeeping (BL-021, BL-024, BL-025, S13) approved to build on this branch. Items: F6, CR-008, CR-014, D12, BL-020, BL-022, BL-023. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,6 +12,7 @@ Close an entry by deleting it in the same commit that fixes it.
|
|||||||
|---|-------|----------|--------|--------|
|
|---|-------|----------|--------|--------|
|
||||||
| 1 | XSS via SOP discipline names in the WP creator | Medium (internal), High if externally reachable | 2026-08-05 | Open |
|
| 1 | XSS via SOP discipline names in the WP creator | Medium (internal), High if externally reachable | 2026-08-05 | Open |
|
||||||
| 2 | Archived projects: the two big apps don't grey out their own controls | Low | 2026-08-05 | Open |
|
| 2 | Archived projects: the two big apps don't grey out their own controls | Low | 2026-08-05 | Open |
|
||||||
|
| 3 | Export is not one merged PDF; drawings ride along as a list | Low | 2026-08-20 | Open — decided |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -161,3 +162,35 @@ save/issue controls, or add a boot check in each app that disables them and show
|
|||||||
read-only notice inline. Decide separately how the embedded creator
|
read-only notice inline. Decide separately how the embedded creator
|
||||||
(`wp-creation-index.html`) surfaces it, since it runs in an iframe where the shared
|
(`wp-creation-index.html`) surfaces it, since it runs in an iframe where the shared
|
||||||
app bar — and therefore the banner — is deliberately skipped.
|
app bar — and therefore the banner — is deliberately skipped.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Export is not one merged PDF; drawings ride along as a list
|
||||||
|
|
||||||
|
**Files:** `html/wp-creation-app.js` (the T9.1 export walk), `CR-008`
|
||||||
|
**Decided:** 2026-08-20, by Nick — "add this to known issues."
|
||||||
|
|
||||||
|
### What is wrong
|
||||||
|
|
||||||
|
CR-008 asked for the work package "as one document." What shipped (T9.1)
|
||||||
|
renders every section inline — including images — and lists PDF drawing
|
||||||
|
attachments with links, rather than merging their pages into a single PDF.
|
||||||
|
|
||||||
|
### What it costs
|
||||||
|
|
||||||
|
A crew printing the package gets the form and the inline images in one pass,
|
||||||
|
but linked PDF drawings are separate opens/prints. For field hand-offs that
|
||||||
|
want literally one file, someone stitches it manually.
|
||||||
|
|
||||||
|
### Why it is still open
|
||||||
|
|
||||||
|
Real PDF merging needs either a server-side PDF library (a new dependency and
|
||||||
|
a render pipeline for arbitrary uploaded PDFs) or a client-side one (heavy,
|
||||||
|
and the creator is deliberately dependency-free). The recommendation made at
|
||||||
|
T9.1 — inline images + listed PDFs — was accepted as the shipped behaviour.
|
||||||
|
|
||||||
|
### What closing it takes
|
||||||
|
|
||||||
|
A server-side merge endpoint (e.g. pypdf) that concatenates the rendered
|
||||||
|
package with each attached PDF, streamed back as one download; plus a size
|
||||||
|
ceiling consistent with D8's upload limits. One task, one new dependency.
|
||||||
|
|||||||
@@ -447,7 +447,7 @@ deliberately deferred.
|
|||||||
what is left is `field.html`'s `.fld-search`, and `T9.5` should re-measure that one the
|
what is left is `field.html`'s `.fld-search`, and `T9.5` should re-measure that one the
|
||||||
same way rather than inheriting this entry's wording.
|
same way rather than inheriting this entry's wording.
|
||||||
|
|
||||||
### BL-020 — Switching from the SOP wizard to the creator can now prompt to leave
|
### BL-020 — CLOSED (decided 2026-08-20: keep it) — the wizard-exit prompt stays
|
||||||
|
|
||||||
- **Found during:** T7.1
|
- **Found during:** T7.1
|
||||||
- **Where:** `html/wp-autosave.js:96` (the `beforeunload` guard), reached from the
|
- **Where:** `html/wp-autosave.js:96` (the `beforeunload` guard), reached from the
|
||||||
@@ -491,7 +491,7 @@ deliberately deferred.
|
|||||||
- **Suggested wave or follow-up:** wave 9 backlog sweep (`T9.9`), verified with
|
- **Suggested wave or follow-up:** wave 9 backlog sweep (`T9.9`), verified with
|
||||||
the `tests/qa_gate_check.py` sink pattern.
|
the `tests/qa_gate_check.py` sink pattern.
|
||||||
|
|
||||||
### BL-022 — F6's "roughly two screen heights": 2.17 against a strict 2.0
|
### BL-022 — DECIDED 2026-08-20 (strict 2.0; chrome compressed, closed by the F6 task on feat/wp-suite-r3-housekeeping)
|
||||||
|
|
||||||
- **Found during:** T7.2, re-measured at the wave 7 exit
|
- **Found during:** T7.2, re-measured at the wave 7 exit
|
||||||
- **Where:** `html/wp-creation-index.html` page chrome; `tests/form_structure_check.py`
|
- **Where:** `html/wp-creation-index.html` page chrome; `tests/form_structure_check.py`
|
||||||
@@ -510,7 +510,7 @@ deliberately deferred.
|
|||||||
becomes a small T9 task. The strict check stays red so the question cannot be
|
becomes a small T9 task. The strict check stays red so the question cannot be
|
||||||
forgotten.
|
forgotten.
|
||||||
|
|
||||||
### BL-023 — Productivity factor: actual against estimated hours
|
### BL-023 — CLOSED into D12 (decided 2026-08-20: the dashboard) — see decisions-2026-08-20.md
|
||||||
|
|
||||||
- **Found during:** T9.2 (logged as that task's done-when requires)
|
- **Found during:** T9.2 (logged as that task's done-when requires)
|
||||||
- **Where:** future — dashboard / rollups
|
- **Where:** future — dashboard / rollups
|
||||||
|
|||||||
@@ -53,3 +53,50 @@ Cody's behaviour and moves it onto the R2 idiom:
|
|||||||
a malformed URL's error text can quote password fragments.
|
a malformed URL's error text can quote password fragments.
|
||||||
- **Unconfigured is not an error.** Local dev and the demo DB run with the picker in
|
- **Unconfigured is not an error.** Local dev and the demo DB run with the picker in
|
||||||
manual mode; nothing in the suite requires the catalog to exist.
|
manual mode; nothing in the suite requires the catalog to exist.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# The evening decisions (same day)
|
||||||
|
|
||||||
|
Six answers from Nick, given in one message. Recorded verbatim in intent; each
|
||||||
|
names the item it settles. One new item id is assigned (D12); everything else
|
||||||
|
amends or closes an existing question.
|
||||||
|
|
||||||
|
## The answers
|
||||||
|
|
||||||
|
1. **BL-022 — "strict 2.0."** F6/D3's "roughly two screen heights" means
|
||||||
|
**2.0**, not 2.17. The overage is chrome (~154px: the context bar, the
|
||||||
|
release banner's spacing, header/toolbar padding), so this becomes a build
|
||||||
|
task: compress the chrome without deleting what other items placed
|
||||||
|
deliberately (A2's one-warning banner and the SOP identity strip STAY —
|
||||||
|
they get denser, not removed). `form_structure_check`'s red check flips
|
||||||
|
green by the page actually fitting, not by moving the bar.
|
||||||
|
|
||||||
|
2. **Hold from Draft/Scheduled — "no, leave as is."** The hold branch stays
|
||||||
|
reachable from any status. T7.3's raised question is closed; the shipped
|
||||||
|
behaviour is the decided behaviour.
|
||||||
|
|
||||||
|
3. **CR-014 email bodies — links back to the system; customer context is
|
||||||
|
allowed, confidential documents are not.** The T7.6-era rule ("no customer
|
||||||
|
IP in emails") is refined: naming the customer, the project, the package
|
||||||
|
and where the work happens is fine; what must never be embedded is
|
||||||
|
confidential document CONTENT (drawings, attachments, scope text). Every
|
||||||
|
work-package email carries a deep link back to the package in the system.
|
||||||
|
Build task, sink-verified.
|
||||||
|
|
||||||
|
4. **CR-008 merged-PDF export — known issue, not a build.** The export keeps
|
||||||
|
inline images + listed PDF attachments. Recorded as KNOWN-ISSUES.md §3 so
|
||||||
|
the limitation is a commitment, not a surprise.
|
||||||
|
|
||||||
|
5. **BL-023 → D12 — the productivity factor gets a spot on the dashboard.**
|
||||||
|
Placement delegated ("find a spot on the dashboard"). New item id **D12**:
|
||||||
|
actual ÷ estimated hours, from data the rollup endpoints already carry.
|
||||||
|
|
||||||
|
6. **BL-020 — "keep it."** The unsaved-work prompt on leaving the wizard
|
||||||
|
stays. Closed as decided-keep; no build.
|
||||||
|
|
||||||
|
Plus: **"do what's left on the housekeeping"** — BL-021 (the
|
||||||
|
critical-reopen recipient bug), BL-024 (the 21 console/launcher dialogs onto
|
||||||
|
the shared kit), BL-025 (the last second-blue tint + the widened check), and
|
||||||
|
S13 (seed_demo sign-in) are approved to build now, one commit each, on
|
||||||
|
`feat/wp-suite-r3-housekeeping`.
|
||||||
|
|||||||
Reference in New Issue
Block a user