Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vsls-contrib.gitdoc broken by foam.foam-vscode; requires Enable/Disable/Enable command on every new session to function. #88

Open
AJMansfield opened this issue Jan 11, 2025 · 4 comments

Comments

@AJMansfield
Copy link

AJMansfield commented Jan 11, 2025

Problem

Some time before August 2024, GitDoc started to behave strangely with regards to its enable/disable status. Each time I launch VSCode, the extension appears to start disabled (despite configurations that should enable it), and only becomes functional after running commands to enable, disable, and then re-enable it a second time.

I've isolated this issue to some kind of interaction with the foam.foam-vscode extension that I also wish to run in the same workspace. Disabling this extension resolves these symptoms; vsls-contrib.gitdoc starts and runs normally when foam.foam-vscode is disabled or absent.

This exact set of symptoms occurs across both of the computers I regularly use for my notes repository where I make use of these extensions.

With vsls-contrib.gitdoc and foam.foam-vscode as the only two extensions enabled, and every other non-builtin extension disabled:

Enable/Disable Stateful Behavior

For the sake of being fully explicit, there seem to be four different system states involved, which I'll label State A through State D:

State A is the proper enabled and running state. The book icon is visible in the bottom bar whenever I have a file open that it's configured to operate on, auto-commits are created automatically when files are changed, and the GitDoc: Disable and GitDoc: Commit commands are visible in the command palette. If I close VSCode, then start VSCode, I expect it to re-open in State A; however, it instead launches in what I'm labeled State B.

State B appears to be a disabled state. GitDoc is not running, no book icon is visible, no auto-commits are created, and only the GitDoc: Enable command is visible in the palette. Running GitDoc: Enable transitions the system to State C (not to State A).

State C is a sort of pseudo-enabled state. The book icon is not visible on any configured file, and commits are not created automatically when files are changed, but he GitDoc: Disable and GitDoc: Commit commands are visible in the palette and GitDoc: Enable is not. Running GitDoc: Commit does successfully create a commit, but leaves the system in State C. Running GitDoc: Disable transitions the system to State D.

State D is also a 'disabled' state, with the same visible symptoms as State B, except that running GitDoc: Enable transitions the system to the (desired) State A (not to State C).

Environment

My workspace configures Foam and GitDoc via config keys in the .vscode/settings.json file located relative to the workspace root, the relevant lines of which are:

{
  "foam.edit.linkReferenceDefinitions": "off",
  "foam.openDailyNote.directory": "journal",
  "foam.openDailyNote.titleFormat": "fullDate",
  "gitdoc.enabled": true,
  "gitdoc.filePattern": "**/*",
  "gitdoc.commitValidationLevel": "none",
}

The last two lines were added recently as another attempts to try to resolve it this issue; but the problem occurs regardless of whether those values are inherited from the defaults or specified explicitly in the workspace settings.

This workspace root is also the git repository root; with these settings captured as part of the version control for this repository.

The only two non-builtin extensions enabled are:

foam.foam-vscode
vsls-contrib.gitdoc

Software Version Info

VSCode About Info:

Version: 1.96.2 (system setup)
Commit: fabdb6a30b49f79a7aba0f2ad9df9b399473380f
Date: 2024-12-19T10:22:47.216Z
Electron: 32.2.6
ElectronBuildId: 10629634
Chromium: 128.0.6613.186
Node.js: 20.18.1
V8: 12.8.374.38-electron.0
OS: Windows_NT x64 10.0.22631

GitDoc Installation Info:

Identifier vsls-contrib.gitdoc
Version 0.2.3
Last Updated 2024-12-27, 14:29:58
Size 2.5 MB

Foam Installation Info:

Identifier foam.foam-vscode
Version 0.26.4
Last Updated 2024-11-13, 16:09:33
Size 1.5 MB

Extension Host Logs

Here's the Extension Host logs for each of these states.
Starting in State B, I get:

2025-01-11 12:23:00.996 [info] Extension host with pid ***** started
2025-01-11 12:23:00.996 [info] Skipping acquiring lock for c:\Users\*****\AppData\Roaming\Code\User\workspaceStorage\********************************.
2025-01-11 12:23:01.293 [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github'
2025-01-11 12:23:01.346 [info] ExtensionService#_doActivateExtension vscode.emmet, startup: false, activationEvent: 'onLanguage'
2025-01-11 12:23:01.373 [info] ExtensionService#_doActivateExtension vscode.extension-editing, startup: false, activationEvent: 'onLanguage:markdown'
2025-01-11 12:23:01.396 [info] ExtensionService#_doActivateExtension vscode.markdown-language-features, startup: false, activationEvent: 'onLanguage:markdown'
2025-01-11 12:23:01.536 [info] ExtensionService#_doActivateExtension vscode.configuration-editing, startup: false, activationEvent: 'onLanguage:jsonc'
2025-01-11 12:23:01.555 [info] ExtensionService#_doActivateExtension vscode.json-language-features, startup: false, activationEvent: 'onLanguage:jsonc'
2025-01-11 12:23:01.641 [info] ExtensionService#_doActivateExtension vscode.typescript-language-features, startup: false, activationEvent: 'onLanguage:jsonc'
2025-01-11 12:23:02.313 [info] ExtensionService#_doActivateExtension vscode.git-base, startup: true, activationEvent: '*', root cause: vscode.git
2025-01-11 12:23:02.317 [info] ExtensionService#_doActivateExtension foam.foam-vscode, startup: true, activationEvent: 'workspaceContains:.vscode/foam.json'
2025-01-11 12:23:02.581 [info] ExtensionService#_doActivateExtension vscode.git, startup: true, activationEvent: '*'
2025-01-11 12:23:02.694 [info] ExtensionService#_doActivateExtension vscode.github, startup: true, activationEvent: '*'
2025-01-11 12:23:02.750 [info] ExtensionService#_doActivateExtension vscode.markdown-math, startup: false, activationEvent: 'api', root cause: vscode.markdown-language-features
2025-01-11 12:23:03.789 [info] Eager extensions activated
2025-01-11 12:23:03.899 [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch, startup: false, activationEvent: 'onStartupFinished'
2025-01-11 12:23:03.904 [info] ExtensionService#_doActivateExtension vscode.merge-conflict, startup: false, activationEvent: 'onStartupFinished'
2025-01-11 12:23:03.932 [info] ExtensionService#_doActivateExtension vsls-contrib.gitdoc, startup: false, activationEvent: 'onStartupFinished'

No additional log entries appear when running any of the commands that transition the symptoms to one of the other states.

@AJMansfield
Copy link
Author

Cross-posted with foambubble/foam#1419.

@jcalixte
Copy link

Hi! On my VSCode, it seems the bug still exist without the foam-vscode extension.

@AJMansfield
Copy link
Author

AJMansfield commented Jan 17, 2025

It looks like foam.foam-vscode isn't the only extension that can cause this issue: after re-enabling all of my other extensions, it seems like enabling tekumara.typos-vscode can also make this issue happen about half the time?

To be precise:

{ // always works perfectly in isolation
  "recommendations": [
    "vsls-contrib.gitdoc",
  ]
}
{ // always malfunctions when paired with foam
  "recommendations": [
    "vsls-contrib.gitdoc",
    "foam.foam-vscode",
  ]
}
{ // seems to always work correctly with this set
  "recommendations": [
    "vsls-contrib.gitdoc",
    "yzhang.markdown-all-in-one",
    "mushan.vscode-paste-image",
    "bierner.markdown-mermaid",
    "bpruitt-goddard.mermaid-markdown-syntax-highlighting",
    "alefragnani.project-manager",
    "goessner.mdmath",
    "bierner.markdown-footnotes",
    "Gruntfuggly.todo-tree",
  ]
}
{ // malfunctions occasionally with this set
  "recommendations": [
    "vsls-contrib.gitdoc",
    "yzhang.markdown-all-in-one",
    "mushan.vscode-paste-image",
    "bierner.markdown-mermaid",
    "bpruitt-goddard.mermaid-markdown-syntax-highlighting",
    "alefragnani.project-manager",
    "goessner.mdmath",
    "bierner.markdown-footnotes",
    "Gruntfuggly.todo-tree",
    "tekumara.typos-vscode",
  ]
}

I've added "gitdoc.commitValidationLevel": "none", to my settings.json to ensure the warnings tekumara.typos-vscode has the potential to generate aren't inhibiting it, but, the occasional malfunctions seem to occur independent of this, with the same enable-disable-enable loop correcting it for the current session as reported before.

Something about this feels like it might be related to load timing? The issue with tekumara.typos-vscode is sporadic so I've not yet managed to capture a copy of the Extension Host log that would show the failed version of the timing, but when I do I'll update with logs from both failed and successful launches.

@AJMansfield
Copy link
Author

@jcalixte Could you share your extension host log output? That'll let us see what your full extension list is, to see if any of the extensions you do have have anything in common with others that seem to be causing this issue.

(If not sure how to access this log: open the command palette with Ctrl+Shift+P, run > Output: Show Output Channels..., and select Extension Host from the options that follow.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants