astro-tractstack 2.1.3 → 2.2.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.
Files changed (128) hide show
  1. package/README.md +54 -266
  2. package/bin/create-tractstack.js +9 -6
  3. package/dist/index.js +109 -71
  4. package/package.json +4 -2
  5. package/templates/css/custom.css +5 -0
  6. package/templates/icons/code.svg +18 -0
  7. package/templates/icons/li.svg +4 -0
  8. package/templates/icons/link.svg +22 -0
  9. package/templates/icons/p.svg +3 -0
  10. package/templates/src/client/app.js +80 -1
  11. package/templates/src/components/Footer.astro +1 -1
  12. package/templates/src/components/codehooks/BunnyVideoSetup.tsx +6 -6
  13. package/templates/src/components/codehooks/EpinetDurationSelector.tsx +3 -3
  14. package/templates/src/components/codehooks/FeaturedArticleSetup.tsx +1 -1
  15. package/templates/src/components/codehooks/ListContentSetup.tsx +2 -2
  16. package/templates/src/components/codehooks/ProductCardSetup.tsx +1 -1
  17. package/templates/src/components/codehooks/ProductGridSetup.tsx +2 -2
  18. package/templates/src/components/codehooks/SandboxRegisterForm.tsx +3 -3
  19. package/templates/src/components/compositor/Compositor.tsx +25 -9
  20. package/templates/src/components/compositor/Node.tsx +168 -496
  21. package/templates/src/components/compositor/PanelVisibilityWrapper.tsx +1 -0
  22. package/templates/src/components/compositor/elements/SignUp.tsx +1 -1
  23. package/templates/src/components/compositor/elements/YouTubeWrapper.tsx +2 -0
  24. package/templates/src/components/compositor/nodes/CreativePane.tsx +262 -0
  25. package/templates/src/components/compositor/nodes/GhostInsertBlock.tsx +4 -6
  26. package/templates/src/components/compositor/nodes/GridLayout.tsx +4 -2
  27. package/templates/src/components/compositor/nodes/Markdown.tsx +18 -3
  28. package/templates/src/components/compositor/nodes/Pane.tsx +11 -5
  29. package/templates/src/components/compositor/nodes/RenderChildren.tsx +1 -1
  30. package/templates/src/components/compositor/nodes/tagElements/NodeAnchorComponent.tsx +5 -5
  31. package/templates/src/components/compositor/nodes/tagElements/NodeBasicTag.tsx +90 -42
  32. package/templates/src/components/compositor/nodes/tagElements/NodeImg.tsx +2 -0
  33. package/templates/src/components/compositor/nodes/tagElements/NodeText.tsx +27 -1
  34. package/templates/src/components/compositor/preview/PaneSnapshotGenerator.tsx +10 -8
  35. package/templates/src/components/compositor/tools/NodeOverlay.tsx +224 -0
  36. package/templates/src/components/compositor/tools/PaneOverlay.tsx +122 -0
  37. package/templates/src/components/edit/Header.tsx +68 -9
  38. package/templates/src/components/edit/PanelSwitch.tsx +42 -4
  39. package/templates/src/components/edit/SettingsPanel.tsx +2 -3
  40. package/templates/src/components/edit/ToolMode.tsx +1 -31
  41. package/templates/src/components/edit/pane/AddPanePanel_break.tsx +2 -2
  42. package/templates/src/components/edit/pane/AddPanePanel_codehook.tsx +1 -1
  43. package/templates/src/components/edit/pane/AddPanePanel_new.tsx +193 -659
  44. package/templates/src/components/edit/pane/AddPanePanel_reuse.tsx +15 -82
  45. package/templates/src/components/edit/pane/AiRestylePaneModal.tsx +95 -45
  46. package/templates/src/components/edit/pane/ConfigPanePanel.tsx +137 -49
  47. package/templates/src/components/edit/pane/RestylePaneModal.tsx +1 -1
  48. package/templates/src/components/edit/pane/steps/AiCreativeDesignStep.tsx +375 -0
  49. package/templates/src/components/edit/pane/steps/AiDesignStep.tsx +1 -23
  50. package/templates/src/components/edit/pane/steps/AiLibraryCopyStep.tsx +327 -0
  51. package/templates/src/components/edit/pane/steps/AiRefineDesignStep.tsx +267 -0
  52. package/templates/src/components/edit/pane/steps/AiStandardDesignStep.tsx +371 -0
  53. package/templates/src/components/edit/pane/steps/CopyInputStep.tsx +201 -76
  54. package/templates/src/components/edit/pane/steps/CreativeInjectStep.tsx +141 -0
  55. package/templates/src/components/edit/panels/CreativeImagePanel.tsx +435 -0
  56. package/templates/src/components/edit/panels/CreativeLinkPanel.tsx +110 -0
  57. package/templates/src/components/edit/panels/StyleCodeHookPanel.tsx +1 -1
  58. package/templates/src/components/edit/panels/StyleParentPanel.tsx +118 -126
  59. package/templates/src/components/edit/panels/StyleParentPanel_add.tsx +3 -2
  60. package/templates/src/components/edit/panels/StyleParentPanel_deleteLayer.tsx +1 -0
  61. package/templates/src/components/edit/panels/StyleParentPanel_remove.tsx +3 -1
  62. package/templates/src/components/edit/panels/StyleParentPanel_update.tsx +3 -1
  63. package/templates/src/components/edit/panels/StyleWidgetPanel.tsx +1 -1
  64. package/templates/src/components/edit/state/SaveModal.tsx +19 -787
  65. package/templates/src/components/edit/state/SaveToLibraryModal.tsx +2 -2
  66. package/templates/src/components/edit/storyfragment/StoryFragmentPanel_menu.tsx +1 -1
  67. package/templates/src/components/edit/widgets/BunnyWidget.tsx +5 -5
  68. package/templates/src/components/edit/widgets/InteractiveDisclosureWidget.tsx +1 -1
  69. package/templates/src/components/edit/widgets/SignupWidget.tsx +1 -1
  70. package/templates/src/components/fields/ActionBuilderTimeSelector.tsx +1 -1
  71. package/templates/src/components/fields/ArtpackImage.tsx +11 -3
  72. package/templates/src/components/fields/BackgroundImage.tsx +8 -0
  73. package/templates/src/components/fields/BackgroundImageWrapper.tsx +15 -9
  74. package/templates/src/components/fields/ImageUpload.tsx +6 -0
  75. package/templates/src/components/form/ActionBuilderField.tsx +15 -5
  76. package/templates/src/components/form/ActionBuilderSlugSelector.tsx +1 -1
  77. package/templates/src/components/form/ColorPicker.tsx +1 -1
  78. package/templates/src/components/form/EnumSelect.tsx +1 -1
  79. package/templates/src/components/form/NumberInput.tsx +1 -1
  80. package/templates/src/components/form/StringArrayInput.tsx +1 -1
  81. package/templates/src/components/form/StringInput.tsx +1 -1
  82. package/templates/src/components/form/UnsavedChangesBar.tsx +1 -1
  83. package/templates/src/components/form/advanced/APIConfigSection.tsx +2 -2
  84. package/templates/src/components/form/advanced/AuthConfigSection.tsx +2 -2
  85. package/templates/src/components/profile/ProfileCreate.tsx +1 -1
  86. package/templates/src/components/profile/ProfileEdit.tsx +1 -1
  87. package/templates/src/components/storykeep/Dashboard_Advanced.tsx +2 -2
  88. package/templates/src/components/storykeep/controls/content/BeliefForm.tsx +1 -1
  89. package/templates/src/components/storykeep/controls/content/ContentSummary.tsx +2 -2
  90. package/templates/src/components/storykeep/controls/content/KnownResourceTable.tsx +1 -1
  91. package/templates/src/components/storykeep/controls/content/ManageContent.tsx +6 -6
  92. package/templates/src/components/storykeep/controls/content/MenuForm.tsx +1 -1
  93. package/templates/src/components/storykeep/controls/content/PaneTable.tsx +358 -0
  94. package/templates/src/components/storykeep/controls/content/ResourceTable.tsx +1 -1
  95. package/templates/src/constants/prompts.json +18 -10
  96. package/templates/src/constants.ts +3 -0
  97. package/templates/src/hooks/usePaneFragments.ts +60 -0
  98. package/templates/src/lib/session.ts +71 -16
  99. package/templates/src/pages/[...slug].astro +4 -46
  100. package/templates/src/pages/api/css.ts +149 -0
  101. package/templates/src/pages/maint.astro +1 -1
  102. package/templates/src/pages/storykeep/login.astro +2 -2
  103. package/templates/src/stores/nodes.ts +162 -49
  104. package/templates/src/stores/orphanAnalysis.ts +6 -30
  105. package/templates/src/stores/previews.ts +7 -0
  106. package/templates/src/stores/storykeep.ts +0 -8
  107. package/templates/src/types/compositorTypes.ts +53 -10
  108. package/templates/src/utils/compositor/aiGeneration.ts +93 -0
  109. package/templates/src/utils/compositor/allowInsert.ts +2 -0
  110. package/templates/src/utils/compositor/htmlAst.ts +704 -0
  111. package/templates/src/utils/compositor/nodesHelper.ts +281 -102
  112. package/templates/src/utils/compositor/savePipeline.ts +893 -0
  113. package/templates/src/utils/etl/index.ts +3 -0
  114. package/templates/src/utils/etl/transformer.ts +10 -0
  115. package/templates/src/utils/helpers.ts +101 -0
  116. package/utils/inject-files.ts +100 -62
  117. package/templates/icons/text.svg +0 -6
  118. package/templates/src/components/compositor/NodeWithGuid.tsx +0 -69
  119. package/templates/src/components/compositor/nodes/GridLayout_eraser.tsx +0 -33
  120. package/templates/src/components/compositor/nodes/Markdown_eraser.tsx +0 -56
  121. package/templates/src/components/compositor/nodes/Pane_DesignLibrary.tsx +0 -269
  122. package/templates/src/components/compositor/nodes/Pane_eraser.tsx +0 -186
  123. package/templates/src/components/compositor/nodes/Pane_layout.tsx +0 -79
  124. package/templates/src/components/compositor/nodes/tagElements/NodeA_eraser.tsx +0 -26
  125. package/templates/src/components/compositor/nodes/tagElements/NodeBasicTag_eraser.tsx +0 -61
  126. package/templates/src/components/compositor/nodes/tagElements/NodeBasicTag_insert.tsx +0 -120
  127. package/templates/src/components/compositor/nodes/tagElements/NodeBasicTag_settings.tsx +0 -62
  128. package/templates/src/components/compositor/nodes/tagElements/NodeButton_eraser.tsx +0 -26
package/README.md CHANGED
@@ -1,303 +1,91 @@
1
- # TractStack v2.1
2
-
3
- **The Digital Experience Platform (DXP) for the Missing Middle.**
4
-
5
- > "Static websites treat every visitor like a stranger. TractStack treats them like a relationship."
6
-
7
- ## The Problem: The Legacy Web has Amnesia
8
-
9
- Static technology forces you to serve the exact same generic monologue to everyone—whether they are a "tire kicker" or a "high-ticket buyer."
10
-
11
- Legacy tools (Wix, WordPress) suffer from **Intent Blindness**. They were built for page views, not signal clarity. They force your best leads to dig through a haystack to find the "hidden door" they need, causing them to bounce.
12
-
13
- ## The Solution: A Living Funnel
14
-
15
- TractStack is an **Epistemic Hypermedia Server** that acts as a triage nurse, not a brochure. It turns a fragile "page view" into a powerful, privacy-first user journey.
16
-
17
- ### Core Philosophy
18
-
19
- 1. **The Recall (No Cookies Required):** We moved "memory" from fragile cookies to a proprietary server-side logic engine. This ensures the conversation persists across privacy blocks and browser refreshes.
20
- 2. **Smart Triage:** Our logic engine identifies 'High-Intent' users instantly and accelerates them to conversion, while automatically nurturing the rest.
21
- 3. **Hidden Doors:** Instead of a static page, you define content paths that only open when a user signals interest.
22
-
23
- ---
24
-
25
- ## The Tech Stack: "Convert OS"
26
-
27
- TractStack is a hybrid engine designed for performance and logic.
28
-
29
- - **Frontend:** [Astro](https://astro.build/) (The "Free" Web Press). Renders SEO-ready, indexable HTML.
30
- - **Backend:** [Golang](https://go.dev/) (The Logic Processor). A compiled, server-side engine that manages state, session continuity, and adaptive content.
31
- - **Glue:** [HTMX](https://htmx.org/). Enables real-time, dynamic interactions without heavy client-side frameworks.
32
- - **Database:** SQLite by default (Zero Config) with optional [Turso](https://app.turso.tech/) support.
33
-
34
- ## For Agencies & Empire Builders
35
-
36
- TractStack was engineered for the "Missing Middle"—high-volume creators and agencies who have outgrown static sites but don't need enterprise bloat.
37
-
38
- - **Wholesale DXP:** An infrastructure-first model. Agencies pay a flat wholesale fee and own the recurring margin on "Growth Projects."
39
- - **Visual Journey Mapping:** Don't guess what works. See it. TractStack visualizes the narrative journey of your audience, showing exactly how they navigate your Hidden Doors.
40
- - **No Code Required:** Build engaging, interactive websites where the "general noise" fades and specific content triggers based on engagement.
41
-
42
- ## Quick Install
43
-
44
- ### One-Line Installer
45
-
46
- ```bash
47
- curl -fsSL https://get.tractstack.com | bash
1
+ # The "Free Web" Press by At Risk Media
2
+
3
+ ```text
4
+ ▄██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██▄▄▄▄▄▄▄██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄
5
+ ██ ██ ██ ▀▀ ██ ██ ▀▀ ██ ██ ▀▀ ██ ▀▀ ██ ██ ▀▀ ██ ██
6
+ ██ ██▀█▄ ██▀██ ██ ▄▄ ██ ▀▀▀██ ██ ██▀██ ██ ▄▄ ██▀█▄
7
+ ██ ██ ██ ██▄██ ██▄██ ██ ██▄██ ██ ██▄██ ██▄██ ██ ██
8
+ ▀▀ ▀▀ ▀▀ ▀▀ ▀▀▀
48
9
  ```
49
10
 
50
- This automatically installs both the Go backend and creates a new Astro project with TractStack integration.
51
-
52
- ### Installation Options
53
-
54
- - `--quick` - Development setup in user directory (no sudo required)
55
- - `--prod --domain=yourdomain.com` - Production single-tenant
56
- - `--multi --domain=yourdomain.com` - Production multi-tenant hosting
57
- - `--dedicated SITE_ID --domain=yourdomain.com` - Isolated dedicated instance
11
+ ## The Manifesto: The Web Has Amnesia
58
12
 
59
- ## Manual Installation
13
+ Traditional CMS software conquered the world by making publishing easy—but it broke the relationship. It treats every visitor like a stranger. It forces you to serve the exact same generic monologue to everyone, relying on invasive third-party tracking to guess who is reading.
60
14
 
61
- **Prerequisites:**
62
-
63
- - Node.js 20+
64
- - pnpm (recommended) or npm
65
- - Go 1.22+
66
- - Git
67
-
68
- ### Step 1: Install Go Backend
69
-
70
- ```bash
71
- mkdir -p ~/t8k/src
72
- cd ~/t8k/src
73
- git clone https://github.com/AtRiskMedia/tractstack-go.git
74
- cd tractstack-go
75
- echo "GO_BACKEND_PATH=$HOME/t8k/t8k-go-server/" > .env
76
- echo "GIN_MODE=release" >> .env
77
- go build -o tractstack-go ./cmd/tractstack-go
78
- ```
79
-
80
- ### Step 2: Create Astro Frontend
81
-
82
- ```bash
83
- cd ~/t8k
84
- pnpm create astro@latest my-tractstack --template minimal --typescript strict --install
85
- cd my-tractstack
86
- pnpm add astro-tractstack@latest
87
- echo "PRIVATE_GO_BACKEND_PATH=$HOME/t8k/t8k-go-server/" > .env
88
- npx create-tractstack
89
- ```
90
-
91
- ### Step 3: Start Development
92
-
93
- ```bash
94
- # Terminal 1: Go backend
95
- cd ~/t8k/src/tractstack-go
96
- ./tractstack-go
97
-
98
- # Terminal 2: Astro frontend
99
- cd ~/t8k/src/my-tractstack
100
- pnpm dev
101
- ```
15
+ ## The "Free Web" Press Restores the Signal
102
16
 
103
- Visit <https://127.0.0.1:4321> to access your site and activate your Story Keep (CMS).
17
+ **TractStack v2.2** is not just a CMS; it is a **Signal Continuity Engine**. It takes the concept of the "Press"—broadcasting ideas—and adds the "Handshake."
104
18
 
105
- ## Installation Types
19
+ ### 1. The Mass-Produced Handshake (Smart Triage)
106
20
 
107
- ### Development (Quick Install)
21
+ Legacy tools suffer from **Intent Blindness**. The Free Web Press serves a dialogue.
108
22
 
109
- - Local setup in `~/t8k/`
110
- - No sudo required
111
- - Perfect for development and testing
112
- - SQLite database included
23
+ - **Identify Intent:** Our logic engine acts like a triage nurse, identifying high-intent users instantly.
24
+ - **The Hidden Door:** You define content paths that only open when a user signals interest.
25
+ - **The Result:** You don't just "publish" a site; you press a branded universe that adapts to every visitor.
113
26
 
114
- ### Production Single-Tenant
27
+ ### 2. Generative Architecture (No-Code Freedom)
115
28
 
116
- - System-wide installation at `/home/t8k/`
117
- - SSL certificates via Let's Encrypt
118
- - nginx reverse proxy
119
- - systemd services for automatic startup
120
- - PM2 process management
29
+ Don't settle for the "rigid" look of standard platforms.
121
30
 
122
- ### Production Multi-Tenant
31
+ - **AI Design Creator:** Design any section by prompt for complete creative control.
32
+ - **Semantic Integrity:** We extract content as Markdown for full-text search and maximum SEO benefit, ensuring your signal remains concrete even when the design is fluid.
123
33
 
124
- - Same as single-tenant plus:
125
- - Wildcard domain support (`*.yourdomain.com`)
126
- - Tenant management at `/sandbox/register`
127
- - Multiple isolated websites from one installation
34
+ ### 3. Total Memory (Privacy as Infrastructure)
128
35
 
129
- ### Dedicated Instance
36
+ We moved "memory" from fragile third-party cookies (The Dependent Web) to a proprietary server-side logic engine (The Free Web).
130
37
 
131
- - Completely separate installation per site
132
- - Own source code, binaries, and data
133
- - Maximum isolation and customization
134
- - Perfect for agencies managing multiple clients
38
+ - **The Handshake:** First-party session management keeps the conversation fluid without external tracking.
39
+ - **The Kill Switch:** True data sovereignty. If a user revokes consent, the system immediately purges the session.
135
40
 
136
- ## Project Structure
137
-
138
- ```
139
- ~/t8k/ # Development install
140
- ├── src/
141
- │ ├── tractstack-go/ # Go backend source
142
- │ │ └── tractstack-go # Compiled binary
143
- │ └── my-tractstack/ # Astro frontend
144
- │ ├── src/
145
- │ │ ├── components/ # Custom components
146
- │ │ ├── pages/ # Astro pages
147
- │ │ └── custom/ # Your customizations
148
- │ └── astro.config.mjs
149
- └── t8k-go-server/ # Backend data storage
150
- ├── config/
151
- │ ├── t8k/
152
- │ │ └── tenants.json # Tenant registry
153
- │ └── default/ # Default tenant config
154
- │ ├── env.json # Core configuration
155
- │ ├── brand.json # Site branding
156
- │ ├── knownResources.json # Resource tracking
157
- │ ├── tailwindWhitelist.json # CSS optimization
158
- │ └── media/ # Media files
159
- │ ├── images/
160
- │ └── css/
161
- ├── db/
162
- │ └── default/
163
- │ └── tractstack.db # SQLite database
164
- └── log/
165
- ├── system.log
166
- ├── tenant.log
167
- └── database.log
168
- ```
169
-
170
- ### Production Structure
171
-
172
- Production installations live at `/home/t8k/` with the same structure plus:
173
-
174
- ```
175
- /home/t8k/
176
- ├── bin/
177
- │ └── tractstack-go # Production binary
178
- ├── etc/
179
- │ ├── letsencrypt/ # SSL certificates
180
- │ ├── pm2/ # PM2 configs
181
- │ └── t8k-ports.conf # Port allocations
182
- ├── scripts/
183
- │ └── t8k-concierge.sh # Build automation
184
- └── state/ # Build queue
185
- ```
186
-
187
- ## Multi-Tenant Features
188
-
189
- TractStack v2 includes powerful multi-tenant capabilities:
41
+ ---
190
42
 
191
- - **Tenant Registration**: Self-service tenant creation at `/sandbox/register`
192
- - **Domain Routing**: Automatic subdomain routing (`tenant.yourdomain.com`)
193
- - **Isolated Data**: Each tenant has separate databases and media
194
- - **Capacity Management**: Configurable tenant limits
195
- - **Email Activation**: Automated tenant activation emails
43
+ ## The Tech Stack
196
44
 
197
- ## Service Management
45
+ TractStack is a hybrid engine designed for performance and logic.
198
46
 
199
- ### Main Installation
47
+ - **Frontend:** [Astro](https://astro.build) — The "Free Web" Press for SEO-ready HTML.
48
+ - **Backend:** Golang — A compiled engine that manages state, session continuity, and adaptive content.
49
+ - **Glue:** [HTMX](https://htmx.org) — Enables real-time, dynamic interactions without heavy client-side frameworks.
50
+ - **Data:** [Turso](https://turso.tech) — Scalable high performance, lightweight database.
200
51
 
201
- ```bash
202
- # Status
203
- sudo systemctl status tractstack-go
204
- sudo -u t8k pm2 status astro-main
52
+ ## Quick Start
205
53
 
206
- # Restart
207
- sudo systemctl restart tractstack-go
208
- sudo -u t8k pm2 restart astro-main
209
-
210
- # Logs
211
- sudo journalctl -u tractstack-go -f
212
- sudo -u t8k pm2 logs astro-main
213
- ```
214
-
215
- ### Dedicated Instances
54
+ Visit [https://tractstack.com](Tract Stack dot com) for hosted plans. For the do-it-yourself folks, our one-line installer handles the heavy lifting:
216
55
 
217
56
  ```bash
218
- # Replace SITE_ID with your site identifier
219
- sudo systemctl status tractstack-go@SITE_ID
220
- sudo -u t8k pm2 status astro-SITE_ID
221
- ```
222
-
223
- ## Build System
224
-
225
- The build concierge processes automated builds via CSV files in `/home/t8k/state/`:
226
-
227
- ```csv
228
- type=main,tenant=default,command=build
229
- type=dedicated,site=SITE_ID,command=build
57
+ curl -fsSL https://get.tractstack.com | bash
230
58
  ```
231
59
 
232
- The system automatically:
233
-
234
- 1. Pulls latest code from Git
235
- 2. Builds Go backend and Astro frontend
236
- 3. Extracts Tailwind CSS optimizations
237
- 4. Restarts services
238
- 5. Cleans up processed files
239
-
240
- ## Database Options
241
-
242
- ### SQLite (Default)
243
-
244
- - Zero configuration required
245
- - Perfect for most websites
246
- - Automatic backups and maintenance
247
- - Scales to hundreds of thousands of visitors
248
-
249
- ### Turso Cloud Database
250
-
251
- - Distributed SQLite with global replication
252
- - Configure during site initialization
253
- - Seamless scaling for high-traffic sites
254
- - Built-in analytics and monitoring
255
-
256
- ## Development Workflow
257
-
258
- 1. **Edit Content**: Use StoryKeep CMS at `/storykeep`
259
- 2. **Customize Design**: Modify components in `src/custom/`
260
- 3. **Add Features**: Create CodeHooks for dynamic functionality
261
- 4. **Test Changes**: Hot reloading with `pnpm dev`
262
- 5. **Deploy**: Automated builds handle production updates
60
+ For more recipes and community guides, visit [FreeWebPress.org](https://FreeWebPress.org).
263
61
 
264
- ## API Integration
265
-
266
- TractStack provides RESTful APIs for:
267
-
268
- - Content management
269
- - User analytics
270
- - Belief tracking (visitor preferences)
271
- - Multi-tenant operations
272
- - Media handling
62
+ ---
273
63
 
274
- ## Uninstalling
64
+ ## Technical Scrutiny: Privacy & Continuity
275
65
 
276
- **For Production installations**, the uninstall script is located at `/home/t8k/scripts/`:
66
+ - **Functional Persistence:** Uses `tractstack_session_id` for short-lived (24hr) functional continuity.
67
+ - **Hybrid Restoration:** Uses a secure "fingerprint" token to reconstruct sessions in RAM if the server restarts, ensuring continuity without permanent tracking.
68
+ - **Data Minimization:** Sensitive profile data (name, email) is stored in the user's browser `localStorage` rather than a centralized database by default.
277
69
 
278
- ```bash
279
- sudo /home/t8k/scripts/t8k-uninstall.sh
280
- ```
70
+ ---
281
71
 
282
- **For Quick install (development)**, the script is in:
72
+ ## Roadmap v4.0
283
73
 
284
- ```bash
285
- sudo ~/t8k/src/tractstack-go/pkg/scripts/t8k-uninstall.sh
286
- ```
74
+ ### Transcribe Integration
287
75
 
288
- ## Support & Documentation
76
+ Expanding full-text search to include embedded video transcripts (via BunnyCDN).
289
77
 
290
- - **Documentation**: <https://tractstack.org>
291
- - **GitHub Issues**: <https://github.com/AtRiskMedia/tractstack-go/issues>
292
- - **Email Support**: <hello@tractstack.com>
293
- - **Community**: Join discussions about adaptive web experiences
78
+ - **AI Visual Editor:** Powered by AssemblyAI askLemur to highlight and extract transcript sections.
79
+ - **Smart Content:** Automated chaptering and descriptions for long-form video.
80
+ - **Video-to-Blog Pipeline:** Transform video highlights into rich, searchable blog pages using the design library.
294
81
 
295
- ## License
82
+ ### Future Infrastructure
296
83
 
297
- The frontend Astro integration is available via the MIT license.
298
- The backend epistemic hypermedia server is available via the **O'Sassy Open Source License**
84
+ - **HTMX 4.0 Migration:** Full alignment with the htmx 4.0 standard to ensure the platform remains at the cutting edge of hypermedia.
299
85
 
300
86
  ---
301
87
 
302
- TractStack v2.1
303
- _Made with ❤️ by [At Risk Media](https://atriskmedia.com)_
88
+ **Documentation:** [tractstack.org](https://tractstack.org)
89
+ **Support:** [hello@tractstack.com](mailto:hello@tractstack.com)
90
+
91
+ _TractStack v2.2 Made with ❤️ by At Risk Media_
@@ -332,7 +332,7 @@ PUBLIC_ENABLE_BUNNY="${finalResponses.enableBunny ? 'true' : 'false'}"
332
332
  try {
333
333
  // Install React and Node adapter
334
334
  execSync(
335
- `${addCommand} react@^18.3.1 react-dom@^18.3.1 @astrojs/react@^4.0.0 @astrojs/node@^9.4.3`,
335
+ `${addCommand} react@^19.0.0 react-dom@^19.0.0 @astrojs/react@^4.4.2 @astrojs/node@^9.4.3`,
336
336
  { stdio: 'inherit' }
337
337
  );
338
338
  console.log(kleur.green('✅ React and Node adapter installed'));
@@ -348,7 +348,7 @@ PUBLIC_ENABLE_BUNNY="${finalResponses.enableBunny ? 'true' : 'false'}"
348
348
 
349
349
  // Install UI components
350
350
  execSync(
351
- `${addCommand} @ark-ui/react@^5.26.0 @heroicons/react@^2.1.1 @internationalized/date@3.10.0`,
351
+ `${addCommand} @ark-ui/react@^5.30.0 @heroicons/react@^2.1.1 @internationalized/date@^3.10.1`,
352
352
  {
353
353
  stdio: 'inherit',
354
354
  }
@@ -365,12 +365,15 @@ PUBLIC_ENABLE_BUNNY="${finalResponses.enableBunny ? 'true' : 'false'}"
365
365
  console.log(kleur.green('✅ Visualization dependencies installed'));
366
366
 
367
367
  // Install additional dependencies
368
- execSync(`${addCommand} path-to-regexp@^8.0.0`, { stdio: 'inherit' });
368
+ execSync(
369
+ `${addCommand} path-to-regexp@^8.0.0 postcss postcss-selector-parser`,
370
+ { stdio: 'inherit' }
371
+ );
369
372
  console.log(kleur.green('✅ Additional dependencies installed'));
370
373
 
371
374
  // Install dev dependencies
372
375
  execSync(
373
- `${addCommand} -D @types/node@^22.18.0 @types/react@^18.3.11 @types/react-dom@^18.3.0 @types/d3@^7.4.3 @types/d3-sankey@^0.12.3 prettier@^3.3.3 prettier-plugin-astro@^0.14.1 prettier-plugin-tailwindcss@^0.6.8 typescript@^5.9.2 @types/tinycolor2@^1.4.6 @mhsdesign/jit-browser-tailwindcss@^0.4.2`,
376
+ `${addCommand} -D @types/node@^22.18.0 @types/react@^19.0.0 @types/react-dom@^19.0.0 @types/d3@^7.4.3 @types/d3-sankey@^0.12.3 prettier@^3.7.4 prettier-plugin-astro@^0.14.1 prettier-plugin-tailwindcss@^0.7.2 typescript@^5.9.3 @types/tinycolor2@^1.4.6 @mhsdesign/jit-browser-tailwindcss@^0.4.2`,
374
377
  { stdio: 'inherit' }
375
378
  );
376
379
  console.log(kleur.green('✅ Dev dependencies installed'));
@@ -379,12 +382,12 @@ PUBLIC_ENABLE_BUNNY="${finalResponses.enableBunny ? 'true' : 'false'}"
379
382
  console.log('Please run manually:');
380
383
  console.log(
381
384
  kleur.cyan(
382
- `${addCommand} react@^18.3.1 react-dom@^18.3.1 @astrojs/react@^4.0.0 @astrojs/node@^9.4.3 @nanostores/react@^1.0.0 nanostores@^1.0.1 @nanostores/persistent ulid@^3.0.1 @ark-ui/react@^5.26.0 @heroicons/react@^2.1.1 @internationalized/date@3.10.0 d3@^7.9.0 d3-sankey@^0.12.3 recharts@^3.1.2 player.js@^0.1.0 tinycolor2@1.6.0 html-to-image@^1.11.13 path-to-regexp@^8.0.0`
385
+ `${addCommand} react@^19.0.0 react-dom@^19.0.0 @astrojs/react@^4.4.2 @astrojs/node@^9.4.3 @nanostores/react@^1.0.0 nanostores@^1.0.1 @nanostores/persistent ulid@^3.0.1 @ark-ui/react@^5.30.0 @heroicons/react@^2.1.1 @internationalized/date@^3.10.1 d3@^7.9.0 d3-sankey@^0.12.3 recharts@^3.1.2 player.js@^0.1.0 tinycolor2@1.6.0 html-to-image@^1.11.13 path-to-regexp@^8.0.0 postcss postcss-selector-parser`
383
386
  )
384
387
  );
385
388
  console.log(
386
389
  kleur.cyan(
387
- `${addCommand} -D @types/node@^22.18.0 @types/react@^18.3.11 @types/react-dom@^18.3.0 @types/d3@^7.4.3 @types/d3-sankey@^0.12.3 prettier@^3.3.3 prettier-plugin-astro@^0.14.1 prettier-plugin-tailwindcss@^0.6.8 typescript@^5.9.2 @types/tinycolor2@^1.4.6 @mhsdesign/jit-browser-tailwindcss@^0.4.2`
390
+ `${addCommand} -D @types/node@^22.18.0 @types/react@^19.0.0 @types/react-dom@^19.0.0 @types/d3@^7.4.3 @types/d3-sankey@^0.12.3 prettier@^3.7.4 prettier-plugin-astro@^0.14.1 prettier-plugin-tailwindcss@^0.7.2 typescript@^5.9.3 @types/tinycolor2@^1.4.6 @mhsdesign/jit-browser-tailwindcss@^0.4.2`
388
391
  )
389
392
  );
390
393
  process.exit(1);