spectoflow 0.17.0 → 0.17.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spectoflow",
3
- "version": "0.17.0",
3
+ "version": "0.17.1",
4
4
  "description": "Agent-agnostic spec-driven development framework + real-time local control plane. Markdown artifacts, intent router, workflow-by-scope.",
5
5
  "keywords": [
6
6
  "spec-driven-development",
@@ -46,7 +46,7 @@ html[data-design="console"] .stage { position:relative; z-index:1; }
46
46
 
47
47
  /* ============ LEFT ICON RAIL ============ */
48
48
  html[data-design="console"] nav.tabs#tabs {
49
- position:fixed; left:0; top:0; bottom:0; z-index:30; width:var(--cx-rail-w);
49
+ position:fixed; left:0; top:0; bottom:0; height:100vh; z-index:30; width:var(--cx-rail-w);
50
50
  display:flex; flex-direction:column; align-items:center; gap:6px;
51
51
  padding:16px 10px; overflow-y:auto; overflow-x:hidden; max-width:none;
52
52
  background:color-mix(in srgb,var(--surface) 84%,transparent); backdrop-filter:blur(10px);
@@ -191,3 +191,7 @@ html[data-design="console"][data-theme="light"] .cx-cmdk { background:rgba(15,23
191
191
  html[data-design="console"] .wf-strip .wf-arrow::after,
192
192
  html[data-design="console"] .flatlist li.run-live::before { animation:none; display:none; }
193
193
  }
194
+
195
+ /* chat FAB — solid brand accent so it reads on the light set too (was surface-2, near-invisible) */
196
+ html[data-design="console"] .chat-fab { background:var(--signal); color:var(--on-accent); border-color:transparent; box-shadow:0 10px 26px color-mix(in srgb,var(--signal) 40%,transparent); }
197
+ html[data-design="console"] .chat-fab:hover { transform:translateY(-2px) scale(1.04); }
@@ -114,9 +114,27 @@
114
114
  if (searchBtn) { searchBtn.remove(); searchBtn = null; }
115
115
  }
116
116
 
117
+ // The topbar has a backdrop-filter, which makes it the containing block of any position:fixed
118
+ // descendant — so a "fixed" rail inside it would be clipped to the header's height and scroll
119
+ // away. Dock the tab nav directly under <body> while this design is on; put it back on leave.
120
+ var tabsHome = null;
121
+ function dockRail() {
122
+ var t = document.getElementById('tabs');
123
+ if (!t || t.parentElement === document.body) return;
124
+ tabsHome = { parent: t.parentElement, next: t.nextSibling };
125
+ document.body.appendChild(t);
126
+ }
127
+ function undockRail() {
128
+ var t = document.getElementById('tabs');
129
+ if (!t || !tabsHome) return;
130
+ tabsHome.parent.insertBefore(t, tabsHome.next);
131
+ tabsHome = null;
132
+ }
133
+
117
134
  function activate() {
118
135
  if (active) return;
119
136
  active = true;
137
+ dockRail();
120
138
  injectButton();
121
139
  document.addEventListener('keydown', onKeydown);
122
140
  }
@@ -126,6 +144,7 @@
126
144
  active = false;
127
145
  close();
128
146
  removeButton();
147
+ undockRail();
129
148
  document.removeEventListener('keydown', onKeydown);
130
149
  }
131
150
 
@@ -205,3 +205,10 @@ html[data-design="orbit"] .ob-item .ob-bd {
205
205
  }
206
206
  html[data-design="orbit"] .ob-item { opacity:1; transform:rotate(var(--a)) translate(98px) rotate(calc(-1*var(--a))); }
207
207
  }
208
+
209
+ /* chat FAB — amber brand accent (the teal is the dial's); readable on both sets */
210
+ html[data-design="orbit"] .chat-fab { background:var(--cool); color:#1a1206; border-color:transparent; box-shadow:0 10px 26px color-mix(in srgb,var(--cool) 40%,transparent); }
211
+ html[data-design="orbit"] .chat-fab:hover { transform:translateY(-2px) scale(1.04); }
212
+ /* pipeline connectors — keep the line itself visible on the dark set (it was line-on-ground, too faint) */
213
+ html[data-design="orbit"] .wf-arrow { background:color-mix(in srgb,var(--signal) 35%,var(--line)); }
214
+ html[data-design="orbit"] .wf-arrow.off { background:var(--line); }