toga-ai 1.0.196 → 1.0.197
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.
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
| Doc | Summary | Files |
|
|
4
4
|
|-----|---------|-------|
|
|
5
5
|
| [Forwarder Architecture](architecture.md) | Forwarder is a tiny **standalone PHP application** that powers TOGA's short, branded redirect domains. | forward/forward.ini, forward/index.php, forward/.htaccess, forward/.platform/httpd/conf.d/rewritemap.conf, forward/.ebextensions/rewritemap.config, forward/design/index.php, forward/composer.json |
|
|
6
|
-
| [Design Demo Admin Tool](features/design-demo-admin.md) | A standalone, dependency-free PHP tool served at `https://demo.togatech.com/design` that lets the **design team** publish self-contained "Claude Design" HTML ex | forward/design/index.php, forward/design/.config.example.php, forward/.gitignore, forward/.htaccess, forward/.ebextensions/php-uploads.config |
|
|
6
|
+
| [Design Demo Admin Tool](features/design-demo-admin.md) | A standalone, dependency-free PHP tool served at `https://demo.togatech.com/design` that lets the **design team** publish self-contained "Claude Design" HTML ex | forward/design/index.php, forward/tabs.json, forward/design/.config.example.php, forward/.gitignore, forward/.htaccess, forward/.ebextensions/php-uploads.config |
|
|
7
7
|
| [Encrypted-Link Handler](features/encrypted-link-handler.md) | A `index.php` feature in [Forwarder](../architecture.md) for redirect domains whose URL path carries an **encrypted token** that must be decoded before redirect | forward/index.php |
|
|
8
8
|
| [Static Demo Hosting](features/static-demo-hosting.md) | A lightweight way to host self-contained static HTML pages (demos, exported designs, download landing pages) on the Forwarder app under a clean URL — e.g. | forward/.htaccess, forward/togadesk/index.html |
|
|
@@ -6,10 +6,11 @@ project: Forwarder
|
|
|
6
6
|
client: shared
|
|
7
7
|
type: feature
|
|
8
8
|
status: active
|
|
9
|
-
updated: 2026-06-
|
|
9
|
+
updated: 2026-06-25
|
|
10
10
|
owners: ["jcardinal"]
|
|
11
11
|
files:
|
|
12
12
|
- forward/design/index.php
|
|
13
|
+
- forward/tabs.json
|
|
13
14
|
- forward/design/.config.example.php
|
|
14
15
|
- forward/.gitignore
|
|
15
16
|
- forward/.htaccess
|
|
@@ -94,9 +95,34 @@ auto-deploy ("live in a few minutes").
|
|
|
94
95
|
brief "Copied ✓" confirmation.
|
|
95
96
|
- **Copy Claude Design prompt** — one-click copy of the standard self-contained-HTML export
|
|
96
97
|
prompt (the same prompt documented in [static-demo-hosting](static-demo-hosting.md)).
|
|
98
|
+
- **Create a tab** (`apiCreateTab`, action `create-tab`) — appends a named tab to
|
|
99
|
+
`tabs.json`. Case-insensitive dedupe; name length-capped 40. Commits `tabs.json` only.
|
|
100
|
+
- **Move a project to a tab** (`apiSetProjectTab`, action `set-project-tab`) — sets/clears a
|
|
101
|
+
project's `tab` field; empty string = Unsorted (the field is `unset`). Commits that
|
|
102
|
+
project's `project.json` **only** — tab membership does not affect the redirect stub, so
|
|
103
|
+
**no stub rebuild**. `apiCreateProject` also accepts an optional `tab`.
|
|
97
104
|
|
|
98
105
|
The full action set is: `list`, `create-project`, `upload`, `adopt`, `set-latest`,
|
|
99
|
-
`toggle-version`, `edit-version`, `toggle-project` (plus
|
|
106
|
+
`toggle-version`, `edit-version`, `toggle-project`, `create-tab`, `set-project-tab` (plus
|
|
107
|
+
`bootstrap`). `list` also returns the tab list (`{ projects, tabs }`).
|
|
108
|
+
|
|
109
|
+
### Tab-based organization
|
|
110
|
+
|
|
111
|
+
Demo projects can be grouped into named **tabs** (e.g. separate Production / Pipeline /
|
|
112
|
+
Sandbox).
|
|
113
|
+
|
|
114
|
+
- **`tabs.json`** at the repo root holds the ordered tab list — `{"tabs": ["Production",
|
|
115
|
+
"Pipeline", "Sandbox"]}`. `loadTabs()` returns those three as **defaults when `tabs.json`
|
|
116
|
+
does not exist yet** (so tabs appear before any are created); the file is only written on
|
|
117
|
+
the first tab mutation (`create-tab`).
|
|
118
|
+
- Each `project.json` gains an optional **`tab`** field (string). Missing/absent =
|
|
119
|
+
**"Unsorted"**.
|
|
120
|
+
- **UI:** a filter chip bar (All / each tab / Unsorted / + New tab) with per-tab project
|
|
121
|
+
counts; clicking a chip filters the list. Each project card has a **Tab `<select>`** to
|
|
122
|
+
move the project between tabs (on the select's `change`). The New Project modal has a Tab
|
|
123
|
+
dropdown defaulting to the currently-viewed tab.
|
|
124
|
+
- The **displayed** tab list is the **union** of `tabs.json` order plus any tab names
|
|
125
|
+
referenced by projects — so removing a tab from `tabs.json` never orphans a project.
|
|
100
126
|
|
|
101
127
|
### Naming & validation
|
|
102
128
|
|
|
@@ -117,7 +143,10 @@ anyone who reaches it can publish or unlist. Do not treat the tool as protected.
|
|
|
117
143
|
|
|
118
144
|
## Data model
|
|
119
145
|
|
|
120
|
-
`project.json` per managed demo (see Versioning model above)
|
|
146
|
+
`project.json` per managed demo (see Versioning model above), plus an optional `tab` string
|
|
147
|
+
field per project (absent = Unsorted). A single repo-root **`tabs.json`** —
|
|
148
|
+
`{"tabs": [...]}` — holds the ordered tab list (defaults to `["Production", "Pipeline",
|
|
149
|
+
"Sandbox"]` until first written). No database.
|
|
121
150
|
|
|
122
151
|
## Client variations
|
|
123
152
|
|
|
@@ -158,6 +187,14 @@ None — internal/shared design-team tool.
|
|
|
158
187
|
`isValidVersionId` + length caps). Added a **Copy URL** button on each project card
|
|
159
188
|
(`navigator.clipboard` → `https://demo.togatech.com/<project>`). Both additive; no new
|
|
160
189
|
security surface. (jcardinal)
|
|
190
|
+
- 2026-06-25 — Added **tab-based organization**: new repo-root `tabs.json` (ordered tab
|
|
191
|
+
list, defaults Production/Pipeline/Sandbox until first written via `create-tab`), optional
|
|
192
|
+
`tab` field on `project.json` (absent = Unsorted), and actions **`create-tab`** /
|
|
193
|
+
**`set-project-tab`** (`apiCreateProject` accepts an optional `tab`). UI filter chip bar
|
|
194
|
+
with per-tab counts, per-card Tab select, and a Tab dropdown on the New Project modal. The
|
|
195
|
+
displayed tab list is the union of `tabs.json` and tabs referenced by projects, so dropping
|
|
196
|
+
a tab from `tabs.json` never orphans a project. `set-project-tab` commits `project.json`
|
|
197
|
+
only (no stub rebuild). (jcardinal)
|
|
161
198
|
|
|
162
199
|
## Related docs
|
|
163
200
|
|
package/package.json
CHANGED