threadnote 0.7.10 → 0.7.11
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 +2 -0
- package/dist/mcp_server.cjs +0 -1
- package/dist/threadnote.cjs +20 -7
- package/docs/index.html +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
# Threadnote
|
|
6
6
|
|
|
7
|
+
[](https://www.npmjs.com/package/threadnote) [](https://github.com/Kashkovsky/threadnote/actions/workflows/ci.yml) [](https://www.npmjs.com/package/threadnote) [](./LICENSE) 
|
|
8
|
+
|
|
7
9
|
`threadnote` is a safe local workflow for using [OpenViking](https://openviking.ai/) as shared, agent-neutral context for development work.
|
|
8
10
|
It is intentionally scoped to curated docs, memories, skills, and handoffs. It is not a source-navigation replacement,
|
|
9
11
|
and it does not index whole repositories by default.
|
package/dist/mcp_server.cjs
CHANGED
|
@@ -36148,7 +36148,6 @@ function exactMemoryScopes(config2, includeArchived) {
|
|
|
36148
36148
|
`${userBase}/durable/projects`,
|
|
36149
36149
|
`${userBase}/handoffs/active`,
|
|
36150
36150
|
`${userBase}/incidents/active`,
|
|
36151
|
-
`${userBase}/events`,
|
|
36152
36151
|
`${userBase}/shared`,
|
|
36153
36152
|
`viking://agent/${uriSegment2(config2.agentId)}/memories`,
|
|
36154
36153
|
// Seeded project resources live outside the user/memories tree. Include
|
package/dist/threadnote.cjs
CHANGED
|
@@ -3868,6 +3868,22 @@ async function gitValue(args, cwd = getInvocationCwd()) {
|
|
|
3868
3868
|
}
|
|
3869
3869
|
return result.stdout.trim();
|
|
3870
3870
|
}
|
|
3871
|
+
async function resolveRepoName(cwd = getInvocationCwd()) {
|
|
3872
|
+
const repoRoot = await gitValue(["rev-parse", "--show-toplevel"], cwd);
|
|
3873
|
+
if (!repoRoot) {
|
|
3874
|
+
return void 0;
|
|
3875
|
+
}
|
|
3876
|
+
const commonDir = await gitValue(["rev-parse", "--git-common-dir"], repoRoot);
|
|
3877
|
+
if (commonDir) {
|
|
3878
|
+
const absoluteCommonDir = (0, import_node_path.isAbsolute)(commonDir) ? commonDir : (0, import_node_path.resolve)(repoRoot, commonDir);
|
|
3879
|
+
const primaryRoot = (0, import_node_path.basename)(absoluteCommonDir) === ".git" ? (0, import_node_path.dirname)(absoluteCommonDir) : absoluteCommonDir;
|
|
3880
|
+
const name = (0, import_node_path.basename)(primaryRoot).replace(/\.git$/, "");
|
|
3881
|
+
if (name && name !== ".") {
|
|
3882
|
+
return name;
|
|
3883
|
+
}
|
|
3884
|
+
}
|
|
3885
|
+
return (0, import_node_path.basename)(repoRoot);
|
|
3886
|
+
}
|
|
3871
3887
|
async function runInteractive(executable, args) {
|
|
3872
3888
|
return new Promise((resolvePromise) => {
|
|
3873
3889
|
const child = (0, import_node_child_process.spawn)(executable, args, { stdio: "inherit" });
|
|
@@ -10012,7 +10028,6 @@ function exactMemoryScopes(config, includeArchived) {
|
|
|
10012
10028
|
`${userBase}/durable/projects`,
|
|
10013
10029
|
`${userBase}/handoffs/active`,
|
|
10014
10030
|
`${userBase}/incidents/active`,
|
|
10015
|
-
`${userBase}/events`,
|
|
10016
10031
|
`${userBase}/shared`,
|
|
10017
10032
|
`viking://agent/${uriSegment(config.agentId)}/memories`,
|
|
10018
10033
|
// Seeded project resources (READMEs, AGENTS.md, SKILL.md, docs/**) live
|
|
@@ -10315,7 +10330,7 @@ async function buildHandoff(options) {
|
|
|
10315
10330
|
const status = await gitValue(["status", "--short"], repoRoot) ?? "";
|
|
10316
10331
|
const diffStat = await gitValue(["diff", "--stat", "HEAD"], repoRoot) ?? "";
|
|
10317
10332
|
const touchedFiles = await gitTouchedFiles(repoRoot);
|
|
10318
|
-
const repoName = (0, import_node_path6.basename)(repoRoot);
|
|
10333
|
+
const repoName = await resolveRepoName(repoRoot) ?? (0, import_node_path6.basename)(repoRoot);
|
|
10319
10334
|
const topicBranch = branch && branch !== "unknown" ? branch : "current";
|
|
10320
10335
|
const metadata = {
|
|
10321
10336
|
kind: "handoff",
|
|
@@ -10644,8 +10659,7 @@ async function hasManagedClaudeHooks() {
|
|
|
10644
10659
|
}
|
|
10645
10660
|
async function runPreCompactHook(config, options = {}) {
|
|
10646
10661
|
try {
|
|
10647
|
-
const
|
|
10648
|
-
const project = repoRoot ? (0, import_node_path9.basename)(repoRoot) : "general";
|
|
10662
|
+
const project = await resolveRepoName() ?? "general";
|
|
10649
10663
|
await runHandoff(config, {
|
|
10650
10664
|
blockers: "- none recorded",
|
|
10651
10665
|
dryRun: options.dryRun === true,
|
|
@@ -10665,11 +10679,10 @@ async function runPreCompactHook(config, options = {}) {
|
|
|
10665
10679
|
}
|
|
10666
10680
|
async function runSessionStartHook(config, options = {}) {
|
|
10667
10681
|
try {
|
|
10668
|
-
const
|
|
10669
|
-
if (!
|
|
10682
|
+
const project = await resolveRepoName();
|
|
10683
|
+
if (!project) {
|
|
10670
10684
|
return;
|
|
10671
10685
|
}
|
|
10672
|
-
const project = (0, import_node_path9.basename)(repoRoot);
|
|
10673
10686
|
await emitUpdateBannerIfOutdated(config);
|
|
10674
10687
|
process.stdout.write(`## Threadnote \u2014 latest context for ${project}
|
|
10675
10688
|
|
package/docs/index.html
CHANGED
|
@@ -1415,7 +1415,7 @@ threadnote remember \
|
|
|
1415
1415
|
<div class="v-say">Continue where we left off on this branch.</div>
|
|
1416
1416
|
<pre class="v-call">recall_context({query: "<branch> latest handoff durable feature memory"})</pre>
|
|
1417
1417
|
<pre class="v-response">
|
|
1418
|
-
→ viking://user/you/memories/handoffs/active/<
|
|
1418
|
+
→ viking://user/you/memories/handoffs/active/<repo>/auto-precompact.md
|
|
1419
1419
|
→ viking://user/you/memories/durable/projects/<repo>/<feature>.md</pre
|
|
1420
1420
|
>
|
|
1421
1421
|
<div class="v-answer">
|