feedback-collector 0.3.1 → 0.3.2
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.
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Coletor de feedback visual para desenvolvimento assistido por IA. Segure ALT, clique nos elementos que quer mudar, escreva instruções curtas e exporte um backlog markdown com contexto técnico — incluindo `arquivo:linha` quando o projeto injeta source mapping no DOM.
|
|
4
4
|
|
|
5
|
-
O projeto continua deliberadamente pequeno: runtime vanilla, zero dependências de runtime, sem backend, screenshots, imagens ou serviços externos.
|
|
5
|
+
O projeto continua deliberadamente pequeno: runtime vanilla, zero dependências de runtime, sem backend, screenshots, imagens ou serviços externos. Desde a v0.2 a autoria interna é TypeScript modular, com API de ciclo de vida e builds de biblioteca, sem quebrar a instalação v0.1.
|
|
6
6
|
|
|
7
7
|
## O problema
|
|
8
8
|
|
|
@@ -65,7 +65,7 @@ O runtime lê os atributos já suportados pela v0.1 no elemento ou em seus ances
|
|
|
65
65
|
- `data-inspector-column`
|
|
66
66
|
- `data-source="arquivo:linha:coluna"` como convenção alternativa
|
|
67
67
|
|
|
68
|
-
Para React, a receita validada usa `@react-dev-inspector/babel-plugin`. Instruções de Next webpack, Vite, uso em produção e remoção estão em [`skills/feedback-collector-setup/SKILL.md`](skills/feedback-collector-setup/SKILL.md).
|
|
68
|
+
Para React, a receita validada usa `@react-dev-inspector/babel-plugin`. Instruções de Next webpack, Vite (incluindo Vite 8), apps em iframe, uso em produção e remoção estão em [`skills/feedback-collector-setup/SKILL.md`](skills/feedback-collector-setup/SKILL.md).
|
|
69
69
|
|
|
70
70
|
> React 19 removeu `_debugSource` do fiber. Sem plugin de build, a captura continua funcionando, mas o item não terá `arquivo:linha`.
|
|
71
71
|
|
|
@@ -83,7 +83,7 @@ A fila e o canto escolhido sobrevivem a reloads e navegação SPA. `localStorage
|
|
|
83
83
|
|
|
84
84
|
## Persistência e migração segura
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
O runtime usa a chave `__fbc_state_v2` com envelope versionado:
|
|
87
87
|
|
|
88
88
|
```json
|
|
89
89
|
{
|
|
@@ -96,7 +96,7 @@ Na primeira montagem, se ainda não houver estado v2 válido, o runtime lê o ar
|
|
|
96
96
|
|
|
97
97
|
Falhas de parse, indisponibilidade ou quota do storage não derrubam a página; o collector segue com estado em memória quando possível.
|
|
98
98
|
|
|
99
|
-
## Arquitetura
|
|
99
|
+
## Arquitetura
|
|
100
100
|
|
|
101
101
|
```text
|
|
102
102
|
src/
|
|
@@ -134,7 +134,7 @@ npm run check
|
|
|
134
134
|
|
|
135
135
|
Os testes puros cobrem migração/persistência, export markdown e helpers. O teste Playwright usa Chromium real para verificar auto-mount, ALT+clique, leitura de `data-inspector-*`, edição, persistência, clipboard, destroy e remontagem.
|
|
136
136
|
|
|
137
|
-
O orçamento automatizado limita cada runtime a 30 KB raw e 8 KiB gzip. A
|
|
137
|
+
O orçamento automatizado limita cada runtime a 30 KB raw e 8 KiB gzip. A versão atual fica em cerca de 6 KB gzip; o arquivo v0.1 de referência tinha aproximadamente 6,3 KB gzip.
|
|
138
138
|
|
|
139
139
|
## Integração futura com compiler/bundler
|
|
140
140
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "feedback-collector",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Coletor de feedback visual para desenvolvimento assistido por IA: ALT+clique nos elementos, anote instruções e exporte um backlog em markdown com source mapping (arquivo:linha) pronto para colar no Claude Code ou outro agente.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -4,7 +4,7 @@ description: >
|
|
|
4
4
|
Instala, configura ou remove o feedback-collector (picker visual ALT+clique →
|
|
5
5
|
backlog markdown com arquivo:linha) em um projeto front-end. Use quando o
|
|
6
6
|
usuário pedir para instalar, adicionar, configurar, controlar ou remover o
|
|
7
|
-
feedback-collector. Cobre Next.js (webpack), Vite e sites sem build; inclui
|
|
7
|
+
feedback-collector. Cobre Next.js (webpack), Vite (incl. Vite 8), apps em iframe e sites sem build; inclui
|
|
8
8
|
ciclo de vida v0.2, migração local, caveat de React 19 e gate de produção.
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -77,6 +77,17 @@ porém auto-monta; para controle explícito prefira `feedback-collector/api`.
|
|
|
77
77
|
painel. O gate do runtime não protege os paths injetados pelo plugin: esses
|
|
78
78
|
podem ficar em chunks públicos.
|
|
79
79
|
|
|
80
|
+
### App exibido dentro de iframe
|
|
81
|
+
|
|
82
|
+
Se o mesmo app roda como página host e também dentro de um iframe (ex.: um
|
|
83
|
+
Design Space que mostra telas em frames), carregue o collector só dentro do
|
|
84
|
+
frame; senão ele também se anexa à página host e aparecem dois painéis:
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
const inFrame = window.self !== window.top
|
|
88
|
+
if (inFrame && import.meta.env.DEV) void import("feedback-collector")
|
|
89
|
+
```
|
|
90
|
+
|
|
80
91
|
### Site sem build
|
|
81
92
|
|
|
82
93
|
Copie `node_modules/feedback-collector/dist/feedback-collector.js` para os
|
|
@@ -153,14 +164,55 @@ Remover `if (dev)` é decisão explícita do usuário:
|
|
|
153
164
|
Se aprovado, documente esse trade-off ao lado do config. O gate por papel do
|
|
154
165
|
loader não remove os atributos dos chunks públicos.
|
|
155
166
|
|
|
156
|
-
### Vite + React
|
|
167
|
+
### Vite 8+ / `@vitejs/plugin-react` 6+ (validado em Vite 8 + React 19)
|
|
168
|
+
|
|
169
|
+
O `@vitejs/plugin-react` 6 não tem mais a opção `babel`. Use o
|
|
170
|
+
`@rolldown/plugin-babel` só no dev server:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
pnpm add -D feedback-collector @rolldown/plugin-babel @babel/core @react-dev-inspector/babel-plugin
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
```ts
|
|
177
|
+
// vite.config.ts
|
|
178
|
+
import babel from "@rolldown/plugin-babel"
|
|
179
|
+
|
|
180
|
+
export default defineConfig(({ command }) => ({
|
|
181
|
+
plugins: [
|
|
182
|
+
react(),
|
|
183
|
+
command === "serve" &&
|
|
184
|
+
babel({ plugins: ["@react-dev-inspector/babel-plugin"] }),
|
|
185
|
+
// ...
|
|
186
|
+
],
|
|
187
|
+
}))
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
`command === "serve"` mantém os atributos `data-inspector-*` fora do build.
|
|
191
|
+
|
|
192
|
+
`@babel/core` 8 funciona. O `@react-dev-inspector/babel-plugin` declara peer
|
|
193
|
+
`@babel/core@^7.20.5`, então o pnpm pode mostrar um aviso de peer dependency:
|
|
194
|
+
é esperado e pode ser ignorado.
|
|
195
|
+
|
|
196
|
+
### Vite ≤ 7 / `@vitejs/plugin-react` ≤ 5
|
|
157
197
|
|
|
158
198
|
```bash
|
|
159
|
-
npm i -D
|
|
199
|
+
npm i -D @react-dev-inspector/babel-plugin
|
|
160
200
|
```
|
|
161
201
|
|
|
162
|
-
|
|
163
|
-
|
|
202
|
+
```ts
|
|
203
|
+
react({
|
|
204
|
+
babel: { plugins: ["@react-dev-inspector/babel-plugin"] },
|
|
205
|
+
})
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Para manter fora do build, só inclua o plugin Babel quando `command === "serve"`.
|
|
209
|
+
|
|
210
|
+
### Pacotes que não servem para o mapping
|
|
211
|
+
|
|
212
|
+
- `vite-plugin-react-dev-inspector` não existe no npm.
|
|
213
|
+
- `@react-dev-inspector/vite-plugin` existe, mas é só um helper do dev server
|
|
214
|
+
para abrir arquivos no editor; **não** injeta `data-inspector-*`. Não instale
|
|
215
|
+
para este fim.
|
|
164
216
|
|
|
165
217
|
### Alternativa SWC atual
|
|
166
218
|
|