eklavya 1.66.1 → 1.67.0

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
@@ -113,8 +113,13 @@ The [CLI reference](https://eklavya-run.web.app/docs/cli/) lists all commands an
113
113
  flags. `feedback generate` reviews one of your earlier prompts, using what your later prompts in that session had to add, when `feedback.enabled`,
114
114
  memory and `providers.observer` are set. The dashboard reads the database and has five guarded writes: a setting
115
115
  change, a correction of a missed answer (which can also complete a level), and acknowledging, deleting or counting the opening of a
116
- feedback item (`POST /api/feedback/acknowledge`, `/delete`, `/opened`; the reads are `GET /api/feedback` and `/api/feedback/list`). An open page polls `/api/cursor`, a
117
- counter that moves on every write it would show, and offers a refresh. A request
116
+ feedback item (`POST /api/feedback/acknowledge`, `/delete`, `/opened`; the reads are `GET /api/feedback` and `/api/feedback/list`). An open page listens to
117
+ `GET /api/events`, a stream of the change cursor (a counter that moves on every
118
+ write it would show; `/api/cursor` returns the same value on its own), and redraws in place
119
+ when it moves. In a repository checkout, `node mcp/scripts/dashboard-perf.mjs`
120
+ times the dashboard's builders, payload and routes on a seeded database, and
121
+ `--live` times a write reaching an open page in headless Chromium
122
+ ([how to run it](https://github.com/ProjectAJ14/eklavya/blob/main/CONTRIBUTING.md#dashboard-performance)). A request
118
123
  it cannot parse gets a 400 without stopping the server
119
124
  ([what it is, underneath](https://eklavya-run.web.app/docs/dashboard/#what-it-is-underneath)).
120
125
  Its Learning page shows your streak and its calendar under the summary tiles; a
package/dist/artifacts.js CHANGED
@@ -176,8 +176,8 @@ export function listArtifacts(root = artifactsDir()) {
176
176
  }
177
177
  /**
178
178
  * What changes when the artifact list would: how many pages, their total size
179
- * and the newest modification time. `lstat` only, never a read, so the
180
- * dashboard's poll can afford it once a minute. Same folder and file rules as
179
+ * and the newest modification time. `lstat` only, never a read: `changeCursor`
180
+ * calls it on every read and once a second for each open stream. Same folder and file rules as
181
181
  * `listArtifacts`; the stamp is only for comparing with an earlier one.
182
182
  */
183
183
  export function artifactsStamp(root = artifactsDir()) {