docs(plugins): consolidate foundation landing ledger and sample provenance
This commit is contained in:
1 parent
50fda91424
commit
1f0741698d
2 files changed
+274
No files matched your search
@@ -0,0 +1,97 @@
|
||||
# Plugin foundation landing candidate
|
||||
|
||||
Draft #4011 is the single landing vehicle for the accumulated plugin foundation.
|
||||
Earlier integration records describe frozen evidence, not the current acceptance
|
||||
status. This candidate preserves their source history through ordinary merges.
|
||||
It does not include global Agent/custom Chat #4006/#4012, model-picker #4002,
|
||||
or terminal diagnostic #3999. No older source PR is closed by this preparation.
|
||||
|
||||
## Included commits
|
||||
|
||||
| Input | Exact input | Ordinary integration |
|
||||
| --- | --- | --- |
|
||||
| Prior #4011 | `d40b0d3c25ed00a33679e83be948fd1a5aa10bfa` | Starting point; all inherited contributions retained |
|
||||
| Current main | `2796d1113a6310fae1779931f242e208a69b95a5` | `db1223d16`; Nginx #4010, macOS appearance #4013, closed-socket MCP reconnect #4016 |
|
||||
| Author metadata and installed rows | `e4eb33856b335fe0b1d302827b1325ddfc23bdde` | `b3895a477`; preserves original avatar/badge, canonical v2 schema, b14 invalidation, exact visual-worker patch |
|
||||
| Directory availability | `a36a906292cbe8033bc19b596dcaf7f853a804c7` | `d035cbea3`; no native adapter or expanded permission |
|
||||
| Two-profile sync composition | `14ed19d2ed7cd1ecc201c9c910b112e97cc098ff` | `fc37ac48e`; tests only |
|
||||
| Rejected-install catalog refresh | `50fda91424c915c1497e53a87a210e3943cb1e39` | Separate correction after bounded review; service and mounted-row regression only |
|
||||
|
||||
The only manual merge conflict was the end of `index.css`. Resolution retains
|
||||
both the prior host-security theme block and main's window-background-blur block,
|
||||
with their declarations unchanged. Automatic combinations retain main appearance
|
||||
wiring alongside plugin settings/theme wiring, all five locales, preload methods,
|
||||
the host services and SDK exports. No permission, source, endpoint, sandbox or
|
||||
selected-resource restriction is relaxed. Package and lock inputs are unchanged.
|
||||
|
||||
`50fda9142` reuses the same selection-token comparison after an install-triggered
|
||||
catalog refresh, including an install rejected for a changed/withdrawn selection.
|
||||
The rejection is preserved; mounted authors no longer retain withdrawn enrichment.
|
||||
The regression makes no package download or execution. It also preserves the
|
||||
original synchronous unavailable-source rejection in `list()`: the first aggregate
|
||||
runtime run caught that b14 changed it into a Promise rejection. The assertion was
|
||||
not weakened. Corrected aggregate runtime: 711 pass, one native skip, zero failures
|
||||
or cancellations. The original failed run and fail-before regression are retained.
|
||||
|
||||
## Checks and packages
|
||||
|
||||
Registered runtime, SDK/contract, Settings and actual connected host entrypoints,
|
||||
changed-main MCP/appearance/editor regressions, example preparation, code generation,
|
||||
lint and the normal production renderer build are run on this candidate. Exact
|
||||
head, commands, counts and CI links are recorded in #4011. Package provenance is
|
||||
in [the bounded sample manifest](foundation-packages.json): each archive is built
|
||||
twice and whole-byte compared. Assistant is byte-identical to d40; Host changes
|
||||
only README wording, with manifest/entrypoint unchanged. Database-owned, Rfam and
|
||||
terminal archives change only `browser.js` minified bound identifier spelling.
|
||||
Rebuilding the same sources with d40's generated SDK/contract artifacts reproduces
|
||||
the exact old archive hashes. Parsing and normalizing lexical bindings yields
|
||||
identical ASTs for all three bundles; manifests, protocol and permissions do not
|
||||
change. Preparation does not connect, activate or query.
|
||||
|
||||
Local checks: runtime 711 pass/one existing native skip; SDK91; Settings and
|
||||
connected host/security78; changed-main MCP/appearance/editor71; examples five
|
||||
pass/one Docker opt-in skip. Contract/capability/Codex generation has no drift;
|
||||
lint zero errors/seven existing warnings; normal production build36.13s. These
|
||||
checks do not claim native UI, packaging or encrypted transport acceptance.
|
||||
|
||||
An earlier coding-executor full suite timed out after 15 minutes: 31 failures and
|
||||
482 cancellations. Seven failures reproduced on unchanged d40; 24 were not probed
|
||||
on that baseline. They remain unresolved evidence, not assumed baseline failures.
|
||||
No additional long local full suite is used to conceal them. Clean-run exact-head
|
||||
CI is a separate aggregate check and does not diagnose that historical run.
|
||||
|
||||
## Acceptance and landing order
|
||||
|
||||
1. Foundation: keep #4011 Draft until integrated CI/review and affected native UI
|
||||
acceptance settle. d40 Settings, Host/Vault policy, terminal A/B selection and
|
||||
inert multiline draft isolation, and native chat split/drag ownership passes
|
||||
are historical evidence at their stated heads. They do not certify this new
|
||||
current-main merge tree. The e4 row candidate remains frozen for its own normal
|
||||
app light/dark/narrow verification. New avatar/catalog presentation and the
|
||||
final install-refresh correction require their scoped review/acceptance.
|
||||
2. Marketplace distribution: retain static-source identity and v2 delivery checks,
|
||||
but track reviewed registry data, actual hosting/CDN and install/update/source
|
||||
replacement/withdrawal acceptance separately. Current live source-only viewing
|
||||
is not installation or deployment acceptance. Never weaken admitted-source or
|
||||
destination guards to manufacture a pass.
|
||||
3. Global Agent: #4006/#4012 remain a separate later increment, with their own
|
||||
scope, review, CI and actual sample smoke. #4002 is also separate.
|
||||
|
||||
Historical integration vehicles #3967/#3989/#3993/#3997/#4001/#4004 are superseded
|
||||
as landing vehicles, not discarded contributions. Their ancestors and native
|
||||
receipts stay available. Unique source PRs remain intact; no premature closures.
|
||||
|
||||
Directory enumeration is intentionally unavailable in the default production
|
||||
composition until a same-handle adapter exists. The advertised feature now tells
|
||||
SDK callers the truth; filesystem permission alone does not enable it. The new
|
||||
sync composition test proves local collect/apply/hydrate with real databases, not
|
||||
encrypted cloud transport or native cloud-account sync. A native compatibility
|
||||
transition needs two properly versioned builds; two 0.0.0 checkouts do not qualify.
|
||||
|
||||
Public database acceptance remains blocked by the retained TCP refusal before
|
||||
protocol payload; the separately owned local fixture is pending. Source-policy,
|
||||
compatibility and database gates must be explicitly reconciled by the parent,
|
||||
not silently removed from requirements. Nested log-dialog overlap has source
|
||||
coverage but no normal native route in the tested UI. This is code-readiness work,
|
||||
not a claim that deployment, every original requirement or the whole project is
|
||||
complete. No main merge, Ready transition, release or live metadata publication.
|
||||
@@ -0,0 +1,177 @@
|
||||
[
|
||||
{
|
||||
"name": "assistant",
|
||||
"id": "com.netcatty.assistant",
|
||||
"version": "0.1.0",
|
||||
"sha256": "7943d4c3800914fe0acd3d0f3a3d7f7c1910c212a5dc58a044871a6a82485274",
|
||||
"bytes": 17214,
|
||||
"fileCount": 6,
|
||||
"permissions": {
|
||||
"required": [
|
||||
"commands",
|
||||
"views"
|
||||
],
|
||||
"optional": [
|
||||
"ai.invoke",
|
||||
"context.selected.list",
|
||||
"context.selected.read"
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"required": [
|
||||
"ai.model-invocation",
|
||||
"context.selected-read"
|
||||
]
|
||||
},
|
||||
"repeatIdentical": true,
|
||||
"previousD40Sha256": "7943d4c3800914fe0acd3d0f3a3d7f7c1910c212a5dc58a044871a6a82485274",
|
||||
"preparedOnly": true,
|
||||
"noConnectionOrActivation": true,
|
||||
"changedEntriesFromD40": [],
|
||||
"delta": "Archive byte-identical."
|
||||
},
|
||||
{
|
||||
"name": "database-owned",
|
||||
"id": "com.netcatty.database-minimal",
|
||||
"version": "0.1.0",
|
||||
"sha256": "3c67f529cd5d2843dbf74a62d237b7b7d50d24a466ade85cce76b3adfff919a2",
|
||||
"bytes": 11660,
|
||||
"fileCount": 5,
|
||||
"permissions": {
|
||||
"required": [
|
||||
"commands",
|
||||
"views"
|
||||
],
|
||||
"optional": [
|
||||
{
|
||||
"permission": "network.stream",
|
||||
"resources": [
|
||||
"tcp://10.77.0.20:3306"
|
||||
],
|
||||
"reason": "Connect only to the prepared disposable fixture."
|
||||
}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"required": [
|
||||
"network.byte-streams"
|
||||
]
|
||||
},
|
||||
"repeatIdentical": true,
|
||||
"previousD40Sha256": "f01c6a24382897d4b0bf4130941274abacb9a9a963f9b56ecaceb2c020f36874",
|
||||
"preparedOnly": true,
|
||||
"noConnectionOrActivation": true,
|
||||
"changedEntriesFromD40": [
|
||||
"browser.js"
|
||||
],
|
||||
"delta": "Generated SDK export changes alter only minified bound identifier spelling; scope-aware normalized AST is identical.",
|
||||
"oldGeneratedRebuildSha256": "f01c6a24382897d4b0bf4130941274abacb9a9a963f9b56ecaceb2c020f36874",
|
||||
"boundIdentifierAlphaEquivalent": true
|
||||
},
|
||||
{
|
||||
"name": "database-rfam-readonly",
|
||||
"id": "com.netcatty.database-rfam-readonly",
|
||||
"version": "0.1.0",
|
||||
"sha256": "554407c067ced0a6634599b7eccc7c6dbb4f2ff7c523d0bacbbbd4fb78c04612",
|
||||
"bytes": 11003,
|
||||
"fileCount": 5,
|
||||
"permissions": {
|
||||
"required": [
|
||||
"commands",
|
||||
"views"
|
||||
],
|
||||
"optional": [
|
||||
{
|
||||
"permission": "network.stream",
|
||||
"resources": [
|
||||
"tcp://mysql-rfam-public.ebi.ac.uk:4497"
|
||||
],
|
||||
"reason": "Run the fixed public Rfam acceptance query only after explicit authorization."
|
||||
}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"required": [
|
||||
"network.byte-streams"
|
||||
]
|
||||
},
|
||||
"repeatIdentical": true,
|
||||
"previousD40Sha256": "aaca586669db454e91d61487e576ed524d1b7190eed182bc2cd0035e59caa0d3",
|
||||
"preparedOnly": true,
|
||||
"noConnectionOrActivation": true,
|
||||
"changedEntriesFromD40": [
|
||||
"browser.js"
|
||||
],
|
||||
"delta": "Generated SDK export changes alter only minified bound identifier spelling; scope-aware normalized AST is identical.",
|
||||
"oldGeneratedRebuildSha256": "aaca586669db454e91d61487e576ed524d1b7190eed182bc2cd0035e59caa0d3",
|
||||
"boundIdentifierAlphaEquivalent": true
|
||||
},
|
||||
{
|
||||
"name": "host-actions",
|
||||
"id": "com.netcatty.host-actions",
|
||||
"version": "0.1.0",
|
||||
"sha256": "9713f001449b0c749f518d42f013fa72ead6dd43f8e7ddd7843cc6ecc03027f9",
|
||||
"bytes": 4789,
|
||||
"fileCount": 3,
|
||||
"permissions": {
|
||||
"required": [
|
||||
"commands",
|
||||
"menus"
|
||||
],
|
||||
"optional": [
|
||||
"vault.metadata",
|
||||
"vault.write",
|
||||
"ui.interact"
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"required": [
|
||||
"vault.host-actions",
|
||||
"commands.interactive"
|
||||
]
|
||||
},
|
||||
"repeatIdentical": true,
|
||||
"previousD40Sha256": "cf04f82dfe25ab5cda6f5f3dad0a8fb06c37bedf9924f556bee2b8402e542ef2",
|
||||
"preparedOnly": true,
|
||||
"noConnectionOrActivation": true,
|
||||
"changedEntriesFromD40": [
|
||||
"README.md"
|
||||
],
|
||||
"delta": "README wording follows permission policy. Manifest and browser entrypoint are byte-identical."
|
||||
},
|
||||
{
|
||||
"name": "terminal-selection-draft",
|
||||
"id": "com.netcatty.terminal-selection-draft",
|
||||
"version": "0.1.0",
|
||||
"sha256": "aaadd8687b1af1d6e1f9a56c52760ac0d19e7ed4e8212fb7c8775ed052ed74f1",
|
||||
"bytes": 2954,
|
||||
"fileCount": 2,
|
||||
"permissions": {
|
||||
"required": [
|
||||
"commands",
|
||||
"menus"
|
||||
],
|
||||
"optional": [
|
||||
"terminal.selection.read",
|
||||
"terminal.input.propose"
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"required": [
|
||||
"terminal.selection-sharing",
|
||||
"terminal.input-drafts",
|
||||
"commands.interactive"
|
||||
]
|
||||
},
|
||||
"repeatIdentical": true,
|
||||
"previousD40Sha256": "4c9c2388b7f891156192a0b5ab7b23291beba3555e7ec8cf24fbe2dfe1242d5e",
|
||||
"preparedOnly": true,
|
||||
"noConnectionOrActivation": true,
|
||||
"changedEntriesFromD40": [
|
||||
"browser.js"
|
||||
],
|
||||
"delta": "Generated SDK export changes alter only minified bound identifier spelling; scope-aware normalized AST is identical.",
|
||||
"oldGeneratedRebuildSha256": "4c9c2388b7f891156192a0b5ab7b23291beba3555e7ec8cf24fbe2dfe1242d5e",
|
||||
"boundIdentifierAlphaEquivalent": true
|
||||
}
|
||||
]
|
||||
Reference in new issue
Block a user