@papyruslabsai/seshat-mcp 0.16.3 → 0.16.4

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.
Files changed (2) hide show
  1. package/dist/index.js +9 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -566,7 +566,7 @@ function getCloudUrl(path) {
566
566
  async function main() {
567
567
  const server = new Server({
568
568
  name: 'seshat',
569
- version: '0.16.3',
569
+ version: '0.16.4',
570
570
  }, {
571
571
  capabilities: { tools: {} },
572
572
  instructions: SERVER_INSTRUCTIONS,
@@ -634,6 +634,7 @@ async function main() {
634
634
  if (name === 'sync_project') {
635
635
  let repoUrl = args?.repo_url;
636
636
  // If no URL provided, try to detect git remote
637
+ let headSha;
637
638
  if (!repoUrl) {
638
639
  try {
639
640
  const { execSync } = await import('child_process');
@@ -641,6 +642,11 @@ async function main() {
641
642
  // Normalize SSH URLs to HTTPS
642
643
  const sshMatch = remote.match(/^git@github\.com:(.+)\.git$/);
643
644
  repoUrl = sshMatch ? `https://github.com/${sshMatch[1]}` : remote.replace(/\.git$/, '');
645
+ // Capture current HEAD SHA for cache comparison
646
+ try {
647
+ headSha = execSync('git rev-parse HEAD', { timeout: 5000 }).toString().trim().slice(0, 12);
648
+ }
649
+ catch { /* shallow clone or no commits */ }
644
650
  }
645
651
  catch {
646
652
  return {
@@ -659,7 +665,7 @@ async function main() {
659
665
  'Content-Type': 'application/json',
660
666
  'x-api-key': apiKey,
661
667
  },
662
- body: JSON.stringify({ repo_url: repoUrl, force: args?.force === true }),
668
+ body: JSON.stringify({ repo_url: repoUrl, force: args?.force === true, head_sha: headSha }),
663
669
  });
664
670
  if (!res.ok) {
665
671
  const errorText = await res.text();
@@ -831,7 +837,7 @@ async function main() {
831
837
  });
832
838
  const transport = new StdioServerTransport();
833
839
  await server.connect(transport);
834
- process.stderr.write(`Seshat MCP v0.16.3 connected. Structural intelligence ready.\n`);
840
+ process.stderr.write(`Seshat MCP v0.16.4 connected. Structural intelligence ready.\n`);
835
841
  }
836
842
  main().catch((err) => {
837
843
  process.stderr.write(`Fatal: ${err.message}\n`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@papyruslabsai/seshat-mcp",
3
- "version": "0.16.3",
3
+ "version": "0.16.4",
4
4
  "description": "Semantic MCP server — exposes a codebase's structure, dependencies, and constraints as queryable tools",
5
5
  "type": "module",
6
6
  "bin": {