Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: EwanJasper/SessionRelay
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.3.1
Choose a base ref
...
head repository: EwanJasper/SessionRelay
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.4.0
Choose a head ref
  • 5 commits
  • 26 files changed
  • 1 contributor

Commits on Sep 6, 2026

  1. docs: user-guide semantic+forget chapters; en/zh README sync; pack-e2…

    …e dist-count gate
    
    - user-guide: semantic search section (enable/test/status/disable, costs,
      fusion principles, measured 33%->0%) and right-to-be-forgotten section
      (archive-vs-forget rule of thumb, dual anti-resurrection barriers) +
      quick-reference card entries
    - README.en: semantic + forget feature sections, tests 125->185, roadmap
      cleaned (semantic shipped); README.zh roadmap cleaned likewise
    - pack-e2e: assert installed dist file count <= 60 — regression gate for the
      orphan-chunk incident (0.3.0 shipped 94 dead files; gate caught at 37)
    EwanJasper committed Sep 6, 2026
    Configuration menu
    Copy the full SHA
    d578e75 View commit details
    Browse the repository at this point in the history
  2. feat: suggest_related_sessions — 16th MCP tool + srelay related (desi…

    …gn v1, 3 review rounds, 9 revisions)
    
    - dual-track: vector similarity (semantic-enabled; active anchor embedded
      on-the-fly, never persisted) + topics/tags/files overlap fallback; fused
      output with explainable reasons per item
    - stateless by design: no new tables/config; never writes session_links
      (anti-echo-chamber, documented ruling)
    - contract invariant upgraded: exact 16-tool list + name blacklist scan
      (delete/remove/forget/purge fails) — the real intent of 'no AI deletion'
      no longer tied to a count
    - scope does NOT gate recommendations (navigation aid) — pinned by test
      with try/finally cleanup (fixture pollution root-caused: confirmSession
      overwrites topics, so the spec seeds its own overlap pair)
    - tests: 7 unit (scoring hierarchy/active candidates/isolation/hard cap/
      cosine order/on-the-fly embed/fusion) + 2 contract; 194 green total
    - real-model acceptance 4/4 (top1 plausibility, scripts/related-real-verify.ts);
      small-corpus tail noise honestly documented in design §9
    EwanJasper committed Sep 6, 2026
    Configuration menu
    Copy the full SHA
    098e1d4 View commit details
    Browse the repository at this point in the history
  3. fix: self-review corrections for related feature

    - README second tool table (zh) missing related row (String.replace only
      replaces first occurrence); README.en row was silently never inserted
      (pattern mismatch, script only validated zh patterns) — both fixed with
      miss-detection
    - CLI --limit abc produced NaN -> silently empty results; now validates and
      exits 2
    - user-guide quick-reference card gained srelay related
    - design-related §9: score is dual-scale (cosine vs overlap points), ordering
      safe by construction, cross-group comparison meaningless — documented
    EwanJasper committed Sep 6, 2026
    Configuration menu
    Copy the full SHA
    4125df9 View commit details
    Browse the repository at this point in the history
  4. fix: poison-pill targets no longer consume digest quota

    Self-review round 2 caught: failedSkip filtering happened AFTER the SQL
    LIMIT, so poison pills at the head of the queue (recent last_event_at)
    consumed the whole per-cycle budget — newly confirmed sessions starved
    until process restart. Fix: fetch 2x limit when skip-set is non-empty,
    filter, then slice. markSemanticFailed() exported as test/ops hook.
    C6 regression test proven by sabotage (red with old code: expected 1 to
    be 2). 195 green.
    EwanJasper committed Sep 6, 2026
    Configuration menu
    Copy the full SHA
    16444ab View commit details
    Browse the repository at this point in the history
  5. feat: daemon service registration on all three platforms + artifact a…

    …ssertions (release 0.4.0)
    
    - service.ts: macOS launchd LaunchAgent + Linux systemd user unit (with
      best-effort linger), aligned with Windows registry run key semantics
      (login autostart, no crash-restart); uninstall/status symmetric
    - CI verification: macOS runner does a real install->status->uninstall
      cycle (launchd is the macOS init); Linux content assertions only
      (runner user-systemd unreliable, documented)
    - check-artifacts.mjs (npm run check:artifacts, wired into CI test job
      and prepublishOnly): MCP tool names fully covered in docs, no stale
      tool-count wording, CHANGELOG top version matches package.json —
      hardening from the two release-audit incidents
    - watch.ts slimmed to daemon entry; windows implementation unchanged
    - tests: 6 service cases (content assertions all platforms, live launchd
      cycle darwin-only); 200 green + 1 platform-skipped
    EwanJasper committed Sep 6, 2026
    Configuration menu
    Copy the full SHA
    94f1510 View commit details
    Browse the repository at this point in the history
Loading