DUNIN7 · LOOMWORKS · RECORD
record.dunin7.com
Status Current
Path change-requests/composer-placement-and-message-order-change-request-v0_2.md

Composer placement and message order change-request

Version. 0.2 Date. 2026-06-02 Author. Claude (amendment), under Operator (Marvin Percival) direction. Repository. DUNIN7/loomworks (Operator Layer frontend). Amends. composer-placement-and-message-order-change-request-v0_1.md (2026-05-19), which remains in force in full except for the single decision amended below. v0.1 is preserved unchanged.


Scope of this amendment

v0.2 amends exactly one decision from v0.1 — the activity-ribbon placement in §C.2 — to make the specification agree with the shipped code. Everything else in v0.1 (composer-at-top reshape §C.2 body, message-order setting §A/§B, auto-expand §C.3, tests §C.5, methodology §G, etc.) stands unchanged.

The change has shipped; v0.1's text no longer described the code. This amendment closes that gap and records the trajectory (header placement chosen first, then moved) per the corrections-not-smoothed discipline.

Seed check (gating). The current Loomworks seed — highest is candidate-seeds/loomworks/loomworks-candidate-seed-v0_9.md — is silent on activity-ribbon / activity-observability placement. Per the seed's own governance rule ("the seed names the commitments; the specification names the detail; when the seed is silent on a topic the specification covers, the specification governs"), ribbon placement is a specification/CR-level concern. This is therefore a CR amendment, not a seed-level change.


§C.2 — Activity-ribbon placement (AMENDED)

Superseded prior decision (v0.1) — retained, not deleted

> ~~The composer renders at the top of the center area, just below the conversation header (title + metadata line + activity ribbon).~~ (v0.1 §C.2, line 163 — the parenthetical placing the ribbon in the header) > > ~~The activity ribbon stays in the conversation header in both modes — its position is independent of the composer/conversation order.~~ (v0.1 §C.2, line 177)

This header placement was the position v0.1 specified, and it was the placement a prior build deliberately realigned to (engine §F was mis-cited earlier; the authoritative stub spec is the in-engagement-surface-fill-in CR). It is superseded by the decision below.

New decision (v0.2)

The activity ribbon is anchored to the TOP OF THE TRANSCRIPT region, not the conversation header. Specifically:


Why the change was made (trajectory)

  1. Header placement (v0.1, realigned to first). The ribbon was placed in the conversation header, pinned to the header's bottom edge (top:100%). In the active state this dropped the ribbon onto the composer, visually covering the message input and Send button — the input the Operator is about to use. (pointer-events:none kept the controls clickable, but they were visually obscured.) Confirmed in the rendered browser.
  2. Move to transcript-top. Anchoring the ribbon to the top of the transcript region, over the low-information date-divider area, clears the composer entirely while still surfacing the "drafting in progress" indicator prominently.

Rejected alternatives (and why)


Consequences locked in


Guard tests (shipped with the change)


Implementing commits (DUNIN7/loomworks)

(Prior related: d815555 engine-§F comment citation fix; 01c3b77 idle gate.)


Document trailer

This amendment records spec/code agreement for the activity-ribbon placement only. v0.1 governs all other decisions. Filed in loomworks-record/change-requests/. NB: v0.1 currently resides only in ~/Downloads and should be landed alongside this file so the superseded and current decisions live together in the record.