Commit Graph
38 Commits
Author SHA1 Message Date
zonggongandmultica-agent bb9cbe915e HEL-847 v4: Mem0 capability corrections per manager review - additive-only infer, backend filter/BM25 facts, pre-isolation privacy design, concrete spike spec
Co-authored-by: multica-agent <github@multica.ai>
2026-10-25 22:23:53 +08:00
zonggongandmultica-agent 800d3b75b6 HEL-847 v3: GOV-006 reweighing - Mem0 embedded SDK as primary candidate, 8-mechanism adaptation matrix
- Bounded source review of mem0ai/mem0 @2c81af3 (embedded lib, Apache-2.0,
  upstream-maintained extract/consolidate/hybrid-search; SQLite history)
- Zep CE screened out (4-container stack, legacy/docker-compose.ce.yaml:5-71)
- 8-mechanism matrix from discussion takeaways: requirement/current/candidate/
  thin-adapter/to-verify per mechanism
- Recommendation shifts from v2 Option C (self-maintained port) to Route E
  (direct SDK adoption + thin product adapters); Option C kept as verified
  fallback; spike-first with acceptance gates, no claim of final selection
- v2 report carried in verbatim as evidence base

Co-authored-by: multica-agent <github@multica.ai>
2026-10-25 22:06:31 +08:00
zonggongandmultica-agent 575f2acfc5 HEL-847: apply v1.11 governance patch (GOV-006 mature-reuse principle, 60 items)
Audited manager handoff against af28ffd (v1.10):
- 59 original items byte-identical, open_items unchanged
- source hashes verified incl. other-agent-discussion sha256
- user quote 01a1734c verified against platform comment
- check_requirements passes vs main / hel-835-unified-review / product target

Co-authored-by: multica-agent <github@multica.ai>
2026-10-25 21:56:31 +08:00
zonggongandmultica-agent af28ffdcb5 HEL-835: evidence corrections per third review - 23 calls, day2 conclusion downgraded, old probe downgraded, null-fingerprint withdrawn, probe start deviation disclosed; 15/15 paired-window correction proof; real follow-up plan
Co-authored-by: multica-agent <github@multica.ai>
2026-10-25 09:17:34 +08:00
zonggongandmultica-agent c5167ca7c5 HEL-835: day2 handoff, dual-target requirement checks with handoff
Co-authored-by: multica-agent <github@multica.ai>
2026-10-25 09:06:59 +08:00
zonggongandmultica-agent 65df25271e HEL-835: guard v3 - done-delta streams settle ok on early close; 36/36
Co-authored-by: multica-agent <github@multica.ai>
2026-10-25 09:03:09 +08:00
zonggongandmultica-agent b98ab6ab50 HEL-835: deploy record updated for guard v2, restored service, prepared probe
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 14:53:01 +08:00
zonggongandmultica-agent 96cdf07d73 HEL-835: probe seed backfills message_id provenance
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 14:52:15 +08:00
zonggongandmultica-agent 468f0bbb6c HEL-835: probe seed upsert memory_search flag
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 14:50:39 +08:00
zonggongandmultica-agent 87afc34cd3 HEL-835: fix probe seed insert columns
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 14:50:26 +08:00
zonggongandmultica-agent e27274448d HEL-835: fix probe seed companion identity_json shape
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 14:49:47 +08:00
zonggongandmultica-agent 0b24fefc5d HEL-835: synthetic retrieval probe seed script and runbook (approved plan, zero model calls)
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 14:49:06 +08:00
zonggongandmultica-agent 9039311e29 HEL-835: guard v2 - unique call_id settlement, scene-bound categories, ledger validation, upstream close on cancel; 34/34 isolation proof
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 14:46:14 +08:00
zonggongandmultica-agent 1fdca48153 HEL-835: guarded deploy record, audited call ledger, synthetic-retrieval plan (pending approval)
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 14:36:36 +08:00
zonggongandmultica-agent d7e5c00e80 HEL-835: deploy-layer durable call guard (caps 8 gist/6 turns/1 persona) + isolation proof 17/17 and assembly smoke
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 14:31:41 +08:00
zonggongandmultica-agent 2ec9392aad HEL-835: deploy record and rollback plan for isolated R3 instance on 8350
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 14:16:17 +08:00
zonggongandmultica-agent fc5e29469c HEL-835: independent review evidence - rerun 225 pytest, web build/lint/42 vitest, 23/23 browser checks (chromium CDP), 30/30 e2e ControlledLLM isolated DB
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 13:58:13 +08:00
zonggongandmultica-agent 2288471445 HEL-834: apply visual director memories page source package (6 modified + 9 new, verified against MANIFEST)
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 13:35:48 +08:00
白栖知andmultica-agent 89d53b6c53 HEL-833: restore runtime factory and verify R3 memory contracts
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 13:07:43 +08:00
白栖知andmultica-agent 78cab0456c HEL-833: preserve R3 draft and regression stop evidence
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 12:55:58 +08:00
Chief Engineerandmultica-agent ee4459433c HEL-832: R3 real-memory integration verification report, FTS probe evidence, handoff and follow-up construction cards (docs only)
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 12:46:53 +08:00
白栖知andmultica-agent c285a0fd07 fix(r2): keep her self-narration and life within the approved room
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 12:03:08 +08:00
Chief Engineerandmultica-agent 58d65aea05 HEL-828: wire life/persona/receipt confirmation onto 4575b275 (original author delivery, 12 files per MANIFEST in HEL-828-source-4575b275.zip)
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 11:08:53 +08:00
白栖知andmultica-agent 4575b27515 HEL-827: implement durable life, receipt-gated disclosure and persona layers
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 09:04:40 +08:00
Chief Engineerandmultica-agent 2d97050c7e HEL-825: review handoff (verified build/tests/browser checks/requirements; deploying 8320)
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 08:27:33 +08:00
Chief Engineerandmultica-agent e32a1ac0d2 HEL-825 review: link-card accessible-name selector fix (browser_check), evidence scripts, regenerated screenshots/recordings
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 08:27:06 +08:00
Chief Engineerandmultica-agent 0bc4a9e68e HEL-823 A3: days/memories, creation wizard, settings pages on cef8ae5 (author delivery, 15 modified + 1 handoff per CHANGES-HEL-823.json)
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 08:26:54 +08:00
白栖知andmultica-agent cef8ae5581 HEL-824: land verified fixes on 4321aeb (small-screen first-press, real-time reading clock)
- 6 modified + handoff JSON per CHANGES-HEL-824.json, all hashes verified against git 4321aeb and package bytes
- rework_browser_check: skip full-text sheet at micro height (<420px design hides the control); migrate stale 返回日子 selector to 结束交谈 · 回到日子
- fresh run evidence: web build 25/25 unit tests, backend 142/142 (py3.12), all four browser checks PASS incl. new compact first-press and 700ms slow-frame sections (slow_frames_new_turn_to_reply_s=2.32s), layout regression 320/390/1024/1600 both themes

Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 07:39:26 +08:00
白栖知andmultica-agent 4321aebfdc HEL-822: fix handoff read_commit format
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 06:59:18 +08:00
白栖知andmultica-agent e5fe01bfd1 HEL-822: review handoff JSON
Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 06:59:07 +08:00
白栖知andmultica-agent 7db6677234 HEL-822: run all four browser checks; minimal mechanical check fixes + fresh run evidence
- browser_check.py: 视觉观察 → 视觉观察(模拟) (author renamed the aria-label, selector not migrated)
- import_check.py: handle the dirty-settings leave confirmation before opening the record (pre-existing gap, fails at base db571ba too)
- rework_browser_check.py: long-user-line reply budget 10s→60s (approved hel-799 dwell ≈2.4s/page), conditional 继续 resume (toLatest resumes flow in the approved prototype), 600ms settle before measuring compact typing nav transition
- regenerated docs/frontend + docs/rework evidence from this Linux run

Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 06:58:20 +08:00
白栖知andmultica-agent 003d8c2cae HEL-822: land HEL-821 A1+A2 source onto PR#4 base (db571ba)
- 13 modified / 8 added / 1 deleted per CHANGES.json (author package 76bc120b)
- docs/requirements v1.10 + prototypes/hel-799 + PROVENANCE from bundle, verified byte-identical to 63799f0
- AGENTS.md + scripts/check_requirements.py restored from governance commit 63799f0

Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 06:10:53 +08:00
白栖知andmultica-agent db571ba204 HEL-783: repair readable dialogue, birth explanations and complete real page layouts
Co-authored-by: multica-agent <github@multica.ai>
2026-10-22 17:55:05 +08:00
白栖知andmultica-agent f6614d4bf9 HEL-780: connect persistent companion and real streaming text chat
Co-authored-by: multica-agent <github@multica.ai>
2026-10-22 16:25:35 +08:00
白栖知andmultica-agent 6c3b09e693 HEL-748: implement S1 frontend with explicit local demo
Co-authored-by: multica-agent <github@multica.ai>
2026-10-22 00:56:18 +08:00
mobai 1e9b08aed8 docs: intro animation for 晚晚 (22s, pure canvas, zero assets)
Single-file HTML, Canvas 2D, no libraries, no images, no fonts to load.

The one idea worth explaining: the accent colour IS the valence.
moodColor(v) maps v in [-1,1] across cold blue -> neutral grey -> warm amber,
and every mark in the frame reads from it. So when she drops, the whole
picture goes cold -- no caption has to tell you she is sad. Same data,
three places: the trace colour, the memory hue, the retrieval highlight.

Timeline is a pure function render(t), no RAF accumulation. Every frame
renders in isolation, which means frames are reproducible, any resolution
can be re-exported, and the preview can be captured frame-by-frame instead
of screen-recorded.

Four acts:
  0-6s   membrane   matter bounces off it, information passes through
  6-12s  heartbeat  beats with no input; positive recovers fast, negative slow
  12-17s memory     points sink by salience; one gets pulled back up
                    by a mood-matching cue; floor at 0.03 so nothing vanishes
  17-22s title

Also: ?t=12.5 freezes on that frame (for cover shots), and a REC button
uses canvas.captureStream + MediaRecorder to export webm directly.

Preview: 200 ANMF frames, 22000ms total, verified by parsing the RIFF/ANMF
chunks (Pillow does not expose per-frame WebP duration).

tools/render_preview.py renders frames via headless Chrome and assembles.
On this Windows box Python cannot spawn Chrome (0x80000003, same family as
the 0xC0000142 shell failure), so the render loop was driven from PowerShell
and the script only assembled. Both paths are documented in the script.
2026-10-19 20:33:13 +08:00
mobai 8dea68a25b feat(think): four-tier model routing with budget guard
Corrects a common misconception: the 60s heartbeat must not call any LLM.
It runs the mood decay equation -- microseconds of float math. Giving it a
model is an architecture error, not a resource problem.

Real token spend lands in two places:
  - per-turn input context (ontology + state + dyad + memory)
  - background task frequency

So route by scene, not by time:

  none      rule/math     tick, reach-out decision, fillers, avatar drive
  low       local small   life events, memory gist, fact extract
  standard  mid + short   speculative-response second segment
  high      flagship      main dialogue, proactive message, crisis

Hard constraints:
  - dialogue floor is LOW, never NONE (can get dumber, cannot lose lines)
  - crisis never degrades (product constraint, not perf tuning)
  - degradation is predictable: one rung per request, floor only at
    the hard budget threshold

Cost levers, by actual payoff:
  1. prompt caching (fixed prefix) -- by far the largest
  2. upstream compression (small model condenses 20 memories to 3)
  3. batching (one batch per 30min, not 20 single calls)
  4. swapping to a smaller model -- smallest payoff, hurts persona

Also: cost degradation is narratable. 'Net error -> I zoned out' already
exists in the projection table, so being throttled is in-character and true.

- config.py: tiers / routing / budget, replacing llm+llm_fast+llm_background
- think/: scenes, budget, router, wiring
- models.yaml restructured around tiers
- SPEC gains 9.5
- 20 new tests; 78 total pass; ruff clean
2026-10-19 20:14:41 +08:00
mobai 1012d8bb79 chore: project foundation
Contracts (the shared language):
- percept / state / context / utterance / render / audio / capabilities
- Capability model instead of vendor schemas (see below)

Providers (capability-based abstraction):
- LLM + Embedding: OpenAI-compatible shape IS the standard, adopted directly
- ASR: internal contract is an event stream (partial -> final), because
  /v1/audio/transcriptions has no partial and dialogue needs it for
  endpointing. OpenAI adapter degrades to supports_partial=False.
- TTS: internal contract carries tags/emotion/style, because
  /v1/audio/speech has no paralinguistics and [laughter]/[breath] are
  the core of feeling alive. Unsupported providers are stripped AND
  reported via Degradation -- silent degradation is forbidden.
- Avatar: no de-facto standard, custom RenderCmd protocol driven by State.

Core:
- mood: dynamical system, slow variables, negativity bias (grudge),
  numbing after prolonged negativity
- bazi: four pillars -> numeric vector; 'ming' is data, not prose
- projection: phi, system event -> in-world statement; uncovered events
  are counted as projection gaps

Storage:
- SQLite schema, three memory layers, dyad ledger
- accessibility floor 0.03 (not 0): forgettable but still there

Config split:
- models.yaml is the ONLY place model versions live
- character.yaml holds world rules / emotion params, no version numbers

58 tests pass; ruff clean.
2026-10-19 20:08:52 +08:00