toga-ai 1.0.660 → 1.0.661
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.
|
@@ -13,3 +13,4 @@
|
|
|
13
13
|
| [Talos AI-Assistant Component (launcher + slide-out chat panel)](features/talos-assistant.md) | `Talos` is a **shared, pure-UI** AI-assistant component in `@agilant/toga-blox`: a header launcher button (`TalosLauncher`) plus a slide-out chat panel (`TalosP | toga-blox/src/components/Talos/TalosLauncher.tsx, toga-blox/src/components/Talos/TalosPanel.tsx, toga-blox/src/components/Talos/TalosMessage.tsx, toga-blox/src/components/Talos/types.ts, toga-blox/src/components/Talos/theme.ts, toga-blox/src/components/Talos/helpers.tsx, toga-blox/src/components/Talos/stub.ts, toga-blox/src/components/Talos/Talos.module.css, toga-blox/src/components/Talos/index.ts, toga-blox/src/components/index.ts |
|
|
14
14
|
| [Toaster — host-token styling contract](features/toaster.md) | The blox `Toaster` is a CSS-Module component whose every visual property reads a `--toaster-*` custom property supplied by the **host app**. | toga-blox/src/components/Toaster/Toaster.module.css, toga-blox/src/components/Toaster/Toaster.tsx, toga-blox/src/components/Toaster/ToasterContext.tsx, toga2-commerce/src/styles/index.css, toga2-commerce/src/components/Toasters/ToasterList.tsx |
|
|
15
15
|
| [Dynamic npm Publish Pipeline (branch → channel)](workflows/dynamic-publish-pipeline.md) | How `@agilant/toga-blox` (checkout folder `toga-blox-npm`, registry repo key `toga-blox`) publishes a per-environment npm **channel** (dist-tag) from a `_<mode> | toga-blox/.github/workflows/publish.yml, toga-blox/package.json, toga-blox/src/utils/getFontAwesomeIcon.tsx |
|
|
16
|
+
| [Landing a Large Long-Lived Feature Branch (merge, never rebase)](workflows/landing-a-large-feature-branch.md) | The procedure for landing a long-lived, very large feature branch (months old, hundreds of commits) into `_production` in `toga-blox-npm`. | toga-blox/package.json, toga-blox/.github/workflows/publish.yml |
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Landing a Large Long-Lived Feature Branch (merge, never rebase)
|
|
3
|
+
framework: "2.0"
|
|
4
|
+
repo: toga-blox
|
|
5
|
+
project: TOGa Blox
|
|
6
|
+
client: shared
|
|
7
|
+
type: workflow
|
|
8
|
+
status: active
|
|
9
|
+
updated: 2026-08-26
|
|
10
|
+
owners: [apeterson]
|
|
11
|
+
files:
|
|
12
|
+
- toga-blox/package.json
|
|
13
|
+
- toga-blox/.github/workflows/publish.yml
|
|
14
|
+
related:
|
|
15
|
+
- ./dynamic-publish-pipeline.md
|
|
16
|
+
- ../architecture.md
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## What it is
|
|
20
|
+
|
|
21
|
+
The procedure for landing a long-lived, very large feature branch (months old, hundreds of
|
|
22
|
+
commits) into `_production` in `toga-blox-npm`. The decision recorded here is **merge
|
|
23
|
+
`_production` into the feature branch — do not rebase.** Use this doc before starting any
|
|
24
|
+
big-branch integration; the recon step is the transferable part.
|
|
25
|
+
|
|
26
|
+
## How it works
|
|
27
|
+
|
|
28
|
+
### 1. Measure the divergence first
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
git rev-list --left-right --count origin/_production...<branch>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Concrete case (2026-08-26): `feature-new-table` was **281 commits ahead / 8 behind**
|
|
35
|
+
`origin/_production`, forked ~3 months earlier, 530 files changed (+46,795 / −14,209).
|
|
36
|
+
|
|
37
|
+
### 2. Preview the conflict surface BEFORE merging
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
git merge-tree $(git merge-base origin/_production <branch>) <branch> origin/_production
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
This shows the exact conflicting files without touching the working tree, which turns
|
|
44
|
+
"530 changed files" into an actionable list. In the case above it was only **4 files**:
|
|
45
|
+
|
|
46
|
+
| File | Resolution |
|
|
47
|
+
|---|---|
|
|
48
|
+
| `package-lock.json` | **regenerate**, never hand-merge |
|
|
49
|
+
| a component `index.ts` | added independently on both sides — union the exports |
|
|
50
|
+
| a `utils` file | `_production` held two type fixes — keep them |
|
|
51
|
+
| `.github/workflows/publish.yml` | both sides added publish channels — **keep both sets** |
|
|
52
|
+
|
|
53
|
+
### 3. Merge `_production` into the feature branch, then PR
|
|
54
|
+
|
|
55
|
+
1. `git merge origin/_production` **on the feature branch**.
|
|
56
|
+
2. Resolve the (small, known) conflict set **once**.
|
|
57
|
+
3. Open a normal PR: feature → `_production`.
|
|
58
|
+
|
|
59
|
+
### Why not rebase
|
|
60
|
+
|
|
61
|
+
Rebasing 281 commits onto `_production` replays every commit, forces the **same conflicts to
|
|
62
|
+
be re-resolved repeatedly**, and **force-rewrites an already-pushed shared branch** — which
|
|
63
|
+
the git-workflow rules forbid on a branch others may have pulled. Merging resolves the
|
|
64
|
+
conflict set exactly once and preserves the pushed history.
|
|
65
|
+
|
|
66
|
+
## Gotchas
|
|
67
|
+
|
|
68
|
+
- **Confirm the release version before merging.** The `version` in `package.json` drives what
|
|
69
|
+
the publish workflow releases. The feature branch carried `1.0.322` while `_production` was
|
|
70
|
+
at `1.0.314`, so the merge publishes the *branch's* number. See
|
|
71
|
+
[dynamic-publish-pipeline](./dynamic-publish-pipeline.md) for how CI derives the published
|
|
72
|
+
version from that base.
|
|
73
|
+
- **Do not read a behind-count as staleness** in this repo — much of it is release plumbing
|
|
74
|
+
generated on the release branch and never merged back (see the publish-pipeline doc).
|
|
75
|
+
|
|
76
|
+
## Change history
|
|
77
|
+
- 2026-08-26 — Created. Recorded the merge-not-rebase decision for landing `feature-new-table`
|
|
78
|
+
(281 ahead / 8 behind, 530 files) into `_production`, and the
|
|
79
|
+
`rev-list --left-right --count` → `merge-tree` recon pair that narrowed the conflict surface
|
|
80
|
+
to 4 files before any merge was started. (apeterson)
|
package/knowledge/INDEX.md
CHANGED
|
@@ -31,7 +31,7 @@ _Auto-generated by `knowledge.js index`. Do not hand-edit._
|
|
|
31
31
|
- **ai-bdr** (AI-BDR) — 13 doc(s) → [2.0/apps/ai-bdr/INDEX.md](2.0/apps/ai-bdr/INDEX.md)
|
|
32
32
|
- **toga2-commerce** (TOGa Commerce) — 19 doc(s) → [2.0/apps/toga2-commerce/INDEX.md](2.0/apps/toga2-commerce/INDEX.md)
|
|
33
33
|
- **toga25-supply** (TOGa 2.5 Supply) — 12 doc(s) → [2.0/apps/toga25-supply/INDEX.md](2.0/apps/toga25-supply/INDEX.md)
|
|
34
|
-
- **toga-blox** (TOGa Blox) —
|
|
34
|
+
- **toga-blox** (TOGa Blox) — 12 doc(s) → [2.0/apps/toga-blox/INDEX.md](2.0/apps/toga-blox/INDEX.md)
|
|
35
35
|
- **bdr** (BDR) — 0 doc(s) → [2.0/apps/bdr/INDEX.md](2.0/apps/bdr/INDEX.md)
|
|
36
36
|
|
|
37
37
|
## standalone framework
|
package/package.json
CHANGED