Skip to content

Commit a5c8df6

Browse files
committed
Release 0.1.8.1
1 parent 21d6a3c commit a5c8df6

26 files changed

Lines changed: 327 additions & 49 deletions

File tree

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,18 @@ Living plan (what’s next): [`doc/roadmap.md`](doc/roadmap.md).
1212

1313
## [Unreleased]
1414

15+
## [0.1.8.1] — 2026-09-07
16+
17+
Copilot rail starters can fill the chat input without sending.
18+
19+
### Added
20+
21+
- Copilot rail **deferred example questions**`copilot_rail(..., deferred=True)` copies the question into the chat input on click instead of sending it. Per-item override: `{"title", "question", "deferred": True}` (or a `(title, question, deferred)` triple). Starters stay visible until a turn is actually sent.
22+
23+
### Changed
24+
25+
- BI → Semantic (`make bi-semantic`) passes `deferred=True` so starter clicks fill the input for edit-then-send. App Builder still sends on click.
26+
1527
## [0.1.8] — 2026-09-06
1628

1729
App Builder for business users, plus rail starter questions and Display config.

ID.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
| **Asset Owner** | Laurent Letourmy — laurent.letourmy@devoteam.com |
1010
| **Contributors** | DevoteamSP / streamlit-coco contributors |
1111
| **Created** | 2026-07 |
12-
| **Last updated** | 2026-09-06 |
12+
| **Last updated** | 2026-09-07 |
1313
| **Confidentiality** | Public |
1414

1515
---
@@ -28,7 +28,7 @@
2828

2929
## Maturity Justification
3030

31-
**Current level**: N0 → closing alpha toward N1 (PyPI `0.1.8`)
31+
**Current level**: N0 → closing alpha toward N1 (PyPI `0.1.8.1`)
3232

3333
- Clients where used: 0 (alpha). Internal: Data Product Studio + Data Product Forge
3434
- Consultants trained: 0 additional. Enablement pack + workshop W01 shipped in `0.1.6`; registry `consultants_enabled: 1` is the asset owner.
@@ -42,7 +42,7 @@
4242
- [x] Consultant enablement pack (`doc/training/`) + workshop W01 (`0.1.6`)
4343
- [x] Owner + KPIs on this sheet
4444
- [x] Security threat model + audit pack (`doc/security/`) — SEC-01 / SEC-02 still open for v0.2
45-
- [x] Marketing one-pager (`doc/marketing/one-pager.md`) — refreshed for `0.1.8`
45+
- [x] Marketing one-pager (`doc/marketing/one-pager.md`) — refreshed for `0.1.8.1`
4646
- [ ] 1 additional consultant trained via W01 (pack exists; count still 0 beyond owner)
4747
- [ ] Remaining live UI checklists — core panel / approvals / tools / structured / CCv2 signed off; copilot-rail still pending
4848
- [ ] 2+ client usages

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ You own the page. CoCo owns the session. `copilot_rail()` sits in the product an
99

1010
![BI → Semantic — Preview of the generated Streamlit app beside the Copilot rail](doc/screenshot.png)
1111

12-
> Alpha `0.1.8` — API may still move. Star / watch the repo if you plan to ship on it.
12+
> Alpha `0.1.8.1` — API may still move. Star / watch the repo if you plan to ship on it.
1313
1414
**Repo:** [github.com/lletourmy/streamlit-coco](https://github.com/lletourmy/streamlit-coco) *(temporary PyPI source)* · **Dev:** [streamlit-coco-dev](https://github.com/DevoteamSP/streamlit-coco-dev)
1515
**SDK docs:** [Cortex Code Agent SDK](https://docs.snowflake.com/en/user-guide/cortex-code-agent-sdk/cortex-code-agent-sdk)
@@ -37,7 +37,7 @@ Also: headless `query()` for scripts and CI, plus a legacy all-in-one `chat()` i
3737
- **You need Slack, a hosted CoCo SaaS, or a product MCP server.** Out of scope. MCP *passthrough* via `mcp_servers` already works.
3838
- **You would not type the SQL yourself on this role.** The agent uses the Snowflake role in the connection — do not wire `ACCOUNTADMIN` into a web UI.
3939

40-
Alpha `0.1.8` — APIs may still move. Prefer `panel()` + your own input; `chat()` is the legacy all-in-one.
40+
Alpha `0.1.8.1` — APIs may still move. Prefer `panel()` + your own input; `chat()` is the legacy all-in-one.
4141

4242
---
4343

@@ -172,7 +172,7 @@ Legacy `chat()` is the same session, with a CCv2 frontend instead of native widg
172172
| Capability | Entry points |
173173
| --- | --- |
174174
| Native panel + approvals | `panel()`, `chat_input_bar()`, `render_approvals()` |
175-
| Copilot rail (right-column Copilot) | `copilot_rail()`, `transcript_display_config()`, `example_questions=`[`doc/features/copilot-rail/`](doc/features/copilot-rail/) |
175+
| Copilot rail (right-column Copilot) | `copilot_rail()`, `transcript_display_config()`, `example_questions=` / `deferred=` [`doc/features/copilot-rail/`](doc/features/copilot-rail/) |
176176
| App viewer (child Streamlit iframe) | `app_viewer()`, `default_fix_prompt()`[`doc/features/app-viewer/`](doc/features/app-viewer/) |
177177
| Tool cards & AskUser / plan UI | see [`doc/features/tools-display/`](doc/features/tools-display/) |
178178
| Session & options | `CocoSession`, `CocoOptions`, `get_or_create_session` |

doc/api.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# API reference — streamlit-coco
22

33
Public surface exported from `import streamlit_coco as st_coco`.
4-
Alpha `0.1.8` — signatures may still move; prefer this page over the PRD sketch.
4+
Alpha `0.1.8.1` — signatures may still move; prefer this page over the PRD sketch.
55

66
**Related:** [README quickstart](../README.md) · [Local deployment](deployment/local.md) · [Feature docs](features/README.md) · [SDK docs](https://docs.snowflake.com/en/user-guide/cortex-code-agent-sdk/cortex-code-agent-sdk)
77

@@ -183,7 +183,8 @@ status card).
183183
| `on_job_finished` | `None` | Called when that turn ends (`COMPLETED` / `ERROR` / `CANCELLED`, or `READY` after a run) so the app can drop the job |
184184
| `show_copy` | `False` | Clipboard controls off for demo rails |
185185
| `show_transcript_filters` | `True` | Icon-only **Display config** popover (pills + sliders) |
186-
| `example_questions` | `None` | After Connect, starter buttons on an empty transcript. Each item is `{title, question}` (or a `(title, question)` pair). Hover shows the question; click sends it. Hidden once a user/assistant turn or a job is present |
186+
| `example_questions` | `None` | After Connect, starter buttons on an empty transcript. Each item is `{title, question}` (or a `(title, question)` pair). Hover shows the question; click sends it unless `deferred`. Hidden once a user/assistant turn or a job is present |
187+
| `deferred` | `False` | When `True`, clicking an example question copies the prompt into the chat input and does not run it. Per-item override: `{"title", "question", "deferred": True}` (or a `(title, question, deferred)` triple) |
187188

188189
### `transcript_display_config(*, key=…, last_n=8, preview_chars=200) -> tuple[int \| None, int \| None]`
189190

@@ -405,7 +406,7 @@ Tool card UX: [`features/tools-display/SPEC.md`](features/tools-display/SPEC.md)
405406
## Package metadata
406407

407408
```python
408-
st_coco.__version__ # e.g. "0.1.8"
409+
st_coco.__version__ # e.g. "0.1.8.1"
409410
```
410411

411412
Private modules (`bridge`, `tool_cards`, `tool_extract`, …) are implementation details and are not part of the stable public surface.

doc/deployment/publish.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ cp -R doc-dev/releases/_template/. "doc-dev/releases/${VER}/"
5050
```
5151

5252
- Public checklist: [`doc/releases/`](../releases/README.md)`doc/releases/X.Y.Z/CHECKLIST.md`
53-
(current: [`doc/releases/0.1.8/`](../releases/0.1.8/))
53+
(current: [`doc/releases/0.1.8.1/`](../releases/0.1.8.1/))
5454
- Outreach (LinkedIn / Medium / community): [`doc-dev/releases/`](../../doc-dev/releases/README.md)
55-
(current: [`doc-dev/releases/0.1.8/`](../../doc-dev/releases/0.1.8/)) — **never synced** to the public repo
55+
(current: [`doc-dev/releases/0.1.8.1/`](../../doc-dev/releases/0.1.8.1/)) — **never synced** to the public repo
5656

5757
```bash
5858
make test-all

doc/features/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Exploratory prompts: [`examples/testdata/`](../../examples/testdata/).
4242
| UI golden path — tools-display | **Pass (core)** (2026-07-27) | [`tools-display/test-checklist.md`](tools-display/test-checklist.md) — Glob/Grep/Read/Write/Edit live; SQL/AskUser/plan/debug deferred |
4343
| UI golden path — structured-output | **Pass (core)** (2026-07-27) | [`structured-output/test-checklist.md`](structured-output/test-checklist.md)`make structured` + `output_schema` live |
4444
| UI golden path — chat-ccv2 | **Pass** (2026-07-27) | [`chat-ccv2/test-checklist.md`](chat-ccv2/test-checklist.md)`make approval` live |
45-
| UI golden path — copilot-rail | **Pending** (`0.1.6`) | [`copilot-rail/test-checklist.md`](copilot-rail/test-checklist.md)`make bi-semantic` |
45+
| UI golden path — copilot-rail | **Pending** (`0.1.8.1` deferred step) | [`copilot-rail/test-checklist.md`](copilot-rail/test-checklist.md)`make bi-semantic` (step 2b-deferred) |
4646
| UI golden path — app-viewer | **Pending** (`0.1.7`) | [`app-viewer/test-checklist.md`](app-viewer/test-checklist.md)`make bi-semantic` |
4747
| UI golden path — app-builder | **Automated** (`0.1.8`) | [`app-builder/test-checklist.md`](app-builder/test-checklist.md)`make test-all` 2026-09-06; live CoCo sign-off still open |
4848

doc/features/copilot-rail/copilot-rail.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Reusable right-rail Copilot for Streamlit apps: connection, queued jobs,
44
transcript compactness, `panel()`, and `chat_input_bar()`.
55

6-
**Status:** Shipped in **`0.1.6`**. Example questions + Display config popover in **`0.1.8`**.
6+
**Status:** Shipped in **`0.1.6`**. Example questions + Display config popover in **`0.1.8`**. `deferred=` example questions in **`0.1.8.1`**.
77

88
## What
99

@@ -13,7 +13,7 @@ transcript compactness, `panel()`, and `chat_input_bar()`.
1313
2. Connection popover with an icon-only **Display config** popover beside it (`:material/display_settings:`, no label; hover = **Display config**). While CoCo is busy, a compact **Working · thinking…** (or tool / needs-input) badge sits on that same row — not a tall status card.
1414
3. Active job caption
1515
4. `panel()` (approvals, stream, stop)
16-
5. After Connect, on an empty transcript: **example question** buttons (`title` on the button, `question` on hover). Click sends the question to CoCo. They hide after the first user/assistant turn or while a job is queued.
16+
5. After Connect, on an empty transcript: **example question** buttons (`title` on the button, `question` on hover). Click sends the question to CoCo, or — with `deferred=True` — copies it into the chat input without running it. They hide after the first user/assistant turn or while a job is queued.
1717
6. Chat input
1818

1919
`transcript_display_config()` is the rail control: pills plus sliders for
@@ -55,7 +55,13 @@ st_coco.copilot_rail(
5555
show_transcript_filters=True,
5656
example_questions=[
5757
{"title": "List the files", "question": "What files are in cwd?"},
58+
{
59+
"title": "Draft a SQL check",
60+
"question": "Write a query that counts rows in MY_TABLE.",
61+
"deferred": True,
62+
},
5863
],
64+
deferred=False, # True: every starter fills the chat input instead of sending
5965
)
6066
```
6167

@@ -76,8 +82,11 @@ so the transcript updates live.
7682

7783
Example questions (opt-in via `example_questions=`): after Connect, starter
7884
buttons sit under the empty transcript. Hover shows the full question; click
79-
calls `send_prompt`. They disappear once a turn starts, the chat has a user
80-
or assistant message, or a job is present, and return after **Clear chat**.
85+
calls `send_prompt` unless `deferred=True` (rail-wide) or the item sets
86+
`deferred`. Deferred clicks copy the question into `chat_input_bar` and do
87+
not run it — the user can edit, then submit. Starters disappear once a turn
88+
starts, the chat has a user or assistant message, or a job is present, and
89+
return after **Clear chat**. A deferred click does not hide them.
8190

8291
## Limitations
8392

@@ -87,7 +96,7 @@ or assistant message, or a job is present, and return after **Clear chat**.
8796
`panel()` still has its own streaming fragment so the icon stays clickable
8897
while CoCo runs.
8998
- Tool cards are not character-truncated (they are already compact expanders).
90-
- Version tag for this API is **`0.1.6`** (`pip install "streamlit-coco[sdk]==0.1.6"`).
99+
- Version tag for this API is **`0.1.8.1`** (`pip install "streamlit-coco[sdk]==0.1.8.1"`). Rail chrome shipped in `0.1.6`; example questions in `0.1.8`; `deferred=` in `0.1.8.1`.
91100

92101
## Related
93102

doc/features/copilot-rail/test-checklist.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
| 2 | Connect | Environment status; Copilot ready caption. If the app passed `example_questions`, starter buttons appear under the empty transcript (title on the button) |
1919
| 2a | Hover a starter button | Tooltip shows the **question** text (not just the title) |
2020
| 2b | Click a starter | The question is sent as a user turn; starters hide; CoCo runs |
21+
| 2b-deferred | Click a starter with `deferred=True` (rail or item) | The question text appears in the chat input and is **not** sent. Starters stay visible. Submit from the input to run |
2122
| 2c | Clear chat | Transcript empty; starter buttons return |
2223
| 3 | Open the icon-only **Display config** popover (Material `display_settings`, no label) | Pills **Last messages** / **First n characters** plus two sliders. Hover on the icon shows **Display config**. No **Transcript** heading on the rail |
2324
| 4 | Leave both pills on (default) | Only recent turns (default 8); user/assistant text capped at 200 chars |

doc/marketing/demo.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@
109109
| Does it work with SiS? | Not yet — pure Python, waiting for the CoCo API |
110110
| What LLM does it use? | Whatever Cortex Code uses (Claude, ChatGPT...) — no config needed |
111111
| Can I customize which tools need approval? | Yes — `permission_mode` in `CocoOptions` |
112-
| Is it production-ready? | Alpha (`0.1.8`) — use in internal tools today, production after N1 |
112+
| Is it production-ready? | Alpha (`0.1.8.1`) — use in internal tools today, production after N1 |
113113

114114
---
115115

doc/marketing/one-pager.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Teams building Streamlit apps on Snowflake need AI-assisted data exploration, co
1717
| Capability | What it does |
1818
|-----------|--------------|
1919
| `panel()` | Streaming agent transcript with tool cards (SQL, Read, Write, Grep) |
20-
| `copilot_rail()` | Right-rail Copilot: connection, queued jobs, compact transcript (`0.1.6`) |
20+
| `copilot_rail()` | Right-rail Copilot: connection, queued jobs, compact transcript; `example_questions=` / `deferred=` (`0.1.8` / `0.1.8.1`) |
2121
| `app_viewer()` | Child Streamlit process + iframe + **Fix with CoCo** (`0.1.7`) |
2222
| App Builder | Type library → brief → CoCo Write → Preview (`0.1.8`, `make app-builder`) |
2323
| Approval gates | Human-in-the-loop pause before destructive tools execute |
@@ -81,7 +81,7 @@ streamlit run app.py
8181

8282
| | |
8383
|---|---|
84-
| **Level** | N0 (Alpha `0.1.8`) — targeting N1 |
84+
| **Level** | N0 (Alpha `0.1.8.1`) — targeting N1 |
8585
| **License** | Apache-2.0 |
8686
| **Owner** | Laurent Letourmy — Devoteam Snowflake Partner |
8787
| **Repo** | [github.com/DevoteamSP/streamlit-coco](https://github.com/DevoteamSP/streamlit-coco) |

0 commit comments

Comments
 (0)