create-pmos 0.7.3 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,6 +4,13 @@
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
6
6
  <title>PMOS Terminal Workspace</title>
7
+ <!-- The terminal's face is preloaded, not left to be discovered. An @font-face is only fetched when
8
+ something first RENDERS in it, which for Plex Mono is about the same moment app.js constructs
9
+ the first xterm — and xterm measures its cell from whatever face is resolved at construction.
10
+ Starting the fetch here, during head parse, means the real metrics are in place before the
11
+ first terminal exists. app.js also re-fits on document.fonts.ready as the backstop. -->
12
+ <link rel="preload" href="/vendor/ibm-plex-mono-400.woff2" as="font" type="font/woff2" crossorigin />
13
+ <link rel="preload" href="/vendor/ibm-plex-mono-700.woff2" as="font" type="font/woff2" crossorigin />
7
14
  <link rel="stylesheet" href="/vendor/xterm.css" />
8
15
  <link rel="stylesheet" href="/styles.css" />
9
16
  </head>
@@ -65,6 +72,12 @@
65
72
  </div>
66
73
  <p class="hint">or just run <code>pmos</code> inside that repo</p>
67
74
  </form>
75
+ <!-- Worktrees the workspace made are folders the PM has to live with, so the app that
76
+ creates them is the app that clears them. Hidden entirely until there is one. -->
77
+ <details class="wtbox" id="wtBox" hidden>
78
+ <summary id="wtSummary">worktrees</summary>
79
+ <div id="wtList"></div>
80
+ </details>
68
81
  </div>
69
82
  </section>
70
83
 
@@ -83,11 +96,16 @@
83
96
  <button type="button" data-agent="codex" role="radio" aria-checked="false">codex</button>
84
97
  </div>
85
98
  <div class="brwrap" id="newBranchWrap" hidden>
86
- <label class="lbl" for="newBranch">branch</label>
99
+ <label class="lbl" for="newBranch">branch <span class="opt">— optional</span></label>
87
100
  <select id="newBranch" aria-label="Branch to run this session on"></select>
88
101
  <input id="newBranchName" type="text" hidden placeholder="new-branch-name" aria-label="New branch name" autocomplete="off" spellcheck="false" />
89
- <p class="hint warn">the branch is shared by every session in this repo — switching or creating one moves them all</p>
102
+ <label class="chk" id="newIsolateWrap" hidden>
103
+ <input type="checkbox" id="newIsolate" checked />
104
+ <span>give it its own folder — leave running sessions alone</span>
105
+ </label>
106
+ <p class="hint" id="newBranchHint"></p>
90
107
  </div>
108
+ <p class="hint" id="newNoGit" hidden>no git in this folder — nothing to branch, the session just starts here</p>
91
109
  <div class="row">
92
110
  <button type="submit" class="go">start session</button>
93
111
  <button type="button" class="quiet" id="newCancel">cancel</button>
@@ -144,12 +162,14 @@
144
162
 
145
163
  <!-- Scratchpad: a collapsible drawer at the BOTTOM of the terminal column. Folded it is a thin
146
164
  bar; open it takes a bounded slice below the terminal — it never overlays the tabs, the
147
- terminal, or the document rail. Persists per workspace. -->
165
+ terminal, or the document rail. Persists PER TAB: each session keeps its own staging
166
+ text, and the label below says which tab you are staging for. -->
148
167
  <section class="scratch" id="scratch" data-open="false" aria-label="Scratchpad">
149
168
  <div class="scratch-head">
150
169
  <button type="button" class="scratch-toggle" id="scratchToggle" aria-expanded="false" aria-controls="scratchText">
151
170
  <span class="chev" aria-hidden="true">▴</span> scratchpad
152
171
  </button>
172
+ <span class="scratch-who" id="scratchWho"></span>
153
173
  <span class="scratch-status" id="scratchStatus" role="status"></span>
154
174
  <span class="scratch-actions">
155
175
  <button type="button" class="mini" id="scratchCopy" title="Copy to clipboard">copy</button>
@@ -187,7 +207,10 @@
187
207
  <div class="cap">
188
208
  <button class="fold" id="docFold" aria-expanded="true" title="Hide the document"><span class="chev" aria-hidden="true">▾</span>document</button>
189
209
  <span class="crumb" id="crumb"></span>
190
- <button class="mini docrev" id="docReview" hidden title="Have an agent review this document">review</button>
210
+ <button class="mini docrev" id="docEdit" hidden title="Edit this document">edit</button>
211
+ <button class="mini docrev" id="docSave" hidden title="Save (⌘S)">save</button>
212
+ <button class="mini docrev" id="docCancel" hidden title="Discard changes">cancel</button>
213
+ <button class="mini docrev" id="docHistory" hidden title="Changes you have made to this document">history</button>
191
214
  <button class="x" id="closeDoc" aria-label="Close document">✕</button>
192
215
  </div>
193
216
  <div class="pane-body doc-body" id="docBody" tabindex="0"></div>
@@ -257,9 +280,9 @@
257
280
  <script src="/vendor/addon-web-links.js"></script>
258
281
  <script src="/lib/preview-kind.js"></script>
259
282
  <script src="/lib/layout.js"></script>
260
- <!-- Both sides of the review must agree about what is applyable and what a change produces, so the
261
- browser loads the SAME modules the server requires — the client never re-derives either. -->
262
- <script src="/lib/finding-contract.js"></script>
283
+ <script src="/lib/session-state.js"></script>
284
+ <!-- The editor computes its diff with the SAME module the server saves through, so what you see
285
+ while editing and what the server writes can never disagree. -->
263
286
  <script src="/lib/apply-change.js"></script>
264
287
  <script src="/app.js"></script>
265
288
  </body>