Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
811871e978 | ||
|
|
fbf1da7452 |
No files matched your search
@@ -2,6 +2,13 @@
|
||||
|
||||
Every release, newest first, generated from the commits in each release.
|
||||
|
||||
## v0.1.4 — 2026-09-26
|
||||
|
||||
### Fixed
|
||||
|
||||
- register the settings card instead of throwing while building it
|
||||
|
||||
|
||||
## v0.1.3 — 2026-09-26
|
||||
|
||||
### Fixed
|
||||
|
||||
+10
-2
@@ -385,6 +385,16 @@ window.__ModuleLoader__.load({
|
||||
*/
|
||||
constructor(ctx) {
|
||||
this.ctx = ctx
|
||||
// Every field the projection reads must exist BEFORE anything projects.
|
||||
//
|
||||
// `SettingsFormModel.bind()` is not a subscription setter: it builds the
|
||||
// snapshot store from one immediate `project()` call, so the projection
|
||||
// runs once, right here, inside this constructor. Assigning `describe`
|
||||
// after `bind` made that first projection read `undefined.getSnapshot()`
|
||||
// — a TypeError thrown while the inject callback was registering the
|
||||
// card, which aborted the registration and left the plugin with no
|
||||
// settings section at all and nothing in the UI to say so.
|
||||
this.describe = ctx.configForms.describe()
|
||||
this.form = ctx.configForms.get(SETTINGS_ENTRY)
|
||||
this.model = new SettingsFormModel(
|
||||
this.form,
|
||||
@@ -399,8 +409,6 @@ window.__ModuleLoader__.load({
|
||||
})),
|
||||
)
|
||||
this.store = this.model.bind(() => this.projection())
|
||||
/** The describe mirror that knows whether a secret is configured. */
|
||||
this.describe = ctx.configForms.describe()
|
||||
}
|
||||
|
||||
/** Everything the page renders, rebuilt whenever the form or a draft moves. */
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "dsh-recall",
|
||||
"version": "0.1.3",
|
||||
"version": "0.1.4",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"description": "Local-embedding code recall for DeepSeek Harness — returns ranked excerpts with line ranges instead of whole files, so the context window stops growing with every read.",
|
||||
|
||||
@@ -109,6 +109,11 @@ function makePrimitives(record) {
|
||||
|
||||
bind(project) {
|
||||
this.project = project
|
||||
// Faithful to the framework: `bind` is not a subscription setter, it
|
||||
// builds the snapshot store from ONE immediate projection. A stub that
|
||||
// only stored the projection would let a controller read a field it has
|
||||
// not assigned yet — which is exactly the bug this reproduces.
|
||||
project()
|
||||
return { getSnapshot: () => project(), subscribe: () => () => {} }
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user