@amityco/social-plus-vise 0.14.12 → 0.14.13
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/CHANGELOG.md +10 -0
- package/dist/productExpectations.js +25 -0
- package/dist/tools/project.js +3 -2
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,16 @@ All notable changes to `@amityco/social-plus-vise` are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is loosely based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## 0.14.13 — 2026-06-05
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- **Comment UI-state precision:** `*.comments.ui-states-present` now requires loading/empty/error handling inside the comment surface itself, so unrelated feed/auth/network state words elsewhere in the app do not satisfy the comment tray expectation.
|
|
11
|
+
- **Rich feed rendering grouping:** `feed.rich-post-rendering` now groups both concrete post datatype handling and parent-child post rendering sensors across TypeScript, React Native, Android, Flutter, and iOS.
|
|
12
|
+
- **Repeatable host-agent smoke:** `npm run validate` now includes a temp-project flow that verifies design extraction, plan question surfacing, answered init, optional capability sensors, grouped product expectations, and ambiguous attestation guidance.
|
|
13
|
+
|
|
14
|
+
### Verified
|
|
15
|
+
- Focused validator coverage and real-project temp-copy smokes covered Android, TypeScript, and iOS host apps without modifying the original projects.
|
|
16
|
+
|
|
7
17
|
## 0.14.12 — 2026-06-05
|
|
8
18
|
|
|
9
19
|
### Changed
|
|
@@ -4,26 +4,51 @@ export const PRODUCT_EXPECTATION_BINDINGS = [
|
|
|
4
4
|
sensorId: "typescript.feed.post-datatype-handled",
|
|
5
5
|
platform: "typescript",
|
|
6
6
|
},
|
|
7
|
+
{
|
|
8
|
+
expectationId: "feed.rich-post-rendering",
|
|
9
|
+
sensorId: "typescript.posts.parent-child-rendered",
|
|
10
|
+
platform: "typescript",
|
|
11
|
+
},
|
|
7
12
|
{
|
|
8
13
|
expectationId: "feed.rich-post-rendering",
|
|
9
14
|
sensorId: "react-native.feed.post-datatype-handled",
|
|
10
15
|
platform: "react-native",
|
|
11
16
|
},
|
|
17
|
+
{
|
|
18
|
+
expectationId: "feed.rich-post-rendering",
|
|
19
|
+
sensorId: "react-native.posts.parent-child-rendered",
|
|
20
|
+
platform: "react-native",
|
|
21
|
+
},
|
|
12
22
|
{
|
|
13
23
|
expectationId: "feed.rich-post-rendering",
|
|
14
24
|
sensorId: "android.feed.post-datatype-handled",
|
|
15
25
|
platform: "android",
|
|
16
26
|
},
|
|
27
|
+
{
|
|
28
|
+
expectationId: "feed.rich-post-rendering",
|
|
29
|
+
sensorId: "android.posts.parent-child-rendered",
|
|
30
|
+
platform: "android",
|
|
31
|
+
},
|
|
17
32
|
{
|
|
18
33
|
expectationId: "feed.rich-post-rendering",
|
|
19
34
|
sensorId: "flutter.feed.post-datatype-handled",
|
|
20
35
|
platform: "flutter",
|
|
21
36
|
},
|
|
37
|
+
{
|
|
38
|
+
expectationId: "feed.rich-post-rendering",
|
|
39
|
+
sensorId: "flutter.posts.parent-child-rendered",
|
|
40
|
+
platform: "flutter",
|
|
41
|
+
},
|
|
22
42
|
{
|
|
23
43
|
expectationId: "feed.rich-post-rendering",
|
|
24
44
|
sensorId: "ios.feed.post-datatype-handled",
|
|
25
45
|
platform: "ios",
|
|
26
46
|
},
|
|
47
|
+
{
|
|
48
|
+
expectationId: "feed.rich-post-rendering",
|
|
49
|
+
sensorId: "ios.posts.parent-child-rendered",
|
|
50
|
+
platform: "ios",
|
|
51
|
+
},
|
|
27
52
|
{
|
|
28
53
|
expectationId: "feed.rich-post-composer-scope",
|
|
29
54
|
sensorId: "typescript.feed.rich-post-composer-surfaced",
|
package/dist/tools/project.js
CHANGED
|
@@ -1022,8 +1022,9 @@ function validateComments(root, platform, sourceContent) {
|
|
|
1022
1022
|
if (commentFiles.length > 0 && hasReactiveCommentObserver && !containsAny(sourceContent, cleanupMarkers)) {
|
|
1023
1023
|
findings.push(finding(`${platform}.comments.observer-cleanup`, "warning", "Comment observer/subscription was found but no obvious cleanup was detected.", relativeFile(root, commentFiles[0]), "Dispose or unsubscribe comment observers when the lifecycle owner is destroyed."));
|
|
1024
1024
|
}
|
|
1025
|
-
// ui-states-present: require loading/empty/error states
|
|
1026
|
-
|
|
1025
|
+
// ui-states-present: require loading/empty/error states in the comment surface itself.
|
|
1026
|
+
// Unrelated feed/auth/network state markers elsewhere in the project do not make a comment UI complete.
|
|
1027
|
+
if (!containsAnyForFiles(sourceContent, commentFiles, COMMENT_UI_STATE_MARKERS)) {
|
|
1027
1028
|
findings.push(finding(`${platform}.comments.ui-states-present`, "warning", "Comment UI is present but no loading, empty, or error state handling was detected.", relativeFile(root, commentFiles[0]), "Handle loading, empty, and error states in the comment UI for a complete user experience."));
|
|
1028
1029
|
}
|
|
1029
1030
|
// moderation-affordance-present: require moderation on comments (scoped to comment files)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amityco/social-plus-vise",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.13",
|
|
4
4
|
"description": "Skill-guided deterministic CLI for social.plus SDK integration assistance.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"type": "module",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"test:blocks-installer": "npm run build && node test/run-blocks-installer.mjs",
|
|
69
69
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
70
70
|
"test:e2e-package": "npm run build && node test/run-e2e-package.mjs",
|
|
71
|
-
"validate": "npm run typecheck && npm test && npm run test:mcp && npm run test:cli && npm run test:docs && npm run test:ast && npm run test:design-extract && npm run test:design-brief && npm run test:capabilities && npm run test:classify && npm run test:compliance && npm run test:product-flow && npm run test:rule-coverage && npm run test:readme-coverage && npm run test:happy-path-clean && npm run test:fixture-symmetry && npm run test:nonui-skip && npm run test:sdk-version && npm run test:sdk-surface && npm run test:sdk-facts && npm run test:blocks-installer && npm run test:native-idioms && npm run test:grader-facts && npm run test:ground-truth && npm run test:improvements && npm run test:debug && npm run test:preflight && npm run test:e2e-package && npm run bench:symbols-drift && npm run pack:check",
|
|
71
|
+
"validate": "npm run typecheck && npm test && npm run test:mcp && npm run test:cli && npm run test:docs && npm run test:ast && npm run test:design-extract && npm run test:design-brief && npm run test:capabilities && npm run test:classify && npm run test:compliance && npm run test:product-flow && npm run test:agent-flow && npm run test:rule-coverage && npm run test:readme-coverage && npm run test:happy-path-clean && npm run test:fixture-symmetry && npm run test:nonui-skip && npm run test:sdk-version && npm run test:sdk-surface && npm run test:sdk-facts && npm run test:blocks-installer && npm run test:native-idioms && npm run test:grader-facts && npm run test:ground-truth && npm run test:improvements && npm run test:debug && npm run test:preflight && npm run test:e2e-package && npm run bench:symbols-drift && npm run pack:check",
|
|
72
72
|
"test:ast": "node test/run-ast-helpers.mjs",
|
|
73
73
|
"test:design-extract": "npm run build && node test/run-design-extract.mjs",
|
|
74
74
|
"test:design-brief": "npm run build && node test/run-design-brief.mjs",
|
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
"test:debug": "npm run build && node test/run-debug.mjs",
|
|
78
78
|
"test:preflight": "npm run build && node test/run-preflight.mjs",
|
|
79
79
|
"test:product-flow": "npm run build && node test/run-product-flow.mjs",
|
|
80
|
+
"test:agent-flow": "npm run build && node test/run-agent-flow-smoke.mjs",
|
|
80
81
|
"test:native-idioms": "npm run build && node test/run-native-idioms.mjs",
|
|
81
82
|
"test:grader-facts": "node test/run-grader-facts.mjs",
|
|
82
83
|
"test:ground-truth": "node test/run-ground-truth.mjs",
|