Skip to content

Releases: kirkchinese/CiteCiter

CiteCiter v0.2.1

Choose a tag to compare

@kirkchinese kirkchinese released this 18 Aug 15:29

CiteCiter v0.2.1

v0.2.1 fixes a later-turn regression in durable Citation Threads.

Fixed

  • Accept an idempotent /permission read-only command when the child session's latest owned permission preset and sandbox mode are already read-only.
  • Preserve fail-closed behavior when the initial preset/sandbox state is missing, a command fails, or a later write-capable downgrade is present.
  • Prevent a genuine second or later user question from being rejected with permission command succeeded without applying read-only.

DSH emits permission/preset and sandbox/mode during the first switch. Repeating the same switch on a later turn may emit only successful command/run and command/done events. CiteCiter now treats the effective durable child state as proof for that idempotent case rather than requiring duplicate state events.

Verification

  • Focused suite: 29/29 passing tests, including the exact repeated-command event sequence.
  • Browser smoke now submits a genuine follow-up in the recovered first Thread before creating a second Citation.
  • The follow-up remained visible, the expected credential-less provider error occurred only after prompt submission, no preparation error appeared, and the source-session log size and nanosecond mtime remained unchanged.

Upgrade

dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.2.1

Restart DSH Web after upgrading, or use a runtime updater that verifies both the Host fiber and Client module.

CiteCiter v0.2.0

Choose a tag to compare

@kirkchinese kirkchinese released this 18 Aug 12:30

CiteCiter v0.2.0

Positioning release

CiteCiter is now a learning companion grounded in an exact point of a DSH conversation, not a one-shot selection explainer.

Select a completed assistant passage, ask a custom question, and continue in a durable Citation Thread. The Thread is isolated from the source session, recovers after refresh/restart, and can be switched, renamed, or archived.

Highlights

  • External Host+Client Cordis package; no DSH-core patch and no custom agent loop.
  • Exact completed-node fork from the real snapshot anchorSeq.
  • SHA-256 Citation identity over source, anchor, UTF-16 range, selected text, and bounded surrounding evidence.
  • Four model-input layers: scoped system Tutor, exact inherited history, durable untrusted Citation Context, and genuine user questions.
  • Custom first question and real multi-turn follow-ups.
  • Persistent launcher, parent-grouped picker, projection recovery, rename, switch, and workspace archive.
  • Fail-closed read-only admission plus durable command/done/preset settlement, Host lineage/fingerprint validation, strict Agent-scoped Typert Remote, and read-only tool execution guard.
  • Child-only transcript from SessionHeader.seedLength; parent log remains untouched.
  • Existing conservative Markdown/KaTeX/code/SVG/HTML rendering and Cordis teardown guarantees retained.

Evidence

  • Six-case, same-model A/B/C evaluation: four-layer variant C scored 138/144 and led evidence discipline (23) and follow-up consistency (24).
  • Focused suite: 28 passing tests covering durable command settlement, creation order, exact question payloads, follow-ups, identity, completed-boundary validation, UTF-16 ranges, recovery, transcript boundary, archive, teardown, Typert, and rich-content safety.
  • Fresh DSH 0.1.0-rc.7 browser smoke with a deterministic source fixture:
    • rendered anchor 14:assistant-step1:1, real anchorSeq: 6;
    • persisted child seedLength: 12 and Citation context at seq 22;
    • exact range 4..28 and 64-character fingerprint;
    • rename and page/process recovery succeeded;
    • second Citation switching and workspace archive succeeded;
    • source log size and nanosecond mtime stayed unchanged.

The disposable smoke profile intentionally has no model credential. Its normal provider error occurs only after the read-only switch, strict Remote preparation, durable Citation Context, and genuine user message have all succeeded. Real model quality evidence is recorded separately in experiments/model-input-layering/.

Upgrade notes

dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.2.0

Restart DSH Web after installing or upgrading. v0.2 adds Host code plus ./typert and ./remote exports; replacing only lib/client.js is not sufficient.

The v0.1 one-shot prompt/state model is replaced. Existing v0.1 explanation children do not contain the v0.2 Citation projection and therefore do not appear in the new Thread launcher.

Known limitations

  • Completed assistant flows only; no cross-message/cross-block selections.
  • No unarchive UI or archived-session deduplication.
  • Conservative fixed tool allowlist. run_code is retained for sandboxed analysis only: the current sandbox must fold to read-only, and every nested tool dispatch still crosses the authoritative guard.
  • No settings UI, complete localization framework, mobile-specific layout, or cross-platform browser CI.
  • DSH remains prerelease software; later APIs may require adaptation.

CiteCiter v0.1.1

Choose a tag to compare

@kirkchinese kirkchinese released this 17 Aug 15:54

CiteCiter v0.1.1

CiteCiter v0.1.1 is a packaging correction for the first public release.

Fixed

  • Add the DSH bundle declaration and packaged cordis.patch.yml required by dsh plugin --profile web add @kirkchinese/dsh-citeciter.
  • Add a package-level regression test for the bundle metadata, patch contents, publish allowlist, and public-package status.

The npm 0.1.0 artifact contained the runtime files but omitted dsh.bundle, so DSH installed it only as a plain profile dependency and did not mount CiteCiter automatically. That artifact remains available for transparency but is deprecated; use 0.1.1 or later.

Install

dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.1.1

CiteCiter remains in early development. APIs and compatibility may change, and issues and pull requests are welcome.

CiteCiter v0.1.0

Choose a tag to compare

@kirkchinese kirkchinese released this 17 Aug 15:21

CiteCiter v0.1.0

CiteCiter v0.1.0 is the first public release of the selection-scoped explanation sidebar for DeepSeek Harness Web.

Packaging notice: the npm 0.1.0 artifact omitted the DSH bundle declaration and therefore installed only as a plain dependency. Use 0.1.1 or later for one-command DSH profile installation.

CiteCiter is still in early development. Many features need further work, and APIs, compatibility, and installation details may change. Issues and pull requests are welcome.

Highlights

  • Select text inside a completed assistant reply and open the Citer! context-menu action.
  • Resolve the selected conversation node through the parent snapshot and fork at its real completed-turn anchorSeq.
  • Switch the forked child to /permission read-only and fail closed unless DSH reports a successful matched command.
  • Keep all explanation prompts, model output, cancellation, and errors in the child session; CiteCiter does not write to the parent log.
  • Stream the result in DSH's resizable details column with Markdown, code, KaTeX, safe SVG previews, and sandboxed network-free HTML previews.
  • Dispose listeners, slot registrations, subscriptions, and in-flight lifecycle work with the owning Cordis fiber; support client-plugin HMR during development.

Compatibility

  • Node.js ^22.19.0 || >=24.0.0
  • DeepSeek Harness Web, tested with the public 0.1.0-rc.6 DSH client packages
  • Cordis ^4.0.1
  • React ^18.2.0

Known limitations

  • Only assistant reply nodes in DSH Web are supported.
  • Explanation children are durable DSH sessions and are not automatically deleted.
  • DSH is still in a prerelease API cycle, so future versions may require CiteCiter changes.
  • There is no settings UI, mobile-specific adaptation, or cross-platform browser CI yet.
  • Unsafe or incomplete HTML/SVG fences intentionally fall back to Markdown code blocks.

Install

dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.1.1

Restart the corresponding DSH Web process and refresh the page after installation.

Verification performed for this release

  • TypeScript typecheck and production build
  • 16 focused Node tests for session lookup, read-only fail-closed behavior, lifecycle races, stale-answer suppression, rich-content safety, and subscriber isolation
  • Real rendered-session browser smoke with parent-log revision checks
  • Cordis client-HMR smoke with old-fiber teardown and new-fiber interaction
  • A real-provider explanation run that settled successfully while leaving the parent session log unchanged
  • npm package allowlist inspection before publication