SessionStart injects raw JSON bundle: key list misses the engine's rendered_markdown field
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 1/5
- Temps estimé
- Moins d'une heure
- Accessibilité débutants
- 88/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- javascript, nodejs
- Domaine
- tooling
Piste de recherche
Ouvre hooks/zcode-mem-hook.mjs et lis summarizeContextBundle autour de L245-250, où la liste des clés de rendu est vérifiée avant de revenir à JSON.stringify. Reproduis le problème en lui fournissant la sortie de nmem --json context --source-app zcode et en confirmant que la sortie affiche du JSON brut avec une chaîne rendered_markdown au niveau supérieur. Ajoute payload.rendered_markdown au début de la liste de recherche et relance le hook pour confirmer que le contexte injecté commence par le rendu Markdown au lieu d'un vidage JSON.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Environment
- nowledge-mem-zcode: 0.2.2 (installed via ZCode plugin marketplace)
- nmem CLI / engine: 0.10.119
- OS: macOS (darwin 25.6.0, arm64)
What happens
On SessionStart, the hook's injected additionalContext is the entire context bundle pretty-printed as raw JSON (truncated to MAX_CONTEXT_CHARS = 6000), instead of the human-readable render the engine already provides.
Root cause
summarizeContextBundle (hooks/zcode-mem-hook.mjs, L245-250 in 0.2.2):
const rendered = payload.markdown || payload.content || payload.context || payload.working_memory;
if (typeof rendered === "string" && rendered.trim()) return rendered.trim();
return JSON.stringify(payload, null, 2);
The engine's context bundle (nmem --json context --source-app zcode) carries the human-readable render under a key this list does not cover:
- top-level keys observed:
active_space, agent_profile, authorship, bundle_kind, compiled_hash, generated_at, kfs_roots, owner_profile, rendered_markdown, rule_stack, schema_version, warnings, working_memory rendered_markdown: string, ~11.7k chars — a finished Markdown render (first line# Nowledge Mem Context Bundle)working_memory: object, so it fails thetypeof rendered === "string"check
All four lookups miss → the fallback dumps the whole bundle as JSON.
The engine clearly intends this surface to be human-readable: nmem context without --json (help text: "Emit raw JSON instead of human-readable output") outputs the same rendered Markdown, line-identical to rendered_markdown apart from two blank lines.
Suggested fix (one line)
Add the engine's key to the lookup list:
const rendered = payload.rendered_markdown || payload.markdown || payload.content || payload.context;
(working_memory can stay last or be dropped from the string path — it is an object in current engine output.)
Local workaround in place
A companion hook injecting nmem context plain-mode output as session-start additionalContext (coexists with the official hook until this is fixed). Verified on 0.2.2 + nmem 0.10.119: official hook output is the 6000-char JSON dump; plain-mode output is the clean render.
Notes
- 0.2.2 release notes do not mention SessionStart / rendered_markdown, so this appears unreported.
- Side observation: the SessionStart matcher (
startup|clear|compact) does not coverresume, which the ZCode host also fires for SessionStart hooks.
- Langage dominant
- JavaScript
- Étoiles
- 3
- Forks
- 1
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de nowledge-co/zcode-plugin
-
UserPromptSubmit recall regex is English-only: Chinese prompts never trigger auto-recallPeut-être pris @ThaddeusJiang l’a pris il y a 3 jours. Ouvertebug
Difficulté 1/5 1-3 heures Accessibilité débutants 82/100
nowledge-co/zcode-plugin#4 · 1 commentaire · 1 personne assignée ·
-
Hooks silently not loaded from a local directory marketplace; ZCode 0.16.5 Stop transcript is assistant-only so stock sync always failsPeut-être pris @ThaddeusJiang l’a pris il y a 3 jours. Ouvertebug
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
nowledge-co/zcode-plugin#2 · 2 commentaires · 1 personne assignée ·
Toutes les issues de nowledge-co/zcode-plugin
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
documentation
Difficulté 1/5 1-3 heures Accessibilité débutants 85/100
githubnext/gh-aw-workshop#5752 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour
-
Add: QudsunaTV.psOuvertechannels:add check:passed
Difficulté 1/5 Moins d'une heure Accessibilité débutants 66/100
iptv-org/database#39416 · 2 commentaires ·
Les mainteneurs répondent en général sous 2 jours
-
[TEXT] Flache Karte ist 2DOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
swisstopo/topo-swisseobrowser#48 ·
Les mainteneurs répondent en général sous 1 jour