You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- AskUserQuestion / ExitPlanMode always go through pending HITL; never “Always allow”.
47
48
- Update `CHANGELOG.md``[Unreleased]` for user-visible changes; update feature checklists when UX changes.
48
-
-**Before cutting a release:** complete `doc/releases/X.Y.Z/CHECKLIST.md` + outreach in `doc-dev/releases/X.Y.Z/`, then `doc/deployment/publish.md`. Do not tag until the public kit docs/QA sections are done.
49
+
-**Before cutting a release:** complete `doc/releases/X.Y.Z/CHECKLIST.md` + outreach in `doc-dev/releases/X.Y.Z/`, then `doc/deployment/publish.md`. Do not tag until the public kit docs/QA sections are done. Sync [public GitHub issues](https://github.com/DevoteamSP/streamlit-coco/issues): close resolved, comment on progressed, propose new ones from `doc/roadmap.md`.
49
50
- Prefer small, focused diffs; no drive-by refactors.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+35Lines changed: 35 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,41 @@ Living plan (what’s next): [`doc/roadmap.md`](doc/roadmap.md).
12
12
13
13
## [Unreleased]
14
14
15
+
## [0.1.8] — 2026-09-06
16
+
17
+
App Builder for business users, plus rail starter questions and Display config.
18
+
19
+
### Added
20
+
21
+
- Copilot rail **example questions** — `copilot_rail(example_questions=…)` shows starter buttons after Connect on an empty transcript. Each item is `{title, question}`: the title is the button label, hover shows the question, click sends that text to CoCo. They hide once a user/assistant turn or a queued job is present (and come back after **Clear chat**). App Builder and BI → Semantic pass a short set.
22
+
-**App Builder** example (`examples/app_builder`, `make app-builder`) — type library with **topic pills**, local types that need **no Snowflake** (CSV explorer, call transcription, meeting recap, prompt library), filled brief, demo scaffold or CoCo Write, Preview via `app_viewer()`.
23
+
- App Builder **profile step** — dropping the KPI presentation demo fixture runs a deterministic pandas profile (`engine/profile.py`, no CoCo) and pre-fills metrics / grain / filters as findings to confirm. Audience and must-not stay blank (only a person can answer them). Library cards and the Brief chrome show a **grounding** pill (Files / Semantic view / Documents / URLs).
24
+
- App Builder chrome — pages **Welcome · Library · Brief · Studio · Admin**, **Open Copilot** / **Open Preview** labels, a rewritten Welcome, a three-step Brief (your data · what we found · only you can answer), and an **Admin** screen (type cards on the left, editor on the right) to view / add / edit / delete app types.
25
+
- App Builder **KPI guidelines** — `types/semantic-kpis/` ships `SKILL.md` + `reference/streamlit_app.py` + `CHECKLIST.md`. After an approved Write, Preview auto-runs; the generate prompt self-checks once against the checklist / `.preview.log`, then stops (manual **Fix with CoCo** if still red).
26
+
- App Builder Copilot — **App brief** expander on the rail to edit the owner brief **and every type question**, with **Save** and **Save & regenerate** (queues CoCo to rewrite the app from `BRIEF.md`).
27
+
- App Builder **shared generation skill** (`types/shared/SKILL.md`) — every Build / regenerate prompt tells CoCo to Read this file plus the type `SKILL.md` (absolute paths; both folders mounted via `add_dirs`). Admin can edit both files. Type skills extend shared; they do not replace it.
28
+
29
+
### Changed
30
+
31
+
- App Builder Welcome — only **Get started — browse types** remains; **Try a demo type** and the Welcome **Open Copilot** button are gone (Copilot stays in the header).
32
+
- App Builder skills live under `types/` — each type’s `SKILL.md` sits next to `type.json`; the shared pack is `types/shared/SKILL.md` (no `type.json`, so it is not a catalog card).
33
+
- Copilot rail **Display config** — the **Last messages** / **First 200 characters** pills move into an icon-only Material popover (`:material/display_settings:`, no label). Inside: the same on/off pills plus sliders for last-message count (1–50) and first-*n* characters (40–1000). Slider and pill changes fragment-rerun the rail (popover stays open) so the transcript updates live. New helper: `transcript_display_config()`. `transcript_view_pills()` stays for apps that call `panel()` directly. While CoCo runs, **Working · …** and the model name sit on one row.
34
+
- App Builder generate prompt — self-check against `CHECKLIST.md` only when the type ships one (KPI does; other types skip without commenting).
35
+
- App Builder **Brief** — **Build this app**, **Try a local demo**, **Open Copilot**, **Open Studio**, and **Delete app** sit at the top of the page. **App name** is its own card above **Your brief** (display name; folder slug stays). No expanders; type story / allows / will-not in columns; sketches under the brief; one **Questions** card on the right. Profile metrics appear only when a file was read.
36
+
- App Builder apps are **named** — Library **Create a new project** (type card popover + App name) writes `out/<slug>/`; header **New app** is gone; Resume and the header badge show the app name. Resume and Brief can **delete** an app (confirm popover).
37
+
- App Builder **Library** — **Resume** and **Create a new project** both use a 6-column grid. Topic pills sit at the top and filter saved apps and types. Resume cards show name, type, grounding, last updated, Open / Delete.
38
+
- App Builder catalog — each type brief gained two extra questions (audience, tone, layout, comparison, …). **`0.1.8` live set locked** to the six folders under `types/` (KPI presentation, Data quality, Call transcription, Meeting recap, Prompt library, CSV explorer). Document comparison and every `urls` type are later.
39
+
- App Builder **Admin** — type cards and the type editor sit in bordered panes with a vertical resize slider; short fields use three-column rows; icon is a Material Symbol popover; Brief questions sit in tabs (add / edit / delete), not a JSON textarea.
40
+
- BI demo fixtures live under [`examples/bi_samples/`](examples/bi_samples/) (`tableau/` + `powerbi/`). Chat exploratory prompts stay in [`examples/testdata/`](examples/testdata/).
41
+
42
+
### Fixed
43
+
44
+
- App Builder **Save & regenerate** now writes `BRIEF.md` from the expander widgets before queuing CoCo, and does not let the Brief page overwrite that file on the same turn.
Copy file name to clipboardExpand all lines: README.md
+15-13Lines changed: 15 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,15 @@
1
1
# streamlit-coco
2
2
3
-
**Built (with love) by Devoteam Snowflake Partner, brings Snowflake CoCo into Streamlit** — streaming agent UI, tool cards you can actually read, and approval gates that fit governed data apps.
3
+
**Built (with love) by Devoteam Snowflake Partner** — Snowflake CoCo in *your* Streamlit app: a right-rail Copilot, a live preview of the app it writes, tool cards you can read, and approval gates that fit governed data apps.
You own the page. CoCo owns the session. `panel()`streams the transcript; `copilot_rail()`wraps that panel as a right-rail Copilot for multipage apps. Your app keeps `st.chat_input`, metrics, and forms. Approvals pause Write / Edit / Bash / SQL until someone clicks **Approve once**, **Always allow**, or **Deny**.
8
+
You own the page. CoCo owns the session. `copilot_rail()`sits in the product and takes jobs from your screens; `app_viewer()`runs the Streamlit app the agent just wrote, next to the rail. `panel()` streams the transcript. Approvals pause Write / Edit / Bash / SQL until someone clicks **Approve once**, **Always allow**, or **Deny**.
9
9
10
-

10
+

11
11
12
-
> Alpha `0.1.7` — API may still move. Star / watch the repo if you plan to ship on it.
12
+
> Alpha `0.1.8` — API may still move. Star / watch the repo if you plan to ship on it.
The agent is **server-side**. The browser only sees Streamlit widgets. `panel()` (or `copilot_rail()` around it) polls a `CocoSession` worker via `@st.fragment`; the session talks to the Cortex Code Agent SDK, which runs the `cortex` CLI against your Snowflake account. Destructive tools pause in Python (`can_use_tool`) until someone clicks Approve / Deny. Headless `query()` skips the UI and uses the same session/SDK path.
158
+
The agent is **server-side**. The browser only sees Streamlit widgets. `panel()` (or `copilot_rail()` around it) polls a `CocoSession` worker via `@st.fragment`; `app_viewer()` is a separate child `streamlit run` in an iframe. The session talks to the Cortex Code Agent SDK, which runs the `cortex` CLI against your Snowflake account. Destructive tools pause in Python (`can_use_tool`) until someone clicks Approve / Deny. Headless `query()` skips the UI and uses the same session/SDK path.
0 commit comments