chunk: add an env "JFS_DROP_OSCACHE" to drop page cache for block cache

Which scenario it is used for, and why not dropping cache after flushing stage blocks?

Which scenario it is used for, and why not dropping cache after flushing stage blocks?

reduce page cache usage
upcoming uploads requirement

I know it reduces page cache. The question is in which scenario user needs to turn on this flag, like avoiding OOM caused by page cache we encountered before?

mark


git: 2.39.0 → 2.39.1

Advisories:

https://github.blog/2023-01-17-git-security-vulnerabilities-announced-2/

CVEs:

CVE-2022-23521 (Critical)
CVE-2022-41903 (Critical)
CVE-2022-41953

Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Currently building/testing.

Built on NixOS (x86_64-linux)

Previous update went trough staging: #205682

I think we should go through staging.

I am concerned that this would affect Hydra.
As far as I understand this an adversary could use a new PR to get RCE.

Hydra.nixos.org doesn't touch PRs (automatically).

How do you imagine this could happen?

(assumption) ofBorg runs on shared resources with Hydra (so no merge is needed to attack)

AFAIK it does not.

Can we get a rebuild count estimation first?
I would be fine to send this straight to staging-next but it wouldn't be ideal when we send a 25k+ rebuild commit to master and ofborg/hydra would only recover in a few days from it.

Rebased on merge-base of origin/staging origin/master so it should be easy to change target and merge to either staging or main branch.

I would be fine to send this straight to staging-next but

there is none open right now.

Currently running ./maintainers/scripts/rebuild-amount.sh HEAD^ to get an estimate rebuild count.

Probably very similar amounts as recent git updates: https://github.com/NixOS/nixpkgs/pull/205682

Estimating rebuild amount by counting changed Hydra jobs (parallel=unset).
      1 pkgs-lib-tests
  20564 x86_64-darwin
  28692 x86_64-linux

Oh, yeah 22.11 was already merged.


Add "History" feature to search component

It's been proposed that we provide a mechanism to pre-populate searches, and/or allow users to save search parameters in some way.
The sdk-components should provide a data model/datastore to allow the search form to provide pulldown/type-ahead history of searches that have been recently performed in the last X times etc. The component itself should not store any data, just provide the input mechanism for the implementing application to get/set the history using the datamodel. That way by default no data would be stored, but then on event, the implementation could get the data and store it using their own storage options. Then to populate the history, it should allow the implementation to set  the history list.
It is a very similar design pattern to how preferences are implemented.

Pull Requests:

https://github.com/Senzing/entity-search-web-app/issues/119


BUG: Incorrect actor sorting by popularity rating

Tim Fellingham's rating is larger than Timothy Busfield's, so he should be on the left, not the right.

More examples:

It should go Timothy Innes, Tim Kang, Timothy Dalton, Tim Matheson.


Format version type in url automatically by replacing _ with - to match the folder name

Formats version type like pre_alpha to pre-alpha

Thank you!


Avoid deleting paused workload clusters

Description of changes
The CLI still allows to delete workload clusters and it doesn't yet use the controller to do this. This means that the controller shouldn't try to reconcile deletions for workload clusters that are paused, so the CLI can perform its own logic.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/retest


[BugFix] Fix the error of reloading the model library on the ROCm platform: "MIOpen Error: No invoker was registered for convolution forward.”

My env：AMD RX 7600
I debugged the MIOpen source code for a specific reason. During the model compilation phase, the Python side calls the conv2d.setup interface, invoking MIOpen's findConvForwardAlgorithm interface to find the appropriate algorithm. Subsequently, the corresponding <layer-Problem, Algorithm> pair is registered within the current invokers. Then, without terminating the current process, during the inference stage, the invoker can identify the Algorithm for the corresponding layer-problem and perform direct inference.
However, if the current process is exited and the pre-compiled model is executed without the prior invocation of findConvForwardAlgorithm during the compilation phase, the corresponding <layer-Problem, Algorithm> pair won't be registered within the invokers. As a result, the inference stage will report an error stating "MIOpen Error: No invoker was registered for convolution forward."
Based on the distinction between MIOpen and cuDNN invocation provided by the MIOpen official documentation, the typical sequence for calling Convolution APIs in MIOpen is as follows:
miopenConvolution*GetWorkSpaceSize(): This function returns the workspace size required by the Find() operation.
miopenFindConvolution*Algorithm(): This function returns performance information about various algorithms.
miopenConvolution*(): Actual convolution operation.
The official documentation emphasizes that calling miopenFindConvolution*Algorithm() is mandatory before using any Convolution API.
Additionally, according to the documentation found at https://rocm.docs.amd.com/projects/MIOpen/en/latest/convolution.html#miopenfindconvolutionforwardalgorithm, the last parameter of the miopenFindConvolutionForwardAlgorithm interface, exhaustiveSearch, should be set to 1 (true):
If exhaustiveSearch == 0, MIOpen will seek the first kernel with a configuration match. If no configuration match is found, a default configuration will be returned.
If exhaustiveSearch == 1, MIOpen will search for the best kernel for the provided configuration. If a match is not found, an exhaustive search is performed by running individual algorithms.
For further details refer to this link: https://rocmdocs.amd.com/projects/MIOpen/en/latest/MIOpen_Porting_Guide.html

cc @tqchen

Please revert the ethos-U related change.

Please revert the ethos-U related change.

Okay，I will revert it

I assume https://github.com/apache/tvm/pull/16190 is the newer one

I assume #16190 is the newer one

Yes，this pr should be closed


Face getting deformed

Used assets
test.zip
The examples produce better results. But if I try using custom video the results are not that good. The reference image is also generated from the same video frame using Controlnet.
Any suggestion to get good results.
Using Gradio UI with 25 inference steps and rest recommended settings
https://github.com/user-attachments/assets/ea02e89c-c38f-4ab8-9be0-d2bb8bae67c4

Hi, could you please share the original driven RGB frames instead of skeleton poses? This issue may be related to the misalignment between driven frames and the reference image.

Hi, I used your animated video as the driving video to animate the reference image you provided. Although it is somewhat weird and may negatively affect the performance of StableAnimator, I applied StableAnimator to animate your reference image by following the poses from your animated video.
https://github.com/user-attachments/assets/de0fa78a-1551-4fcd-90c2-8b2ef6f128c9

This is very good. Please share what settings you used.

This is very good.
Please share what settings you used or the changes required.

Hi, this issue is likely caused by misalignment in the face regions between the driving poses and the given reference image. Since I didn’t modify any parameter settings, I simply ensured that the face regions between the driving poses and the reference image are properly aligned.

I simply ensured that the face regions between the driving poses and the reference image are properly aligned.

So if I understand correctly, you used the same inputs attached in first post. I tried again and getting the same deformed results.
How did you ensured that the face regions between the driving poses and the reference image are properly aligned.

So let me explain the process I followed

I have target video and used 1st frame as Controlnet input and generated new image using Forge.
I extracted the frames from target video using the command mentioned in Readme
I generated poses using python DWPOSE/skeleton_extraction.py --target_image_folder_path="inference/test/target_images" --ref_image_path="inference/test/reference.png" --poses_folder_path="inference/test/poses"
I renamed all poses to start from frame_0 instead of frame_1
Do the inference

C:\aii\StableAnimator\inference\test>tree /F
Folder PATH listing for volume Windows-SSD
Volume serial number is CE9F-A6AE
C:.
│   reference.png
│   target.mp4
│
├───faces
│       frame_0.png
│       frame_1.png
│       frame_10.png
│       frame_11.png
│       frame_12.png
│       frame_13.png
│       frame_14.png
│       frame_15.png
│       frame_16.png
│       frame_17.png
│       frame_18.png
│       frame_19.png
│       frame_2.png
│       frame_20.png
│       frame_21.png
│       frame_22.png
│       frame_23.png
│       frame_24.png
│       frame_25.png
│       frame_26.png
│       frame_27.png
│       frame_28.png
│       frame_29.png
│       frame_3.png
│       frame_4.png
│       frame_5.png
│       frame_6.png
│       frame_7.png
│       frame_8.png
│       frame_9.png
│
├───poses
│       frame_0.png
│       frame_1.png
│       frame_10.png
│       frame_11.png
│       frame_12.png
│       frame_13.png
│       frame_14.png
│       frame_15.png
│       frame_16.png
│       frame_17.png
│       frame_18.png
│       frame_19.png
│       frame_2.png
│       frame_20.png
│       frame_21.png
│       frame_22.png
│       frame_23.png
│       frame_24.png
│       frame_25.png
│       frame_26.png
│       frame_27.png
│       frame_28.png
│       frame_29.png
│       frame_3.png
│       frame_4.png
│       frame_5.png
│       frame_6.png
│       frame_7.png
│       frame_8.png
│       frame_9.png
│
└───target_images
        frame_1.png
        frame_10.png
        frame_11.png
        frame_12.png
        frame_13.png
        frame_14.png
        frame_15.png
        frame_16.png
        frame_17.png
        frame_18.png
        frame_19.png
        frame_2.png
        frame_20.png
        frame_21.png
        frame_22.png
        frame_23.png
        frame_24.png
        frame_25.png
        frame_26.png
        frame_27.png
        frame_28.png
        frame_29.png
        frame_3.png
        frame_30.png
        frame_4.png
        frame_5.png
        frame_6.png
        frame_7.png
        frame_8.png
        frame_9.png

Result face not good


webui-Refine the editor

Add front-end validations to editor.

Make parse yml a safe operation.

Remove extra line from ace editor.

Relates to #286

Codecov Report

Merging #295 into master will decrease coverage by 0.72%.
The diff coverage is 63.63%.

@@            Coverage Diff             @@
##           master     #295      +/-   ##
==========================================
- Coverage   90.98%   90.25%   -0.73%
==========================================
  Files          36       36
  Lines         355      349       -6
  Branches       17       14       -3
==========================================
- Hits          323      315       -8
- Misses         28       31       +3
+ Partials        4        3       -1

Flag
Coverage Δ

#webui
90.25% <63.63%> (-0.73%)
:arrow_down:

Impacted Files
Coverage Δ

web-ui/src/client/app/components/editor.jsx
0% <ø> (ø)
:arrow_up:

web-ui/src/client/app/components/url.jsx
0% <0%> (ø)
:arrow_up:

web-ui/src/client/app/containers/url.jsx
100% <100%> (ø)
:arrow_up:

web-ui/src/client/app/containers/editor.jsx
76.92% <62.5%> (-16.83%)
:arrow_down:

web-ui/src/client/app/containers/violations.jsx
85.71% <0%> (-8.04%)
:arrow_down:

web-ui/src/client/app/services/rest.js
100% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5881de4...8242a15. Read the comment docs.

@bhaskarmelkani let's see tomorrow... because I have also introduced some kind of the validation to hotfix some bugs see #292 and #290

👍

👍

👍

👍


[Android] textAlignVertical doesn't work on nested text

[x] I have reviewed the documentation
[x] I have searched existing issues
[x] I am using the latest React Native version

textAlignVertical works fine when set on the top-most Text component.  However, if you have any nested texts (a common use case), you can not override the alignVertical in the child Text component.
Environment

OS: macOS Sierra 10.12.6
Node: 9.3.0
Yarn: 1.3.2
npm: 5.6.0
Watchman: 4.9.0
Xcode: Xcode 9.2 Build version 9C40b
Android Studio: 2.3.3
Packages: (wanted => installed)
react: 16.3.0-alpha.1 => 16.3.0-alpha.1
react-native: 0.55.0 => 0.55.0
Steps to Reproduce

Use this expo app OR create a nested Text component with the same height as its parent & give it a textAlignVertical

Expected Behavior
The child Text's textAlignVertical should be honored.
Actual Behavior
The child Text's textAlignVertical is NOT honored. See screenshots below for two different cases:

textAlignVertical on parent Text
textAlignVertical on child Text

This issue still exists in React Native 0.55.2

Version 0.56.0
Parent Component have high priority than Nested Text.
So Child component's Text style props is ignored.
I think it should reverse. Child component should have more high priority than parent.

@megantracy93
Even if Text components are nested in other Text components,
they are merged into a single TextView of Android
So you cannot manipulate text position in nested Text components.
In this case, you can manipulate vertical position  by lineHeight property.

Still a meaningful issue. Please fix 😘

@hoda-oz lineHeight is not the correct property for my use case as I have a multi-line string that should be center-aligned. Using lineHeight on a multi-line string results in each line having that height, rather than the combination of all the lines.

A coping strategy for anyone that finds this is wrapping the <Text> with another <View>, e.g.
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
    <Text>Whatever here</Text>
</View>

In this case even multiline text is correctly centred in the view. It'd certainly be easier if textAlignVertical worked, but this might help you in the meantime.


Bug: v0.1.14 breaks the typos-LSP with exit 101

Since updating to v0.1.14, I regularly get this error on opening a new file:
Client 8 quit with exit code 101 and signal 0
# (8 being the id of typos-ls)

It does not happen with every opening of a new file, but I'd say 60% of the time? Cannot really reproduce what the condition for this is, unfortunately.

Ah ... I wonder if its happening on some file types and not others ... could you try running nvim with RUST_LOG=debug and when you see the panic, report the lsp logs (via :LspLog or usually in ~/.local/state/nvim/lsp.log) ?

To enable debug logging, try either:

RUST_LOG=debug nvim, or
in the lsp config setcmd_env = { RUST_LOG = "debug" }

okay, here iss what I got with that:
[START][2024-03-03 12:03:50] LSP logging initiated
[ERROR][2024-03-03 12:03:50] .../vim/lsp/rpc.lua:734 "rpc" "/Users/chrisgrieser/.local/share/nvim/mason/bin/typos-lsp" "stderr" '2024-03-03T11:03:50.567833Z DEBUG typos_lsp::lsp: initialize: {"processId":1053,"rootPath":"/Users/chrisgrieser/.config/nvim","rootUri":"file:///Users/chrisgrieser/.config/nvim","initializationOptions":{"diagnosticSeverity":"information"},"capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"resourceOperations":["rename","create","delete"]},"didChangeWatchedFiles":{"dynamicRegistration":false,"relativePatternSupport":true},"symbol":{"dynamicRegistration":false,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"workspaceFolders":true,"configuration":true,"semanticTokens":{"refreshSupport":true}},"textDocument":{"synchronization":{"dynamicRegistration":false,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":false,"completionItem":{"snippetSupport":true,"commitCharactersSupport":false,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":false,"preselectSupport":false},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]},"contextSupport":false},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":false,"signatureInformation":{"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true},"activeParameterSupport":true}},"references":{"dynamicRegistration":false},"documentHighlight":{"dynamicRegistration":false},"documentSymbol":{"dynamicRegistration":false,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true},"declaration":{"linkSupport":true},"definition":{"linkSupport":true},"typeDefinition":{"linkSupport":true},"implementation":{"linkSupport":true},"codeAction":{"dynamicRegistration":false,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"isPreferredSupport":true,"dataSupport":true,"resolveSupport":{"properties":["edit"]}},"rename":{"dynamicRegistration":false,"prepareSupport":true},"publishDiagnostics":{"relatedInformation":true,"tagSupport":{"valueSet":[1,2]}},"foldingRange":{"dynamicRegistration":false,"lineFoldingOnly":true},"callHierarchy":{"dynamicRegistration":false},"semanticTokens":{"dynamicRegistration":false,"requests":{"range":false,"full":{"delta":true}},"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator","decorator"],"tokenModifiers":["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"],"formats":["relative"],"overlappingTokenSupport":true,"multilineTokenSupport":false,"serverCancelSupport":false,"augmentsSyntaxTokens":true}},"window":{"workDoneProgress":true,"showMessage":{"messageActionItem":{"additionalPropertiesSupport":false}},"showDocument":{"support":true}}},"trace":"off","workspaceFolders":[{"uri":"file:///Users/chrisgrieser/.config/nvim","name":"/Users/chrisgrieser/.config/nvim"}],"clientInfo":{"name":"Neovim","version":"0.9.5"}}\n2024-03-03T11:03:50.567848Z  WARN typos_lsp::lsp: Client does not support diagnostics data. Code actions will not be available\n2024-03-03T11:03:50.567856Z DEBUG typos_lsp::state: Adding route /Users/chrisgrieser/.config/nvim/*p for path /Users/chrisgrieser/.config/nvim\n2024-03-03T11:03:50.572631Z DEBUG typos_lsp::state: Adding route /*p for path /\n'
[ERROR][2024-03-03 12:03:50] .../vim/lsp/rpc.lua:734 "rpc" "/Users/chrisgrieser/.local/share/nvim/mason/bin/typos-lsp" "stderr" "2024-03-03T11:03:50.788108Z DEBUG typos_lsp::lsp: did_open: \"{\\\"textDocument\\\":{\\\"uri\\\":\\\"file:///Users/chrisgrieser/.config/nvim/lua/plugins/lsp-config.lua\\\",\\\"languageId\\\":\\\"lua\\\",\\\"version\\\":0,\\\"text\\\":\\\"local u = require(\\\\\\\"config.utils\\\\\\\")\\\\n--------------------------------------------------------------------------------\\\\n\\\\n---since nvim-lspconfig and mason.nvim use different package names\\\\n---mappings from https://github.com/williamboman/mason-lspconfig.nvim/blob/main/lua/mason-lspconfig/mappings/server.lua\\\\n---@type table<string, string>\\\\nlocal lspToMasonMap = {\\\\n\\\\tautotools_ls = \\\\\\\"autotools-language-server\\\\\\\", -- Makefile lsp\\\\n\\\\tbashls = \\\\\\\"bash-language-server\\\\\\\",\\\\n\\\\tbiome = \\\\\\\"biome\\\\\\\", -- ts/js/json linter/formatter\\\\n\\\\tcssls = \\\\\\\"css-lsp\\\\\\\",\\\\n\\\\tefm = \\\\\\\"efm\\\\\\\", -- linter integration, only used for shellcheck in zsh files\\\\n\\\\temmet_language_server = \\\\\\\"emmet-language-server\\\\\\\", -- css/html completions\\\\n\\\\tjsonls = \\\\\\\"json-lsp\\\\\\\",\\\\n\\\\tltex = \\\\\\\"ltex-ls\\\\\\\", -- languagetool (natural language linter)\\\\n\\\\tlua_ls = \\\\\\\"lua-language-server\\\\\\\",\\\\n\\\\tmarksman = \\\\\\\"marksman\\\\\\\", -- markdown lsp\\\\n\\\\tpyright = \\\\\\\"pyright\\\\\\\", -- python lsp\\\\n\\\\truff_lsp = \\\\\\\"ruff-lsp\\\\\\\", -- python linter\\\\n\\\\tstylelint_lsp = \\\\\\\"stylelint-lsp\\\\\\\", -- css linter\\\\n\\\\ttaplo = \\\\\\\"taplo\\\\\\\", -- toml lsp\\\\n\\\\ttypos_lsp = \\\\\\\"typos-lsp\\\\\\\", -- spellchecker for code\\\\n\\\\tvale_ls = \\\\\\\"vale-ls\\\\\\\", -- natural language linter\\\\n\\\\tyamlls = \\\\\\\"yaml-language-server\\\\\\\",\\\\n\\\\ttsserver = \\\\\\\"typescript-language-server\\\\\\\",\\\\n}\\\\n\\\\n--------------------------------------------------------------------------------\\\\n\\\\n---@class (exact) lspConfiguration see https://github.com/neovim/nvim-lspconfig/blob/master/doc/lspconfig.txt#L46\\\\n---@field autostart? boolean\\\\n---@field capabilities? table <string, string|table|boolean|function>\\\\n---@field cmd? string[]\\\\n---@field filetypes? string[]\\\\n---@field handlers? table <string, function>\\\\n---@field init_options? table <string, string|table|boolean>\\\\n---@field on_attach? function(client, bufnr)\\\\n---@field on_new_config? function(new_config, root_dir)\\\\n---@field root_dir? function(filename, bufnr)\\\\n---@field settings? table <string, table>\\\\n---@field single_file_support? boolean\\\\n---@field cmd_env? table<string, string>\\\\n\\\\n---@type table<string, lspConfiguration>\\\\nlocal serverConfigs = {}\\\\nfor lspName, _ in pairs(lspToMasonMap) do\\\\n\\\\tserverConfigs[lspName] = {}\\\\nend\\\\n\\\\n--------------------------------------------------------------------------------\\\\n-- BASH / ZSH\\\\n\\\\n-- DOCS https://github.com/bash-lsp/bash-language-server/blob/main/server/src/config.ts\\\\n\\\\n-- PENDING https://github.com/bash-lsp/bash-language-server/issues/1064\\\\n-- disable shellcheck via LSP to avoid double-diagnostics\\\\nserverConfigs.bashls = {\\\\n\\\\tsettings = {\\\\n\\\\t\\\\tbashIde = { shellcheckPath = \\\\\\\"\\\\\\\" },\\\\n\\\\t},\\\\n}\\\\n\\\\n-- HACK use efm to use shellcheck with zsh files\\\\n-- EFM: Markdown & Shell\\\\nserverConfigs.efm = {\\\\n\\\\tcmd = { \\\\\\\"efm-langserver\\\\\\\", \\\\\\\"-c\\\\\\\", vim.g.linterConfigs .. \\\\\\\"/efm.yaml\\\\\\\" },\\\\n\\\\tfiletypes = { \\\\\\\"sh\\\\\\\", \\\\\\\"markdown\\\\\\\" }, -- limit to filestypes needed\\\\n\\\\ton_attach = function(client)\\\\n\\\\t\\\\t-- Disable in Obsidian vault, as `.markdownlintignore` does not work well with efm\\\\n\\\\t\\\\tif vim.startswith(vim.api.nvim_buf_get_name(0), vim.env.VAULT_PATH) then\\\\n\\\\t\\\\t\\\\tvim.cmd.LspStop(client.id)\\\\n\\\\t\\\\tend\\\\n\\\\tend,\\\\n}\\\\n\\\\nlocal efmDependencies = {\\\\n\\\\t\\\\\\\"shellcheck\\\\\\\", -- PENDING https://github.com/bash-lsp/bash-language-server/issues/663\\\\n\\\\t\\\\\\\"markdownlint\\\\\\\",\\\\n}\\\\n\\\\n--------------------------------------------------------------------------------\\\\n-- LUA\\\\n\\\\n-- DOCS https://luals.github.io/wiki/settings/\\\\nserverConfigs.lua_ls = {\\\\n\\\\tsettings = {\\\\n\\\\t\\\\tLua = {\\\\n\\\\t\\\\t\\\\tcompletion = {\\\\n\\\\t\\\\t\\\\t\\\\tcallSnippet = \\\\\\\"Replace\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\tkeywordSnippet = \\\\\\\"Replace\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\tshowWord = \\\\\\\"Disable\\\\\\\", -- don't suggest common words as fallback\\\\n\\\\t\\\\t\\\\t\\\\tworkspaceWord = false, -- already done by cmp-buffer\\\\n\\\\t\\\\t\\\\t\\\\tpostfix = \\\\\\\".\\\\\\\", -- useful for `table.insert` and the like\\\\n\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\tdiagnostics = {\\\\n\\\\t\\\\t\\\\t\\\\tglobals = { \\\\\\\"vim\\\\\\\" }, -- when contributing to nvim plugins missing a `.luarc.json`\\\\n\\\\t\\\\t\\\\t\\\\tdisable = { \\\\\\\"trailing-space\\\\\\\" }, -- formatter already does that\\\\n\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\thint = { -- inlay hints\\\\n\\\\t\\\\t\\\\t\\\\tenable = true,\\\\n\\\\t\\\\t\\\\t\\\\tsetType = true,\\\\n\\\\t\\\\t\\\\t\\\\tarrayIndex = \\\\\\\"Disable\\\\\\\",\\\\n\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t-- FIX https://github.com/sumneko/lua-language-server/issues/679#issuecomment-925524834\\\\n\\\\t\\\\t\\\\tworkspace = { checkThirdParty = \\\\\\\"Disable\\\\\\\" },\\\\n\\\\t\\\\t},\\\\n\\\\t},\\\\n}\\\\n\\\\n--------------------------------------------------------------------------------\\\\n-- PYTHON\\\\n\\\\n-- DOCS https://github.com/astral-sh/ruff-lsp#settings\\\\nserverConfigs.ruff_lsp = {\\\\n\\\\tinit_options = {\\\\n\\\\t\\\\tsettings = {\\\\n\\\\t\\\\t\\\\torganizeImports = false, -- when \\\\\\\"I\\\\\\\" ruleset is added, then included in \\\\\\\"fixAll\\\\\\\"\\\\n\\\\t\\\\t\\\\tcodeAction = { disableRuleComment = { enable = false } }, -- using nvim-rulebook instead\\\\n\\\\t\\\\t},\\\\n\\\\t},\\\\n\\\\ton_attach = function(ruff) ruff.server_capabilities.hoverProvider = false end,\\\\n}\\\\n\\\\n--------------------------------------------------------------------------------\\\\n-- CSS\\\\n\\\\n-- DOCS https://github.com/olrtg/emmet-language-server#neovim\\\\nserverConfigs.emmet_language_server = {\\\\n\\\\tfiletypes = { \\\\\\\"html\\\\\\\", \\\\\\\"css\\\\\\\", \\\\\\\"scss\\\\\\\" },\\\\n\\\\tinit_options = {\\\\n\\\\t\\\\tshowSuggestionsAsSnippets = true, -- so it works with luasnip\\\\n\\\\t},\\\\n}\\\\n\\\\n-- DOCS\\\\n-- https://github.com/sublimelsp/LSP-css/blob/master/LSP-css.sublime-settings\\\\n-- https://github.com/microsoft/vscode-css-languageservice/blob/main/src/services/lintRules.ts\\\\nserverConfigs.cssls = {\\\\n\\\\tsettings = {\\\\n\\\\t\\\\tcss = {\\\\n\\\\t\\\\t\\\\tformat = {\\\\n\\\\t\\\\t\\\\t\\\\tenable = true,\\\\n\\\\t\\\\t\\\\t\\\\t-- BUG this config is being ignored. Leaving in case of css-lsp-update\\\\n\\\\t\\\\t\\\\t\\\\t-- preserveNewLines = true,\\\\n\\\\t\\\\t\\\\t\\\\t-- maxPreserveNewLines = 2,\\\\n\\\\t\\\\t\\\\t\\\\t-- spaceAroundSelectorSeparator = true,\\\\n\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\tlint = {\\\\n\\\\t\\\\t\\\\t\\\\tvendorPrefix = \\\\\\\"ignore\\\\\\\", -- needed for scrollbars\\\\n\\\\t\\\\t\\\\t\\\\tduplicateProperties = \\\\\\\"warning\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\tzeroUnits = \\\\\\\"warning\\\\\\\",\\\\n\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t},\\\\n\\\\t},\\\\n}\\\\n\\\\n-- DOCS https://github.com/bmatcuk/stylelint-lsp#settings\\\\n-- INFO still requires LSP installed via npm (not working with stylelint from mason)\\\\nserverConfigs.stylelint_lsp = {\\\\n\\\\tfiletypes = { \\\\\\\"css\\\\\\\", \\\\\\\"scss\\\\\\\" }, -- don't enable on js/ts, since I don't need it there\\\\n\\\\tsettings = {\\\\n\\\\t\\\\tstylelintplus = { autoFixOnFormat = true },\\\\n\\\\t},\\\\n}\\\\n\\\\n--------------------------------------------------------------------------------\\\\n-- JS/TS\\\\n\\\\n-- DOCS https://github.com/typescript-language-server/typescript-language-server/blob/master/docs/configuration.md\\\\nserverConfigs.tsserver = {\\\\n\\\\tsettings = {\\\\n\\\\n\\\\t\\\\t-- \\\\\\\"Cannot redeclare block-scoped variable\\\\\\\" -> not useful for single-file-JXA\\\\n\\\\t\\\\t-- (Biome works only on single-file and so already check for unintended re-declarations.)\\\\n\\\\t\\\\tdiagnostics = { ignoredCodes = { 2451 } },\\\\n\\\\n\\\\t\\\\ttypescript = {\\\\n\\\\t\\\\t\\\\tinlayHints = {\\\\n\\\\t\\\\t\\\\t\\\\tincludeInlayEnumMemberValueHints = true,\\\\n\\\\t\\\\t\\\\t\\\\tincludeInlayFunctionLikeReturnTypeHints = true,\\\\n\\\\t\\\\t\\\\t\\\\tincludeInlayFunctionParameterTypeHints = true,\\\\n\\\\t\\\\t\\\\t\\\\tincludeInlayParameterNameHints = \\\\\\\"all\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\tincludeInlayParameterNameHintsWhenArgumentMatchesName = true,\\\\n\\\\t\\\\t\\\\t\\\\tincludeInlayPropertyDeclarationTypeHints = true,\\\\n\\\\t\\\\t\\\\t\\\\tincludeInlayVariableTypeHints = true,\\\\n\\\\t\\\\t\\\\t\\\\tincludeInlayVariableTypeHintsWhenTypeMatchesName = true,\\\\n\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t-- even without formatting still relevant for `organizeImports`\\\\n\\\\t\\\\t\\\\tformat = { convertTabsToSpaces = false },\\\\n\\\\t\\\\t},\\\\n\\\\n\\\\t\\\\t-- enable checking javascript without a `jsconfig.json`\\\\n\\\\t\\\\t-- DOCS https://www.typescriptlang.org/tsconfig\\\\n\\\\t\\\\timplicitProjectConfiguration = { checkJs = true, tar"
[ERROR][2024-03-03 12:03:50] .../vim/lsp/rpc.lua:734 "rpc" "/Users/chrisgrieser/.local/share/nvim/mason/bin/typos-lsp" "stderr" "get = \\\\\\\"ES2022\\\\\\\" },\\\\n\\\\t},\\\\n\\\\ton_attach = function(client)\\\\n\\\\t\\\\t-- Disable formatting in favor of biome\\\\n\\\\t\\\\tclient.server_capabilities.documentFormattingProvider = false\\\\n\\\\t\\\\tclient.server_capabilities.documentRangeFormattingProvider = false\\\\n\\\\tend,\\\\n}\\\\nserverConfigs.tsserver.settings.javascript = serverConfigs.tsserver.settings.typescript\\\\n\\\\n-- SIC needs to be enabled, can be removed with nvim 0.10 support for dynamic config\\\\nserverConfigs.biome = {\\\\n\\\\ton_attach = function(client)\\\\n\\\\t\\\\tclient.server_capabilities.documentFormattingProvider = true\\\\n\\\\t\\\\tclient.server_capabilities.documentRangeFormattingProvider = true\\\\n\\\\tend,\\\\n}\\\\n\\\\n--------------------------------------------------------------------------------\\\\n\\\\n-- DOCS https://github.com/Microsoft/vscode/tree/main/extensions/json-language-features/server#configuration\\\\n-- Disable formatting in favor of biome\\\\nserverConfigs.jsonls = {\\\\n\\\\tinit_options = {\\\\n\\\\t\\\\tprovideFormatter = false,\\\\n\\\\t\\\\tdocumentRangeFormattingProvider = false,\\\\n\\\\t},\\\\n}\\\\n\\\\n--------------------------------------------------------------------------------\\\\n-- LTEX (LanguageTool LSP)\\\\n\\\\n-- since reading external file with the method described in docs does not work\\\\nlocal function getDictWords()\\\\n\\\\tlocal dictfile = vim.g.linterConfigs .. \\\\\\\"/spellfile-vim-ltex.add\\\\\\\"\\\\n\\\\tlocal fileDoesNotExist = vim.loop.fs_stat(dictfile) == nil\\\\n\\\\tif fileDoesNotExist then return {} end\\\\n\\\\tlocal words = {}\\\\n\\\\tfor word in io.lines(dictfile) do\\\\n\\\\t\\\\ttable.insert(words, word)\\\\n\\\\tend\\\\n\\\\treturn words\\\\nend\\\\n\\\\n-- DOCS https://valentjn.github.io/ltex/settings.html\\\\nserverConfigs.ltex = {\\\\n\\\\tfiletypes = { \\\\\\\"markdown\\\\\\\" },\\\\n\\\\tsettings = {\\\\n\\\\t\\\\tltex = {\\\\n\\\\t\\\\t\\\\tlanguage = \\\\\\\"en-US\\\\\\\", -- can also be set per file via markdown yaml header (e.g. `de-DE`)\\\\n\\\\t\\\\t\\\\tdictionary = { [\\\\\\\"en-US\\\\\\\"] = getDictWords() },\\\\n\\\\t\\\\t\\\\tdisabledRules = {\\\\n\\\\t\\\\t\\\\t\\\\t[\\\\\\\"en-US\\\\\\\"] = {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"EN_QUOTES\\\\\\\", -- don't expect smart quotes\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"WHITESPACE_RULE\\\\\\\", -- too many false positives\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"PUNCTUATION_PARAGRAPH_END\\\\\\\", -- too many false positives\\\\n\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\tdiagnosticSeverity = {\\\\n\\\\t\\\\t\\\\t\\\\tdefault = \\\\\\\"info\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\tMORFOLOGIK_RULE_EN_US = \\\\\\\"hint\\\\\\\", -- spelling\\\\n\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\tadditionalRules = {\\\\n\\\\t\\\\t\\\\t\\\\tenablePickyRules = true,\\\\n\\\\t\\\\t\\\\t\\\\tmothersTongue = \\\\\\\"de-DE\\\\\\\",\\\\n\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\tmarkdown = {\\\\n\\\\t\\\\t\\\\t\\\\tnodes = { Link = \\\\\\\"dummy\\\\\\\" },\\\\n\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t},\\\\n\\\\t},\\\\n\\\\ton_attach = function(client, bufnr)\\\\n\\\\t\\\\t-- have `zg` update ltex dictionary file as well as vim's spellfile\\\\n\\\\t\\\\tvim.keymap.set({ \\\\\\\"n\\\\\\\", \\\\\\\"x\\\\\\\" }, \\\\\\\"zg\\\\\\\", function()\\\\n\\\\t\\\\t\\\\tlocal word\\\\n\\\\t\\\\t\\\\tif vim.fn.mode() == \\\\\\\"n\\\\\\\" then\\\\n\\\\t\\\\t\\\\t\\\\tword = vim.fn.expand(\\\\\\\"<cword>\\\\\\\")\\\\n\\\\t\\\\t\\\\t\\\\tu.normal(\\\\\\\"zg\\\\\\\")\\\\n\\\\t\\\\t\\\\telse\\\\n\\\\t\\\\t\\\\t\\\\tu.normal('zggv\\\\\\\"zy')\\\\n\\\\t\\\\t\\\\t\\\\tword = vim.fn.getreg(\\\\\\\"z\\\\\\\")\\\\n\\\\t\\\\t\\\\tend\\\\n\\\\t\\\\t\\\\tlocal ltexSettings = vim.lsp.get_active_clients({ name = \\\\\\\"ltex\\\\\\\" })[1].config.settings\\\\n\\\\t\\\\t\\\\ttable.insert(ltexSettings.ltex.dictionary[\\\\\\\"en-US\\\\\\\"], word)\\\\n\\\\t\\\\t\\\\tvim.lsp.buf_notify(0, \\\\\\\"workspace/didChangeConfiguration\\\\\\\", { settings = ltexSettings })\\\\n\\\\t\\\\tend, { desc = \\\\\\\"\\u{f04c6} Add Word\\\\\\\", buffer = bufnr })\\\\n\\\\n\\\\t\\\\t-- Disable ltex in Obsidian vault, as there is no `.ltexignore` https://github.com/valentjn/vscode-ltex/issues/576\\\\n\\\\t\\\\tif vim.startswith(vim.api.nvim_buf_get_name(0), vim.env.VAULT_PATH) then\\\\n\\\\t\\\\t\\\\tvim.cmd.LspStop(client.id)\\\\n\\\\t\\\\tend\\\\n\\\\tend,\\\\n}\\\\n\\\\n-- TYPOS\\\\n-- DOCS https://github.com/tekumara/typos-lsp#settings\\\\nserverConfigs.typos_lsp = {\\\\n\\\\tinit_options = { diagnosticSeverity = \\\\\\\"information\\\\\\\" },\\\\n\\\\tcmd_env = { RUST_LOG = \\\\\\\"debug\\\\\\\" }\\\\n}\\\\n\\\\n-- VALE\\\\n-- DOCS https://vale.sh/docs/integrations/guide/#vale-ls\\\\n-- DOCS https://vale.sh/docs/topics/config#search-process\\\\nserverConfigs.vale_ls = {\\\\n\\\\tinit_options = {\\\\n\\\\t\\\\tconfigPath = vim.g.linterConfigs .. \\\\\\\"/vale/vale.ini\\\\\\\",\\\\n\\\\t\\\\tinstallVale = true,\\\\n\\\\t\\\\tsyncOnStartup = false,\\\\n\\\\t},\\\\n\\\\n\\\\t-- just needs any root directory to work, we are providing the config already\\\\n\\\\troot_dir = function() return os.getenv(\\\\\\\"HOME\\\\\\\") end,\\\\n\\\\n\\\\t-- FIX https://github.com/errata-ai/vale-ls/issues/4\\\\n\\\\tcmd_env = { VALE_CONFIG_PATH = vim.g.linterConfigs .. \\\\\\\"/vale/vale.ini\\\\\\\" },\\\\n}\\\\n\\\\n--------------------------------------------------------------------------------\\\\n\\\\n-- DOCS https://github.com/redhat-developer/yaml-language-server/tree/main#language-server-settings\\\\nserverConfigs.yamlls = {\\\\n\\\\tsettings = {\\\\n\\\\t\\\\tyaml = {\\\\n\\\\t\\\\t\\\\tformat = {\\\\n\\\\t\\\\t\\\\t\\\\tenable = true,\\\\n\\\\t\\\\t\\\\t\\\\tprintWidth = 105,\\\\n\\\\t\\\\t\\\\t\\\\tproseWrap = \\\\\\\"always\\\\\\\",\\\\n\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t},\\\\n\\\\t},\\\\n\\\\t-- SIC needs enabling via setting *and* via capabilities to work.\\\\n\\\\t-- Probably fixed with nvim 0.10 supporting dynamic config changes\\\\n\\\\ton_attach = function(client) client.server_capabilities.documentFormattingProvider = true end,\\\\n}\\\\n\\\\n--------------------------------------------------------------------------------\\\\n\\\\nreturn {\\\\n\\\\t{\\\\n\\\\t\\\\t\\\\\\\"neovim/nvim-lspconfig\\\\\\\",\\\\n\\\\t\\\\tlazy = false,\\\\n\\\\t\\\\tmason_dependencies = vim.list_extend(efmDependencies, vim.tbl_values(lspToMasonMap)),\\\\n\\\\t\\\\tdependencies = {\\\\n\\\\t\\\\t\\\\t\\\\\\\"folke/neodev.nvim\\\\\\\", -- loading as dependency ensures it's loaded before lua_ls\\\\n\\\\t\\\\t\\\\topts = { library = { plugins = false } }, -- too slow with all my plugins\\\\n\\\\t\\\\t},\\\\n\\\\t\\\\tconfig = function()\\\\n\\\\t\\\\t\\\\trequire(\\\\\\\"lspconfig.ui.windows\\\\\\\").default_options.border = vim.g.borderStyle\\\\n\\\\n\\\\t\\\\t\\\\t-- Enable snippets-completion (nvim-cmp) and folding (nvim-ufo)\\\\n\\\\t\\\\t\\\\tlocal lspCapabilities = vim.lsp.protocol.make_client_capabilities()\\\\n\\\\t\\\\t\\\\tlspCapabilities.textDocument.completion.completionItem.snippetSupport = true\\\\n\\\\t\\\\t\\\\tlspCapabilities.textDocument.foldingRange =\\\\n\\\\t\\\\t\\\\t\\\\t{ dynamicRegistration = false, lineFoldingOnly = true }\\\\n\\\\n\\\\t\\\\t\\\\tfor lsp, serverConfig in pairs(serverConfigs) do\\\\n\\\\t\\\\t\\\\t\\\\tserverConfig.capabilities = lspCapabilities\\\\n\\\\t\\\\t\\\\t\\\\trequire(\\\\\\\"lspconfig\\\\\\\")[lsp].setup(serverConfig)\\\\n\\\\t\\\\t\\\\tend\\\\n\\\\n\\\\n\\\\t\\\\t\\\\tlocal symLinkFrom = vim.env.DATA_DIR .. \\\\\\\"/private dotfiles/codium-api-key.json\\\\\\\"\\\\n\\\\t\\\\t\\\\tlocal symLinkTo = os.getenv(\\\\\\\"HOME\\\\\\\") .. \\\\\\\"/.codeium/config.json\\\\\\\"\\\\n\\\\t\\\\t\\\\tlocal fileExists = vim.loop.fs_stat(symLinkTo) ~= nil\\\\n\\\\t\\\\t\\\\tif not fileExists then\\\\n\\\\t\\\\t\\\\t\\\\tpcall(vim.fn.mkdir, vim.fs.dirname(symLinkTo))\\\\n\\\\t\\\\t\\\\t\\\\tvim.loop.fs_symlink(symLinkFrom, symLinkTo)\\\\n\\\\t\\\\t\\\\tend\\\\n\\\\t\\\\tend,\\\\n\\\\t},\\\\n}\\\\n\\\"}}\"\n2024-03-03T11:03:50.788493Z DEBUG typos_lsp::lsp: check_text: path /Users/chrisgrieser/.config/nvim/lua/plugins/lsp-config.lua\n"
[ERROR][2024-03-03 12:04:01] .../vim/lsp/rpc.lua:734 "rpc" "/Users/chrisgrieser/.local/share/nvim/mason/bin/typos-lsp" "stderr" "2024-03-03T11:04:01.188224Z DEBUG typos_lsp::lsp: did_open: \"{\\\"textDocument\\\":{\\\"uri\\\":\\\"file:///\\\",\\\"languageId\\\":\\\"TelescopePrompt\\\",\\\"version\\\":0,\\\"text\\\":\\\"\\\\n\\\"}}\"\nthread 'main' panicked at crates/typos-lsp/src/lsp.rs:268:48:\ncalled `Result::unwrap()` on an `Err` value: NotFound\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n"
[ERROR][2024-03-03 12:04:06] .../vim/lsp/rpc.lua:734 "rpc" "/Users/chrisgrieser/.local/share/nvim/mason/bin/typos-lsp" "stderr" '2024-03-03T11:04:06.275524Z DEBUG typos_lsp::lsp: initialize: {"processId":1053,"rootPath":"/Users/chrisgrieser/.config/nvim","rootUri":"file:///Users/chrisgrieser/.config/nvim","initializationOptions":{"diagnosticSeverity":"information"},"capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"resourceOperations":["rename","create","delete"]},"didChangeWatchedFiles":{"dynamicRegistration":false,"relativePatternSupport":true},"symbol":{"dynamicRegistration":false,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"workspaceFolders":true,"configuration":true,"semanticTokens":{"refreshSupport":true}},"textDocument":{"synchronization":{"dynamicRegistration":false,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":false,"completionItem":{"snippetSupport":true,"commitCharactersSupport":false,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":false,"preselectSupport":false},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]},"contextSupport":false},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":false,"signatureInformation":{"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true},"activeParameterSupport":true}},"references":{"dynamicRegistration":false},"documentHighlight":{"dynamicRegistration":false},"documentSymbol":{"dynamicRegistration":false,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true},"declaration":{"linkSupport":true},"definition":{"linkSupport":true},"typeDefinition":{"linkSupport":true},"implementation":{"linkSupport":true},"codeAction":{"dynamicRegistration":false,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"isPreferredSupport":true,"dataSupport":true,"resolveSupport":{"properties":["edit"]}},"rename":{"dynamicRegistration":false,"prepareSupport":true},"publishDiagnostics":{"relatedInformation":true,"tagSupport":{"valueSet":[1,2]}},"foldingRange":{"dynamicRegistration":false,"lineFoldingOnly":true},"callHierarchy":{"dynamicRegistration":false},"semanticTokens":{"dynamicRegistration":false,"requests":{"range":false,"full":{"delta":true}},"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator","decorator"],"tokenModifiers":["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"],"formats":["relative"],"overlappingTokenSupport":true,"multilineTokenSupport":false,"serverCancelSupport":false,"augmentsSyntaxTokens":true}},"window":{"workDoneProgress":true,"showMessage":{"messageActionItem":{"additionalPropertiesSupport":false}},"showDocument":{"support":true}}},"trace":"off","workspaceFolders":[{"uri":"file:///Users/chrisgrieser/.config/nvim","name":"/Users/chrisgrieser/.config/nvim"}],"clientInfo":{"name":"Neovim","version":"0.9.5"}}\n2024-03-03T11:04:06.275545Z  WARN typos_lsp::lsp: Client does not support diagnostics data. Code actions will not be available\n2024-03-03T11:04:06.275556Z DEBUG typos_lsp::state: Adding route /Users/chrisgrieser/.config/nvim/*p for path /Users/chrisgrieser/.config/nvim\n2024-03-03T11:04:06.282404Z DEBUG typos_lsp::state: Adding route /*p for path /\n'
[ERROR][2024-03-03 12:04:06] .../vim/lsp/rpc.lua:734 "rpc" "/Users/chrisgrieser/.local/share/nvim/mason/bin/typos-lsp" "stderr" '2024-03-03T11:04:06.312472Z DEBUG typos_lsp::lsp: did_open: "{\\"textDocument\\":{\\"uri\\":\\"file:///Users/chrisgrieser/.config/nvim/lua/plugins/mason.lua\\",\\"languageId\\":\\"lua\\",\\"version\\":0,\\"text\\":\\"return {\\\\n\\\\t{\\\\n\\\\t\\\\t\\\\\\"williamboman/mason.nvim\\\\\\",\\\\n\\\\t\\\\texternal_dependencies = { \\\\\\"node\\\\\\", \\\\\\"python3.12\\\\\\" },\\\\n\\\\t\\\\tkeys = {\\\\n\\\\t\\\\t\\\\t{ \\\\\\"<leader>pm\\\\\\", vim.cmd.Mason, desc = \\\\\\"\\u{f487} Mason\\\\\\" },\\\\n\\\\t\\\\t},\\\\n\\\\t\\\\topts = {\\\\n\\\\t\\\\t\\\\tui = {\\\\n\\\\t\\\\t\\\\t\\\\tborder = vim.g.borderStyle,\\\\n\\\\t\\\\t\\\\t\\\\theight = 0.85,\\\\n\\\\t\\\\t\\\\t\\\\twidth = 0.8,\\\\n\\\\t\\\\t\\\\t\\\\ticons = {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tpackage_installed = \\\\\\"â\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tpackage_pending = \\\\\\"\\u{f051f}\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tpackage_uninstalled = \\\\\\"â\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\tkeymaps = { -- consistent with keymaps for lazy.nvim\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tuninstall_package = \\\\\\"x\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\ttoggle_help = \\\\\\"?\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\ttoggle_package_expand = \\\\\\"<Tab>\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t},\\\\n\\\\t},\\\\n\\\\t{ -- auto-install lsps & formatters\\\\n\\\\t\\\\t\\\\\\"WhoIsSethDaniel/mason-tool-installer.nvim\\\\\\",\\\\n\\\\t\\\\tevent = \\\\\\"VeryLazy\\\\\\",\\\\n\\\\t\\\\tdependencies = \\\\\\"williamboman/mason.nvim\\\\\\",\\\\n\\\\t\\\\tconfig = function()\\\\n\\\\t\\\\t\\\\t-- dependencies of plugins (via lazy.nvim)\\\\n\\\\t\\\\t\\\\tlocal plugins = require(\\\\\\"lazy\\\\\\").plugins()\\\\n\\\\t\\\\t\\\\tlocal deps = vim.tbl_map(function(plugin) return plugin.mason_dependencies end, plugins)\\\\n\\\\t\\\\t\\\\tdeps = vim.tbl_flatten(vim.tbl_values(deps))\\\\n\\\\t\\\\t\\\\ttable.sort(deps)\\\\n\\\\t\\\\t\\\\tdeps = vim.fn.uniq(deps)\\\\n\\\\n\\\\t\\\\t\\\\t-- PENDING https://github.com/tekumara/typos-lsp/issues/39\\\\n\\\\t\\\\t\\\\tfor i = 1, #deps do\\\\n\\\\t\\\\t\\\\t\\\\tif deps[i] == \\\\\\"typos-lsp\\\\\\" then\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t-- deps[i] ={ \\\\\\"typos-lsp\\\\\\", version = \\\\\\"v0.1.13\\\\\\" } \\\\n\\\\t\\\\t\\\\t\\\\tend\\\\n\\\\t\\\\t\\\\tend\\\\n\\\\n\\\\t\\\\t\\\\trequire(\\\\\\"mason-tool-installer\\\\\\").setup {\\\\n\\\\t\\\\t\\\\t\\\\tensure_installed = deps,\\\\n\\\\t\\\\t\\\\t\\\\trun_on_start = false, -- manually, since otherwise not working with lazy-loading\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\tvim.defer_fn(vim.cmd.MasonToolsInstall, 500)\\\\n\\\\t\\\\t\\\\tvim.defer_fn(vim.cmd.MasonToolsClean, 1000) -- delayed, so noice.nvim is loaded before\\\\n\\\\t\\\\tend,\\\\n\\\\t},\\\\n}\\\\n\\"}}"\n2024-03-03T11:04:06.312519Z DEBUG typos_lsp::lsp: check_text: path /Users/chrisgrieser/.config/nvim/lua/plugins/mason.lua\n'
[ERROR][2024-03-03 12:04:08] .../vim/lsp/rpc.lua:734 "rpc" "/Users/chrisgrieser/.local/share/nvim/mason/bin/typos-lsp" "stderr" "2024-03-03T11:04:08.415498Z DEBUG typos_lsp::lsp: did_open: \"{\\\"textDocument\\\":{\\\"uri\\\":\\\"file:///\\\",\\\"languageId\\\":\\\"TelescopePrompt\\\",\\\"version\\\":0,\\\"text\\\":\\\"\\\\n\\\"}}\"\nthread 'main' panicked at crates/typos-lsp/src/lsp.rs:268:48:\ncalled `Result::unwrap()` on an `Err` value: NotFound\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n"
[ERROR][2024-03-03 12:04:09] .../vim/lsp/rpc.lua:734 "rpc" "/Users/chrisgrieser/.local/share/nvim/mason/bin/typos-lsp" "stderr" '2024-03-03T11:04:09.747877Z DEBUG typos_lsp::lsp: initialize: {"processId":1053,"rootPath":"/Users/chrisgrieser/.config/zsh","rootUri":"file:///Users/chrisgrieser/.config/zsh","initializationOptions":{"diagnosticSeverity":"information"},"capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"resourceOperations":["rename","create","delete"]},"didChangeWatchedFiles":{"dynamicRegistration":false,"relativePatternSupport":true},"symbol":{"dynamicRegistration":false,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"workspaceFolders":true,"configuration":true,"semanticTokens":{"refreshSupport":true}},"textDocument":{"synchronization":{"dynamicRegistration":false,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":false,"completionItem":{"snippetSupport":true,"commitCharactersSupport":false,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":false,"preselectSupport":false},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]},"contextSupport":false},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":false,"signatureInformation":{"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true},"activeParameterSupport":true}},"references":{"dynamicRegistration":false},"documentHighlight":{"dynamicRegistration":false},"documentSymbol":{"dynamicRegistration":false,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true},"declaration":{"linkSupport":true},"definition":{"linkSupport":true},"typeDefinition":{"linkSupport":true},"implementation":{"linkSupport":true},"codeAction":{"dynamicRegistration":false,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"isPreferredSupport":true,"dataSupport":true,"resolveSupport":{"properties":["edit"]}},"rename":{"dynamicRegistration":false,"prepareSupport":true},"publishDiagnostics":{"relatedInformation":true,"tagSupport":{"valueSet":[1,2]}},"foldingRange":{"dynamicRegistration":false,"lineFoldingOnly":true},"callHierarchy":{"dynamicRegistration":false},"semanticTokens":{"dynamicRegistration":false,"requests":{"range":false,"full":{"delta":true}},"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator","decorator"],"tokenModifiers":["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"],"formats":["relative"],"overlappingTokenSupport":true,"multilineTokenSupport":false,"serverCancelSupport":false,"augmentsSyntaxTokens":true}},"window":{"workDoneProgress":true,"showMessage":{"messageActionItem":{"additionalPropertiesSupport":false}},"showDocument":{"support":true}}},"trace":"off","workspaceFolders":[{"uri":"file:///Users/chrisgrieser/.config/zsh","name":"/Users/chrisgrieser/.config/zsh"}],"clientInfo":{"name":"Neovim","version":"0.9.5"}}\n2024-03-03T11:04:09.747888Z  WARN typos_lsp::lsp: Client does not support diagnostics data. Code actions will not be available\n2024-03-03T11:04:09.747896Z DEBUG typos_lsp::state: Adding route /Users/chrisgrieser/.config/zsh/*p for path /Users/chrisgrieser/.config/zsh\n2024-03-03T11:04:09.753168Z DEBUG typos_lsp::state: Adding route /*p for path /\n'
[ERROR][2024-03-03 12:04:09] .../vim/lsp/rpc.lua:734 "rpc" "/Users/chrisgrieser/.local/share/nvim/mason/bin/efm-langserver" "stderr" "2024/03/03 12:04:09 efm-langserver: reading on stdin, writing on stdout\n"
[ERROR][2024-03-03 12:04:09] .../vim/lsp/rpc.lua:734 "rpc" "/Users/chrisgrieser/.local/share/nvim/mason/bin/typos-lsp" "stderr" "2024-03-03T11:04:09.929353Z DEBUG typos_lsp::lsp: did_open: \"{\\\"textDocument\\\":{\\\"uri\\\":\\\"file:///Users/chrisgrieser/.config/zsh/config/git_github.zsh\\\",\\\"languageId\\\":\\\"sh\\\",\\\"version\\\":0,\\\"text\\\":\\\"alias gs='git status'\\\\nalias co='git checkout'\\\\nalias gd='git diff'\\\\nalias gt='git stash push && git stash show 0'\\\\nalias gT='git stash pop'\\\\nalias gi='gh issue list --state=open'\\\\nalias gI='gh issue list --state=closed'\\\\n\\\\nalias mergetool=\\\\\\\"git mergetool\\\\\\\"\\\\nalias reset='git reset'\\\\nalias push='git push'\\\\nalias pull='git pull --tags'\\\\nalias rebase='git rebase --interactive'\\\\nalias unlock='rm -v \\\\\\\"$(git rev-parse --git-dir)/index.lock\\\\\\\"'\\\\n\\\\nalias pr='gh pr create --web --fill'\\\\nalias rel='make --silent release' # personal convention to have `make release`\\\\n\\\\nfunction grh {\\\\n\\\\tgit reset --hard # undo changes\\\\n\\\\tgit clean -df    # remove untracked files\\\\n}\\\\n\\\\n#âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ\\\\n\\\\n# issues numbers & git revs\\\\nZSH_HIGHLIGHT_REGEXP+=('#[0-9]+' 'fg=blue,bold')\\\\nZSH_HIGHLIGHT_REGEXP+=('([0-9a-f]{6,9}|HEAD)((\\\\\\\\^+|~)[0-9]*)?' 'fg=yellow')\\\\n\\\\n# commit messages longer than 50 chars: orange, longer than 72 chars: red\\\\nZSH_HIGHLIGHT_REGEXP+=('^(gc|gC|git commit -m) \\\\\\\".{51,71}' 'fg=208') # 208 = orange\\\\nZSH_HIGHLIGHT_REGEXP+=('^(gc|gC|git commit -m) \\\\\\\".{72,}' 'fg=white,bold,bg=red')\\\\n\\\\n# inline code with backslashes\\\\nZSH_HIGHLIGHT_REGEXP+=($'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\`[^`]*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\`' 'fg=cyan,bold')\\\\n\\\\n# highlight conventional commits\\\\nZSH_HIGHLIGHT_REGEXP+=(\\\\n\\\\t'(feat|fix|test|perf|build|ci|revert|refactor|chore|docs|break|style|improv)(\\\\\\\\(.+\\\\\\\\))?(\\\\\\\\\\\\\\\\?\\\\\\\\!)?:'\\\\n\\\\t'fg=magenta,bold'\\\\n)\\\\n\\\\n#âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ\\\\n# STAGING\\\\nalias gaa='git add --all'\\\\nalias restore='git restore'\\\\nalias unadd='git restore --staged'\\\\n\\\\n# without argument, run interactively via fzf to toggle staged/unstaged\\\\n# with argument, stage the file(s). Modified completions allow for quicker selection.\\\\nfunction ga {\\\\n\\\\tif [[ -n \\\\\\\"$1\\\\\\\" ]]; then\\\\n\\\\t\\\\tgit add \\\\\\\"$@\\\\\\\"\\\\n\\\\t\\\\treturn 0\\\\n\\\\tfi\\\\n\\\\n\\\\tlocal check_staged='if git diff --cached --name-only | grep -q \\\\\\\"^\\\\\\\"{2..}\\\\\\\"$\\\\\\\" ; '\\\\n\\\\tlocal add_or_unadd='then git restore --stage -- {2..} ; else git add -- {2..} ; fi'\\\\n\\\\tlocal file_diff='{ git diff --color=always -- {2..} ; git diff --staged --color=always -- {2..} }'\\\\n\\\\tlocal style\\\\n\\\\tstyle=$(defaults read -g AppleInterfaceStyle &>/dev/null && echo --dark || echo --light)\\\\n\\\\tselection=$(\\\\n\\\\t\\\\tgit -c core.quotePath=false -c status.color=always status --short --untracked-files | fzf \\\\\\\\\\\\n\\\\t\\\\t\\\\t--ansi --nth=2.. --track \\\\\\\\\\\\n\\\\t\\\\t\\\\t--preview=\\\\\\\"$file_diff | delta $style --file-style=omit\\\\\\\" \\\\\\\\\\\\n\\\\t\\\\t\\\\t--bind=\\\\\\\"enter:reload($check_staged $add_or_unadd ; git -c core.quotePath=false -c status.color=always status --short --untracked-files)\\\\\\\"\\\\n\\\\t)\\\\n\\\\treturn 0 # prevent exiting 130\\\\n}\\\\n\\\\n# completions for running `ga` with argument\\\\n_change_git_files() {\\\\n\\\\tlocal -a changed_files=()\\\\n\\\\twhile IFS='' read -r file; do # turn lines into array\\\\n\\\\t\\\\tchanged_files+=(\\\\\\\"$file\\\\\\\")\\\\n\\\\tdone < <(git -c status.relativePaths=true status --porcelain --untracked-files | cut -c4-)\\\\n\\\\n\\\\tlocal expl && _description -V git-changed-files expl 'Changed & Untracked Files'\\\\n\\\\tcompadd \\\\\\\"${expl[@]}\\\\\\\" -- \\\\\\\"${changed_files[@]}\\\\\\\"\\\\n}\\\\ncompdef _change_git_files ga\\\\ncompdef _change_git_files unadd\\\\ncompdef _change_git_files restore\\\\n\\\\n#âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ\\\\n# SMART COMMIT\\\\n\\\\nfunction _stageAllIfNoStagedChanges {\\\\n\\\\tgit diff --staged --quiet && git add --all && print \\\\\\\"\\\\\\\\e[1;34mStaged all changes.\\\\\\\\e[0m\\\\\\\"\\\\n}\\\\n\\\\n# - if there are no staged changes, stage all changes (`git add -A`) and then commit\\\\n# - if the is clean after committing, pull-push\\\\nfunction gc {\\\\n\\\\t_stageAllIfNoStagedChanges\\\\n\\\\n\\\\t# without arg, just open in editor\\\\n\\\\tif [[ -z \\\\\\\"$1\\\\\\\" ]]; then\\\\n\\\\t\\\\tgit commit\\\\n\\\\t\\\\treturn\\\\n\\\\tfi\\\\n\\\\n\\\\tprintf \\\\\\\"\\\\\\\\e[1;34mCommit: \\\\\\\\e[0m\\\\\\\" &&\\\\n\\\\t\\\\tgit commit -m \\\\\\\"$@\\\\\\\" || return 1\\\\n\\\\n\\\\tif [[ -n \\\\\\\"$(git status --porcelain)\\\\\\\" ]]; then\\\\n\\\\t\\\\tprint \\\\\\\"\\\\\\\\e[1;34mPush: \\\\\\\\e[0mNot pushing since repo still dirty.\\\\\\\" &&\\\\n\\\\t\\\\t\\\\techo && git status\\\\n\\\\telse\\\\n\\\\t\\\\tprintf \\\\\\\"\\\\\\\\e[1;34mPull: \\\\\\\\e[0m\\\\\\\" &&\\\\n\\\\t\\\\t\\\\tgit pull --no-rebase && # --no-rebase prevents \\\\\\\"Cannot rebase on multiple branches\\\\\\\"\\\\n\\\\t\\\\t\\\\tprintf \\\\\\\"\\\\\\\\e[1;34mPush: \\\\\\\\e[0m\\\\\\\" &&\\\\n\\\\t\\\\t\\\\tgit push\\\\n\\\\tfi\\\\n}\\\\n\\\\nfunction gC {\\\\n\\\\t_stageAllIfNoStagedChanges\\\\n\\\\tprintf \\\\\\\"\\\\\\\\e[1;34mCommit: \\\\\\\\e[0m\\\\\\\" &&\\\\n\\\\t\\\\tgit commit -m \\\\\\\"$@\\\\\\\" || return 1\\\\n}\\\\n\\\\n# completions for them\\\\n_gc() {\\\\n\\\\t[[ $CURRENT -ne 2 ]] && return # only complete first word\\\\n\\\\tlocal cc=(\\\\\\\"fix\\\\\\\" \\\\\\\"feat\\\\\\\" \\\\\\\"chore\\\\\\\" \\\\\\\"docs\\\\\\\" \\\\\\\"style\\\\\\\" \\\\\\\"refactor\\\\\\\" \\\\\\\"perf\\\\\\\"\\\\n\\\\t\\\\t\\\\\\\"test\\\\\\\" \\\\\\\"build\\\\\\\" \\\\\\\"ci\\\\\\\" \\\\\\\"revert\\\\\\\" \\\\\\\"improv\\\\\\\" \\\\\\\"break\\\\\\\")\\\\n\\\\tlocal expl && _description -V conventional-commit expl 'Conventional Commit Keyword'\\\\n\\\\tcompadd \\\\\\\"${expl[@]}\\\\\\\" -P'\\\\\\\"' -S':' -- \\\\\\\"${cc[@]}\\\\\\\"\\\\n}\\\\ncompdef _gc gc\\\\ncompdef _gc gC\\\\n\\\\n#âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ\\\\n# SMART AMEND & FIXUP\\\\n# select a recent commit to fixup *and* autosquash (not marked for next rebase!)\\\\nfunction gf {\\\\n\\\\tlocal target\\\\n\\\\ttarget=$(_gitlog --no-graph -n 15 | fzf --ansi --no-sort --no-info | cut -d\\\\\\\" \\\\\\\" -f1)\\\\n\\\\t[[ -z \\\\\\\"$target\\\\\\\" ]] && return 0\\\\n\\\\n\\\\t_stageAllIfNoStagedChanges\\\\n\\\\tgit commit --fixup=\\\\\\\"$target\\\\\\\"\\\\n\\\\n\\\\t# HACK \\\\\\\":\\\\\\\" is no-op-editor https://www.reddit.com/r/git/comments/uzh2no/what_is_the_utility_of_noninteractive_rebase/\\\\n\\\\tgit -c sequence.editor=: rebase --interactive --autosquash \\\\\\\"$target^\\\\\\\" || return 0\\\\n\\\\n\\\\t_separator && _gitlog \\\\\\\"$target\\\\\\\"~2.. # confirm result\\\\n}\\\\n\\\\n# amend-no-edit\\\\nfunction gm {\\\\n\\\\t_stageAllIfNoStagedChanges\\\\n\\\\tgit commit --amend --no-edit\\\\n\\\\techo\\\\n\\\\tgit status\\\\n}\\\\n\\\\n# amend message only\\\\nfunction gM {\\\\n\\\\tif ! git diff --staged --quiet; then\\\\n\\\\t\\\\tprint \\\\\\\"\\\\\\\\e[1;33mStaged changes found.\\\\\\\\e[0m\\\\\\\"\\\\n\\\\t\\\\treturn 1\\\\n\\\\tfi\\\\n\\\\tgit commit --amend --no-verify\\\\n\\\\tgit status\\\\n}\\\\n\\\\n#âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ\\\\n\\\\n# undo shallow clones\\\\nfunction unshallow {\\\\n\\\\tgit fetch --unshallow\\\\n\\\\tgit pull --tags # undo --no-tags\\\\n\\\\t# undo `--single-branch` https://stackoverflow.com/a/17937889/22114136\\\\n\\\\tgit config remote.origin.fetch \\\\\\\"+refs/heads/*:refs/remotes/origin/*\\\\\\\"\\\\n\\\\tgit fetch origin\\\\n}\\\\n\\\\nfunction remote_info {\\\\n\\\\tgit branch --all --verbose --verbose # 2x verbose shows tracked remote branches\\\\n\\\\techo\\\\n\\\\tgit remote --verbose\\\\n\\\\tprintf \\\\\\\"\\\\\\\\e[1;34mgh default repo:\\\\\\\\e[0m \\\\\\\" && gh repo set-default --view\\\\n}\\\\n\\\\n# Github Url: open & copy url\\\\nfunction gu {\\\\n\\\\turl=$(git remote -v | head -n1 | cut -f2 | cut -d' ' -f1 |\\\\n\\\\t\\\\tsed -e 's/:/\\\\\\\\//' -e 's/git@/https:\\\\\\\\/\\\\\\\\//' -e 's/\\\\\\\\.git//')\\\\n\\\\techo \\\\\\\"$url\\\\\\\" | pbcopy\\\\n\\\\topen \\\\\\\"$url\\\\\\\"\\\\n}\\\\n\\\\n#âââââââââââââââââââââââââââââââââââââ"
[ERROR][2024-03-03 12:04:09] .../vim/lsp/rpc.lua:734 "rpc" "/Users/chrisgrieser/.local/share/nvim/mason/bin/typos-lsp" "stderr" "ââââââââââââââââââââââââââââââââââââââââââ\\\\n# GIT LOG\\\\n# uses `_gitlog` from magic-dashboard.zsh\\\\n\\\\nfunction gl {\\\\n\\\\tif [[ -z \\\\\\\"$1\\\\\\\" ]]; then\\\\n\\\\t\\\\t_gitlog --max-count=15\\\\n\\\\telif [[ \\\\\\\"$1\\\\\\\" =~ ^[0-9]+$ ]]; then\\\\n\\\\t\\\\t_gitlog --max-count=\\\\\\\"$1\\\\\\\"\\\\n\\\\telse\\\\n\\\\t\\\\t_gitlog \\\\\\\"$@\\\\\\\"\\\\n\\\\tfi\\\\n}\\\\n\\\\n# interactive\\\\nfunction gli {\\\\n\\\\tif [[ ! -x \\\\\\\"$(command -v fzf)\\\\\\\" ]]; then print \\\\\\\"\\\\\\\\e[1;33mfzf not installed.\\\\\\\\e[0m\\\\\\\" && return 1; fi\\\\n\\\\tif [[ ! -x \\\\\\\"$(command -v delta)\\\\\\\" ]]; then print \\\\\\\"\\\\\\\\e[1;33mdelta not installed (\\\\\\\\`brew install git-delta\\\\\\\\`)\\\\\\\\e[0m\\\\\\\" && return 1; fi\\\\n\\\\n\\\\tlocal hash key_pressed selected style\\\\n\\\\tlocal preview_format=\\\\\\\"%C(yellow)%h %C(red)%D %n%C(blue)%an %C(green)(%ch)%C(reset) %n%n%C(bold)%C(magenta)%s %C(cyan)%n%b%C(reset)\\\\\\\"\\\\n\\\\tstyle=$(defaults read -g AppleInterfaceStyle &>/dev/null && echo --dark || echo --light)\\\\n\\\\n\\\\tselected=$(\\\\n\\\\t\\\\t_gitlog --no-graph --color=always |\\\\n\\\\t\\\\t\\\\tfzf --ansi --no-sort --track \\\\\\\\\\\\n\\\\t\\\\t\\\\t\\\\t--header-first --header=\\\\\\\"âµ : Checkout    ^H: Copy Hash    ^R: Rebase\\\\\\\" \\\\\\\\\\\\n\\\\t\\\\t\\\\t\\\\t--expect=\\\\\\\"ctrl-h,ctrl-r\\\\\\\" --with-nth=2.. --preview-window=55% \\\\\\\\\\\\n\\\\t\\\\t\\\\t\\\\t--preview=\\\\\\\"git show {1} --stat=,30,30 --color=always --format='$preview_format' | sed '\\\\\\\\$d' ; git diff {1}^! | delta $style --hunk-header-decoration-style='blue ol' --file-style=omit\\\\\\\" \\\\\\\\\\\\n\\\\t\\\\t\\\\t\\\\t--height=\\\\\\\"100%\\\\\\\" #required for wezterm's pane:is_alt_screen_active()\\\\n\\\\t)\\\\n\\\\t[[ -z \\\\\\\"$selected\\\\\\\" ]] && return 0 # abort\\\\n\\\\n\\\\tkey_pressed=$(echo \\\\\\\"$selected\\\\\\\" | head -n1)\\\\n\\\\thash=$(echo \\\\\\\"$selected\\\\\\\" | sed '1d' | cut -d' ' -f1)\\\\n\\\\n\\\\tif [[ \\\\\\\"$key_pressed\\\\\\\" == \\\\\\\"ctrl-h\\\\\\\" ]]; then\\\\n\\\\t\\\\techo -n \\\\\\\"$hash\\\\\\\" | pbcopy\\\\n\\\\t\\\\tprint \\\\\\\"\\\\\\\\e[1;33m$hash\\\\\\\\e[0m copied.\\\\\\\"\\\\n\\\\telif [[ \\\\\\\"$key_pressed\\\\\\\" == \\\\\\\"ctrl-r\\\\\\\" ]]; then\\\\n\\\\t\\\\tgit rebase -i \\\\\\\"$hash^\\\\\\\"\\\\n\\\\t\\\\t_separator && _gitlog \\\\\\\"$hash^..HEAD\\\\\\\" # confirm result\\\\n\\\\telse\\\\n\\\\t\\\\tgit checkout \\\\\\\"$hash\\\\\\\"\\\\n\\\\tfi\\\\n}\\\\n\\\\n#âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ\\\\n\\\\nfunction clone {\\\\n\\\\turl=\\\\\\\"$1\\\\\\\"\\\\n\\\\t# turn http into SSH remotes\\\\n\\\\t[[ \\\\\\\"$url\\\\\\\" =~ http ]] && url=\\\\\\\"$(echo \\\\\\\"$1\\\\\\\" | sed -E 's/https?:\\\\\\\\/\\\\\\\\/github.com\\\\\\\\//git@github.com:/').git\\\\\\\"\\\\n\\\\n\\\\t# WARN depth < 2 ensures that amending a shallow commit does not result in a\\\\n\\\\t# new commit without parent, effectively destroying git history (!!)\\\\n\\\\tgit clone --depth=10 \\\\\\\"$url\\\\\\\" --no-single-branch --no-tags # get branches, but not tags\\\\n\\\\n\\\\tcd \\\\\\\"$(command ls -1 -t | head -n1)\\\\\\\" || return 1\\\\n}\\\\n\\\\nfunction delete_forks_with_no_open_prs {\\\\n\\\\tif [[ ! -x \\\\\\\"$(command -v fzf)\\\\\\\" ]]; then print \\\\\\\"\\\\\\\\e[1;33mfzf not installed.\\\\\\\\e[0m\\\\\\\" && return 1; fi\\\\n\\\\tif [[ ! -x \\\\\\\"$(command -v gh)\\\\\\\" ]]; then print \\\\\\\"\\\\\\\\e[1;33mgh not installed.\\\\\\\\e[0m\\\\\\\" && return 1; fi\\\\n\\\\n\\\\tlocal my_prs my_forks\\\\n\\\\tmy_prs=$(gh search prs --author=\\\\\\\"@me\\\\\\\" --state=open --json=\\\\\\\"repository\\\\\\\" --jq=\\\\\\\".[].repository.name\\\\\\\")\\\\n\\\\tmy_forks=$(gh repo list --fork | cut -f1)\\\\n\\\\twhile read -r pr; do\\\\n\\\\t\\\\tmy_forks=$(echo \\\\\\\"$my_forks\\\\\\\" | grep -v \\\\\\\"$pr\\\\\\\")\\\\n\\\\tdone <<<\\\\\\\"$my_prs\\\\\\\"\\\\n\\\\n\\\\tforks_with_no_prs=\\\\\\\"$my_forks\\\\\\\"\\\\n\\\\t[[ -z \\\\\\\"$forks_with_no_prs\\\\\\\" ]] && print \\\\\\\"\\\\\\\\e[1;33mNo forks to delete.\\\\\\\\e[0m\\\\\\\" && return 0\\\\n\\\\t# shellcheck disable=2001\\\\n\\\\tprint -z \\\\\\\"$(echo \\\\\\\"$forks_with_no_prs\\\\\\\" | sed 's/^/gh repo delete /')\\\\\\\"\\\\n}\\\\n#âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ\\\\n\\\\n# pickaxe entire repo history\\\\nfunction pickaxe {\\\\n\\\\t[[ -z $1 ]] && print \\\\\\\"\\\\\\\\e[1;33mNo search query provided.\\\\\\\\e[0m\\\\\\\" && return 1\\\\n\\\\techo \\\\\\\"Reminder: Mostly, these are deletion commits. Thus, the checkout target should usually be the parent commit:\\\\\\\"\\\\n\\\\tprint \\\\\\\"\\\\\\\\e[1;36mgit checkout {hash}^\\\\\\\\e[0m\\\\\\\"\\\\n\\\\techo\\\\n\\\\n\\\\t_gitlog -G\\\\\\\"$1\\\\\\\" --regexp-ignore-case --follow\\\\n}\\\\n\\\\n# search for [g]it [d]eleted [f]ile\\\\nfunction gdf {\\\\n\\\\t# GUARD\\\\n\\\\tif ! command -v fzf &>/dev/null; then echo \\\\\\\"fzf not installed.\\\\\\\" && return 1; fi\\\\n\\\\tif ! command -v bat &>/dev/null; then echo \\\\\\\"bat not installed.\\\\\\\" && return 1; fi\\\\n\\\\t[[ -z $1 ]] && print \\\\\\\"\\\\\\\\e[1;33mNo search query provided.\\\\\\\\e[0m\\\\\\\" && return 1\\\\n\\\\tbuiltin cd -q \\\\\\\"$(git rev-parse --show-toplevel)\\\\\\\" || return 1\\\\n\\\\n\\\\tlocal deleted_path deletion_commit last_commit\\\\n\\\\tdeleted_path=$(git log --diff-filter=D --name-only --format=\\\\\\\"\\\\\\\" | grep -i \\\\\\\"$*\\\\\\\")\\\\n\\\\n\\\\tif [[ -z \\\\\\\"$deleted_path\\\\\\\" ]]; then\\\\n\\\\t\\\\tprint \\\\\\\"\\\\\\\\e[1;31m No deleted file found with \\\\\\\\e[1;33m$*\\\\\\\\\\\\\\\\e[0m\\\\\\\"\\\\n\\\\t\\\\treturn 1\\\\n\\\\telif [[ $(echo \\\\\\\"$deleted_path\\\\\\\" | wc -l) -gt 1 ]]; then\\\\n\\\\t\\\\tprint \\\\\\\"\\\\\\\\e[1;34m Multiple files found.\\\\\\\\e[0m\\\\\\\"\\\\n\\\\t\\\\tselection=$(echo \\\\\\\"$deleted_path\\\\\\\" | fzf --height=60%)\\\\n\\\\t\\\\t[[ -z \\\\\\\"$selection\\\\\\\" ]] && return 0\\\\n\\\\t\\\\tdeleted_path=\\\\\\\"$selection\\\\\\\"\\\\n\\\\tfi\\\\n\\\\n\\\\t# alternative method: `git rev-list --max-count=1 HEAD -- \\\\\\\"path/to/file\\\\\\\"`\\\\n\\\\tdeletion_commit=$(git log --format='%h' --max-count=1 -- \\\\\\\"$deleted_path\\\\\\\")\\\\n\\\\tlast_commit=$(git rev-parse --short \\\\\\\"$deletion_commit^\\\\\\\")\\\\n\\\\tprint \\\\\\\"\\\\\\\\e[1;33m$last_commit\\\\\\\\e[0m $deleted_path\\\\\\\"\\\\n\\\\techo\\\\n\\\\n\\\\t# decision on how to act on file\\\\n\\\\tchoices=\\\\\\\"restore file\\\\ncopy to clipboard\\\\nshow file (bat)\\\\ncheckout commit\\\\\\\"\\\\n\\\\tdecision=$(echo \\\\\\\"$choices\\\\\\\" |\\\\n\\\\t\\\\tfzf --bind=\\\\\\\"j:down,k:up\\\\\\\" --no-sort --no-info --height=\\\\\\\"6\\\\\\\" \\\\\\\\\\\\n\\\\t\\\\t\\\\t--layout=reverse-list --header=\\\\\\\"j:â  k:â\\\\\\\")\\\\n\\\\n\\\\tif [[ -z \\\\\\\"$decision\\\\\\\" ]]; then\\\\n\\\\t\\\\techo \\\\\\\"Aborted.\\\\\\\"\\\\n\\\\telif [[ \\\\\\\"$decision\\\\\\\" =~ checkout ]]; then\\\\n\\\\t\\\\tgit checkout \\\\\\\"$last_commit\\\\\\\"\\\\n\\\\telif [[ \\\\\\\"$decision\\\\\\\" =~ restore ]]; then\\\\n\\\\t\\\\tgit checkout \\\\\\\"$last_commit\\\\\\\" -- \\\\\\\"$deleted_path\\\\\\\"\\\\n\\\\t\\\\techo \\\\\\\"File restored.\\\\\\\"\\\\n\\\\t\\\\topen -R \\\\\\\"$deleted_path\\\\\\\" # reveal in macOS Finder\\\\n\\\\telif [[ \\\\\\\"$decision\\\\\\\" =~ copy ]]; then\\\\n\\\\t\\\\tgit show \\\\\\\"$last_commit:$deleted_path\\\\\\\" | pbcopy\\\\n\\\\t\\\\techo \\\\\\\"Content copied.\\\\\\\"\\\\n\\\\telif [[ \\\\\\\"$decision\\\\\\\" =~ show ]]; then\\\\n\\\\t\\\\text=${deleted_path##*.}\\\\n\\\\t\\\\tgit show \\\\\\\"$last_commit:$deleted_path\\\\\\\" | bat --language=\\\\\\\"$ext\\\\\\\" ||\\\\n\\\\t\\\\t\\\\tgit show \\\\\\\"$last_commit:$deleted_path\\\\\\\" | bat # unknown extension\\\\n\\\\tfi\\\\n}\\\\n\\\"}}\"\n2024-03-03T11:04:09.934448Z DEBUG typos_lsp::lsp: check_text: path /Users/chrisgrieser/.config/zsh/config/git_github.zsh\n"


feat(backend): remove payment pointer from url, retrieve it from request query or body

Changes proposed in this pull request

Removes the payment pointer from the path of subresource and collection requests on wallet addresses.
Retrieves the wallet address from the query params if it is a GET request or from the request body if it is a POST request on a subresource/collection.

Context

Fixes #1939.
Checklist

[X] Related issues linked using fixes #number
[ ] Tests added/updated
[ ] Documentation added
[ ] Make sure that all checks pass
[ ] Postman collection updated

Some usages of paymentPointer snuck back in when reintroducing those lost commits (noticed on my branch as well):
https://github.com/interledger/rafiki/blob/646d1dc8ac0e7aa72046718afc30f06d4f422280/packages/backend/src/open_payments/payment/incoming/routes.test.ts#L297-L329
https://github.com/interledger/rafiki/blob/646d1dc8ac0e7aa72046718afc30f06d4f422280/packages/backend/src/open_payments/payment/incoming/routes.ts#L84
https://github.com/interledger/rafiki/blob/646d1dc8ac0e7aa72046718afc30f06d4f422280/packages/backend/src/open_payments/wallet_address/middleware.ts#L24
https://github.com/interledger/rafiki/blob/646d1dc8ac0e7aa72046718afc30f06d4f422280/postman/collections/Interledger.json#L1653-L1655


Multiline paste

Multiline paste
Pasting new lines as part of the yanked text is currently not supported by the tui-textarea widget. Since pasting text from the clipboard sets and pastes yanked text, the above adds a limitation that is removed with this workaround.
Description
This workaround adds each line from the clipboard separately. The disadvantage of this is, that each newly inserted line is a separate entry in the history and therefor a separate undo step.
List here your changes

Do not set and paste yanked text, but rather call insert_str() and insert_newline() separately.

Type of change
Please select relevant options.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist

[x] My code follows the contribution guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings
[x] I formatted the code with cargo fmt
[x] I checked my code using cargo clippy and reports no warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have introduced no new C-bindings
[x] The changes I've made are Windows, MacOS, UNIX, Linux compatible (or I've handled them using cfg target_os)
[x] I increased or maintained the code coverage for the project, compared to the previous commit

Thanks, good job


Add missing regenerator and runtime babel transform pkgs to package.json

app/react/src/server/config/babel.js uses require.resolve on both of
these packages, yet as they are not in the dependencies, they won't be
found unless they are installed alongside storybook itself
Issue: fix #1729
What I did
I added the missing packages to package.json
How to test
See https://github.com/valscion/storybook-repro-1729/tree/master for the broken case. Run npm install with<EMAIL_ADDRESS>version to force an error from these missing dependencies.
Note that this is not a specific issue for<EMAIL_ADDRESS>— it could happen also should newer npm versions  not install these packages at root level for one reason or another.
A fixed case with this change is here: https://github.com/valscion/storybook-repro-1729/tree/fix-repro

Now, as I was working on the reproduction repository, I also noticed that a similar issue can be found with babel-runtime: https://github.com/valscion/storybook-repro-1729/commit/ce32cac9fbf912f52085cced6a7a2e08ed444ce2
I'm not really sure how we could test for these missing dependencies in CI, given this monorepo architecture 😕 . If anyone has any ideas on how that could work, I could try to work on a proof of concept. These subtle dependency errors are very nasty, and due to how yarn & npm@3 and forwards lifts all dependencies to the top level, they aren't easily discoverable either 😰

Please do the same for app-vue
As for babel-runtime, looks like we should have it as peerDependency, because after the transform, the code from client app package will require it. We should also adjust CLI templates in that case. I think it should be done in a separate PR though, as it deserves further discussion

Please do the same for app-vue (app-react-native happens to have those deps already)

Done! ☺

As for babel-runtime, looks like we should have it as peerDependency, because after the transform, the code from client app package will require it. We should also adjust CLI templates in that case. I think it should be done in a separate PR though, as it deserves further discussion

Mmm yeah, another PR sounds reasonable. I don't think I'll be working on that, as it does sound a controversial change and I'm afraid I don't have enough insight information to lead that discussion in a fruitful fashion.

Awesome @valscion thank you !!

Could this change be added to the 3.3.0-alpha.0 version?

@glrodasz, if you didn't notice, this change was shipped as part of v3.2.10

I'm getting this error on 4.0.4, is it something that has been missed in the transition from 3 to 4, or am I experiencing something new and exciting?
It's happening for me in an Nx workspace with @angular/cli 7.
Error: Cannot find module '@babel/plugin-transform-runtime' from '\\SysProf\AppData$\redacted\AppData\Roaming\npm-cache\_npx\9860\node_modules\@storybook\cli'     at Function.module.exports [as sync] (\\SysProf\AppData$\redacted\AppData\Roaming\npm-cache\_npx\9860\node_modules\@storybook\cli\node_modules\resolve\lib\sync.js:43:15)     at resolveStandardizedName (\\SysProf\AppData$\redacted\AppData\Roaming\npm-cache\_npx\9860\node_modules\@storybook\cli\node_modules\@babel\core\lib\config\files\plugins.js:101:31)     at resolvePlugin (\\SysProf\AppData$\redacted\AppData\Roaming\npm-cache\_npx\9860\node_modules\@storybook\cli\node_modules\@babel\core\lib\config\files\plugins.js:54:10)     at loadPlugin (\\SysProf\AppData$\redacted\AppData\Roaming\npm-cache\_npx\9860\node_modules\@storybook\cli\node_modules\@babel\core\lib\config\files\plugins.js:62:20)     at createDescriptor (\\SysProf\AppData$\redacted\AppData\Roaming\npm-cache\_npx\9860\node_modules\@storybook\cli\node_modules\@babel\core\lib\config\config-descriptors.js:154:9)     at items.map (\\SysProf\AppData$\redacted\AppData\Roaming\npm-cache\_npx\9860\node_modules\@storybook\cli\node_modules\@babel\core\lib\config\config-descriptors.js:109:50)     at Array.map (<anonymous>)     at createDescriptors (\\SysProf\AppData$\redacted\AppData\Roaming\npm-cache\_npx\9860\node_modules\@storybook\cli\node_modules\@babel\core\lib\config\config-descriptors.js:109:29)     at createPluginDescriptors (\\SysProf\AppData$\redacted\AppData\Roaming\npm-cache\_npx\9860\node_modules\@storybook\cli\node_modules\@babel\core\lib\config\config-descriptors.js:105:10)     at plugins (\\SysProf\AppData$\redacted\AppData\Roaming\npm-cache\_npx\9860\node_modules\@storybook\cli\node_modules\@babel\core\lib\config\config-descriptors.js:40:19)

@StevenFewster can you create a new issue for your case?


Remove nginx-ovh and nginx-gke from ingress module

Since both nginx-ovh and nginx-gke are just simple patches of simple nginx, we will handle both of them as patches when needed.

Fixed by #76


Update README.md

Describe the PR
Adding instructions to finish the steps in Getting started section before How to use it with Gin It is easy for anybody to miss out that section which causes unwanted failures in the Swagger UI
Relation issue
https://github.com/swaggo/swag/issues/1019

@saurabhchatterjee23 Thanks for your contribution.


Can we start using Github discussions?

It's a simple toggle for the repo, in Settings > General. It would help to keep actual issues separate from future ideas / discussions.

I think it is important to turn on any tools that will generate and help discussions about sails.js
And maybe even make moderators and give out prizes for contributing.

My repo based on Sails is the main inspiration for the idea. It has been a very handy tool, suggested by someone that was using my repo. I can categorize things that are great "first issues" with the repo, have polls, Q & A... There's a lot that would really help the Sails community regain a bit more cohesion. Right now, I feel like I'm struggling to keep the conversation going.
https://github.com/neonexus/sails-react-bootstrap-webpack/discussions

Why would @sailsbot remove the "what do you think?" label? That's really counter-productive.


Position Control Module Initialization Cleanup

Test data / coverage
SITL jMAVsim testing on my machine.
Describe problem solved by the proposed pull request
There is some basic refactoring in the position controller I wanted to do for a long time now. The goal is to make it all more readable and modular and less error prone.
Additional context
A big chunk of work was introduced with https://github.com/PX4/Firmware/pull/9731 but the whole project is not finished and not all goals are achieved yet. I'll follow up with more cleanups.

I limit my changes to this state to keep the pr clean and readable and shorten the merge time. I will follow up with further cleanup.

Thanks a lot to NuttX defining pollfd different from POSIX:
https://github.com/PX4/NuttX/blob/166d898c70141d7ddb179b5ead1c5ea726574411/include/poll.h#L108-L115
https://github.com/PX4/Firmware/blob/master/src/platforms/px4_posix.h#L90-L94
Manpage on poll(2):
struct pollfd {
    int   fd;         /* file descriptor */
    short events;     /* requested events */
    short revents;    /* returned events */
};

Rebased to run CI on the latest upstream fixes.
@RomanBapst Would you mind to rereview?

@dagar blocking?

@bkueng Could you please take a review pass at this?


feat: Make Platform Type Generic

What is it?

[x] Feature / enhancement
[ ] Bug
[ ] Docs / tests

Description
The current type of the Platform field is hardcoded to Record<string, any>.
In order to ease middleware implementations for the platform field and improve types for users, this PR adds a generic to the Request object which falls back to unknown, and types the platform field to that generic.
Also, I have added a second generic to the RequestHandler type, to allow typing of the request.
This allows for some flexibility in how we can move forward with implementations.

User casts the platform field.

export const onGet: RequestHandler<SomeData> = ({ platform }) => {
 const { specific_platform_function } = platform as NetlifyContext;
 //...
}

User types the platform field.

export const onGet: RequestHandler<SomeData, NetlifyContext> = ({ platform }) => {
 const { specific_platform_function } = platform;
 //...
}

Middleware exposes custom RequestHandler

import { type NetlifyRequestHandler } from "...";

export const onGet: NetlifyRequestHandler<SomeData> = ({ platform }) => {
 const { specific_platform_function } = platform;
 //...
}

And I'm sure even more.
On the downside, this changes the public API. However, because this generic has a fallback, and because no one is using the platform field at the moment anyway, I don't forsee this as breaking anything for anyone.
Changes were discussed with @youngboy in regards to issues he was having with #1527
Checklist:

[x] My code follows the developer guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] Added new tests to cover the fix / functionality

Thanks


Support for joining and leaving channels

@dagit this feature and some others are more cases where a notion of "mode" would be really helpful so we can dispatch on different event handlers and different draw functions, so if you were to implement that for completions it would get used in other ways.  E.g.:
data Mode = Completion | JoinChannel | InviteToChannel | ...

(And then embed one of those in the ChatState)

I just added /leave in https://github.com/aisamanra/matterhorn/commit/93548c66e95efec38f403c3a909a21fbd88b5be7.


storage: skip the lock and rollback record in scan_latest_user_keys

What is changed and how it works?

Issue Number: Close #15219.
What's Changed:

Skip the `WriteType:Lock` and `WriteType::Rollback` record in `scan_latest_user_keys`.

Check List
Tests

Unit test
Integration test

Release note
None.

After revisiting the code, it seems to me that "latest user key scanning" is just for finding keys that existed before flashback version. flashback_to_version_write() is the function that finds the desired versions and rewrite them. So, feels like, in addition to this change, we also need to change this line let old_write = reader.get_write(&key, flashback_version, None)?;, instead of getting the Write record regardlessly, we probably also have to get either Write::Delete or Write::Put there.

After revisiting the code, it seems to me that "latest user key scanning" is just for finding keys that existed before flashback version. flashback_to_version_write() is the function that finds the desired versions and rewrite them. So, feels like, in addition to this change, we also need to change this line let old_write = reader.get_write(&key, flashback_version, None)?;, instead of getting the Write record regardlessly, we probably also have to get either Write::Delete or Write::Put there.

get_write has already handled this case, it will only return Write::Delete and Write::Put records. You can check the internal implementation of it.

After revisiting the code, it seems to me that "latest user key scanning" is just for finding keys that existed before flashback version. flashback_to_version_write() is the function that finds the desired versions and rewrite them. So, feels like, in addition to this change, we also need to change this line let old_write = reader.get_write(&key, flashback_version, None)?;, instead of getting the Write record regardlessly, we probably also have to get either Write::Delete or Write::Put there.

This is based on my understanding about "flashback", i.e. it should be like reading with an old timestamp (stale read).

/merge

/test


Handle Service Bindings in SM client and get Service Instances in API

#442

/test pull-btp-manager-build


Make LARS observable.

Remove getters/setters from LARS;
Make LARS observable;
Add a meta example for the observable version;
Add get_long_int to the meta language (aka get<int64_t>());

any ideas why this PR does not trigger the CI? :/ @vigsterkr @karlnapf

Sometimes the CI gets confused, so you need to trigger it again. At least that is what has happened to me before

Sometimes the CI gets confused, so you need to trigger it again. At least that is what has happened to me before

LoL I'll try to make it start then

@karlnapf  If there are no more comments I'll merge this later today (the Python error will be fixed by #4626).


ZEPPELIN-1432. Support cancellation of paragraph execution

What is this PR for?
Livy 0.3 support cancel operation, this PR is to support cancel in livy interpreter. First we would check the livy version, then based on the livy version, we would call the livy rest api to cancel the statement.
What type of PR is it?
Improvement | Feature ]
Todos

[ ] - Task

What is the Jira issue?

https://issues.apache.org/jira/browse/ZEPPELIN-1432

How should this be tested?
Tested manually, because cancel is only avaible in livy 0.3 which is not released yet.
Screenshots (if appropriate)

Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

CI failure is not relevant.
@prabhjyotsingh @felixcheung Please help review.

looks good except for a few comments.
is it possible to add tests for these changes?

cancel is only available in livy 0.3 which is not released yet, so no test for it. I can add that after livy 0.3 is released.

ping @felixcheung @prabhjyotsingh CI failure is not relevant.

minor question. LGTM.

could you trigger CI again?

I trigger the CI, but the last CI failure is not relevant. Because this PR only modify livy interpreter, other failure should be flaky test. Unfortunately we seems to have more and more flaky test :(

ping @felixcheung

Sure CI failure looks it is not relevant to this. LGTM!

that's odd
WelcomePageSuite:
- Welcome sign is correct *** FAILED ***
  The code passed to eventually never returned normally. Attempted 16 times over 20.46449854 seconds. Last failure message: WelcomePageSuite.this.find("welcome")(WelcomePageSuite.this.driver).isDefined was false. (WelcomePageSuite.scala:31)
Zeppelin stop [  OK  ]
Run completed in 37 seconds, 499 milliseconds.
Total number of tests run: 1
Suites: completed 3, aborted 0
Tests: succeeded 0, failed 1, canceled 0, ignored 0, pending 0
*** 1 TEST FAILED ***
[ERROR] Failed to execute goal org.scalatest:scalatest-maven-plugin:1.0:test (test) on project zeppelin-server: There are test failures -> [Help 1]
[ERROR]
[31mException encountered when invoking run on a nested suite - The code passed to eventually never returned normally. Attempted 16 times over 20.170745813 seconds. Last failure message: AbstractFunctionalSuite.this.find("welcome")(AbstractFunctionalSuite.this.webDriver).isDefined was false. *** ABORTED ***
  Exception encountered when invoking run on a nested suite - The code passed to eventually never returned normally. Attempted 16 times over 20.170745813 seconds. Last failure message: AbstractFunctionalSuite.this.find("welcome")(AbstractFunctionalSuite.this.webDriver).isDefined was false. (AbstractFunctionalSuite.scala:44)
Run completed in 33 seconds, 483 milliseconds.
Total number of tests run: 0
Suites: completed 1, aborted 1

That's flaky test, I several times of WelcomePageSuite in CI failure.


Request for wiki description

As stated in #60 .
May I change - Register and download "NVIDIA Deep Learning SDK" into - Register and download "NVIDIA CUDA Deep Neural Network library (cuDNN)" (See https://developer.nvidia.com/cudnn)`
I found no "edit" button for the wiki so I can make a new issue instead.

oh, it seems that we could not add ope access right for wiki ( is it wiki? )
OK i ll add the sentence . thanks

@taizan if you want to open up the PaintsChainer wiki for others to edit you should find it under the repo settings: https://github.com/pfnet/PaintsChainer/settings

Sorry I couldnt find the setting... is there any how to page ?

It's the option shown here: https://imgur.com/a/RZ45H

oh I missed it
OK I think now you can edit wiki

Thanks a lot! Closing the issue.


Create functionality for forgotten passwords and initial password delivery via email

password via email reset/initial set now fully implemented


add excludeCI=false param to XCMetrics /build/filter request

Hey, I just made a Pull Request!
XCMetrics now requires excludeCI parameter to the /build/filter endpoint. This PR adds excludeCI: false to the payload.

This fixes 400 responses from XCMetrics, seen in https://github.com/backstage/backstage/issues/22511. The issue is confirmed https://github.com/spotify/XCMetrics/issues/106 as well.
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[x] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

@tudi2d Thank you for coordinating. I'll wait for someone with write access to merge in.

@tudi2d would you be able to hit merge?


Posting to non-General channel

Are there any plans to update the app or is it possible for us to customize the app to allow posting to non-General channels?

@priyank29 Is it supported, if the end user application is installed in non-general channel?

@shridharp-ms No, this is not supported by the app. Note that in general, apps are installed to teams, not to individual channels (setting aside private channels.)

@monovex At this point, we don't have plans to add the ability to post to a channel other than General. You can add this functionality, which will require a UX change to add a way to pick the channel, and save that to the data store. Then the send function will need changes to recognize this new option and support sending the message to a channel.
The mechanics of sending a message to a specific channel ID is the same as when sending it to the General channel, except that the conversation (channel) ID is different. So the bulk of the work will likely be in the author app.


Add make target to check for project paths existence

Add make target to check if the project path exists before triggering the release make target.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/cherrypick release-0.7


file system corruption in the SD CARD

when trying to re-upload the samples(new samples), the file system crashes and the SD CARD no longer works.

What do you mean by "re-download"? can you describe in detail the steps you're doing?

Upload samples to SD-Card
Upload to picotraker
Used samples
Off pikotracker
Upload new samples
Corrupt file system

When trying to format the SD card, I get the following errors

Is it possible you have a bad SD card? the SD card is not mounted as you would in an OS, but read or written to with each operation as needed.
The only write operations that happen are when saving a project, so it's very unlikely that the mere act of loading samples may corrupt the SD card.

3 new SD-Card Sun Disk 16gb corrupted on file system.
I formatted on terminal, But the problem won't go away.
Two of my friends who have collected have the same problem.

@RAWJUNGLE I just saw your other issue, so I thought I'd better first check which version of the picoTracker you are using? The "desktop" build or the "portable" using the custom PCB?

The problem is at the code level, it doesn't depend on the hardware in any way. I built on a breadboard and got these problems. Both with file count and file system problem. I checked this on 3 sd cards and several of my friends checked on their schematics, both breadboard and PCB. They have the same thing.
When you first load the samples, everything works fine, but when you want to load again, you get a file system problem on the sd card.

@RAWJUNGLE I did some quick tests with my desktop build picotracker which uses a standard RPI pico board using a brand new San Disk Ultra 32GB sdcard to see if I could replicate the issues you reported.
First off I was able to copy across large numbers of sample files, you can see the listing here:
filelist.txt
onto the sdcard in the samplelib folder as well as a few samples from the lgpt "10k" demo
and then do the following steps:

create a new picotracker project on device
open the folders with the samples
listen to one of the 10k samples (bassdrum.wav) and import it into the project
save the project
turn off picotracker
put the sdcard back into usb sdcard reader attached to my laptop (running ubuntu 22.04) and successfully read the sdcard on the laptop
copy more samples from laptop onto the sdcard
put the card back into picotracker, listen to and then import another sample into the project
put the card back into laptop reader and browse and read files on sdcard with no issues

So I can't replicate any issue with sdcard filesystem corruption with the above tests.
BUT I did come across several bugs:

listening and then importing even a tiny sample causes all further playback in the project to be corrupted
trying to list a directory with over a hundred files in it on the picotracker first takes a very long time 10-15 just to go into the directory listing after pressing A to go into it. And then the listing is truncated for me after about 30 entries (sorry I was in hurry and didn't note down exactly how many) with a F char being displayed on the last 2 lines  instead of the actual file names.
the second time around importing a sample actually killed all audio playback. Picotracker still went into playback mode (ie going into the project page to click save song would give an error message of not during playback but no sound was produced and the playback marker > were not being drawn on the song or phrase columns.

All of the above were fixed with a restart. At least 2 of the above are already tracked in #6 so I'll update there with my findings.
So tl;dr there definitely are issues with browsing directories with large numbers of sample files as well as issues importing samples, but I couldn't so far see any evidence of filesystem corruption.
@democloid One thing to note though, is that on importing samples lgpt and hence picotracker does also write the sample file into the projects samples sub directory, so I guess at least in theory that could somehow corrupt the filesystem if invalid data was first read during the sample import process, but thats only a guess as I can't reproduce the symptoms in the original report here.

Format your SD card, Fat32 format, upload this folder via a link to the root of your SD card. And try working with LGPT, then disable LGPT, and add more sounds to the samplelib directory.
https://dropmefiles.com/nXI8v

@RAWJUNGLE sure I'm happy to test it out, but you have set a password on the zip file that is inside the outer zip file.

@maks when you download it, you're shown the password 123

@RAWJUNGLE You seem to be having this problem trying to read back this SD card on the computer. Do you see the same corruption issues or any errors if you subsequently keep using the SD card in picoTracker?

I can't reproduce this. I noticed some samples have spaces in the filename and thought that might be a problem but it's not. Also using OSX and SD card can be read perfectly well after loading samples into project and saving the project.
Any specific samples you're using? Please tell us one specific sample that causes this. Please try to provide a minimal case that causes this, if it happens after loading a single sample, then which one it is? Is it happening to any samples being used?

@democloid Pay attention to the posts above, I uploaded the sample pack I use to a file-sharing site. The password for the archive is 123.

Of course I read the posts. The sample pack has lots of samples, loaded some random ones and couldn't repro. So asking if it happens with specific samples and to provide the name of one with which it does.

@democloid

Format sd to fat32
Upload samplelib to sd
Create new project
Upload samples to tracks
Listen more samples in browser.
Play patterns
Save project
Off lgpt
Insert sd card to computer
Upload new samples or folders

@democloid

@democloid upload to new sd card sandisk 32gb. The problem with the broken file system is gone. But there are still problems with large number of files in the browser and pre-listening.

@RAWJUNGLE Thanks for continuing to test and update us with your findings.
It sounds like it was a faulty sdcard and the second 32GB  is working for you without filesystem corruption.
In regards to what you see in the photos with the file listing being cut off for directories with many files and then showing just "F" on each line after some limit is reached (on my test dir its 26 files), I can confirm I see exactly the same thing as I mentioned in my previous comment above. Interestingly though, I have a top level directory with 65 sub directories (not files in the top level dir) and all 65 subdirs are displayed correctly.
I also can confirm that audio playback does get corrupted when using listen button from the sample file browser, but as you saw that is already being tracked in #6. So I think lets keep the focus of this issue now on the bug of listing files in directories which have more than

@maks sd 16gb works fine on m8, raspberry pi 4, micro dexed touch, and smartphone.
I don't know what the problem is.

@RAWJUNGLE Sorry to keep asking more questions, I'm just trying to better understand what you are seeing...
So that 16gb card can be read/written fine on all those other devices after you save a picotracker project on it but it can't be read on your Mac?
Or do you mean that after reformatting it, it works fine on all devices until you use it to save a project with the picotracker?

@maks Above I described the steps that should cause the problem.
Download the samplelib. And do the steps.
Check it out.

@RAWJUNGLE I tried again, using some specific samples that I see in the screenshots and following the steps you provided but still cannot repro. May have to do with the specific SD card for some reason.

@democloid There is also a problem with the display of files @maks He confirmed above.
I figured out the file system, just changed the sd card.

Ok a quick check of adding:
#define MAX_FILE_COUNT 24
  int count = 0;
  FsBaseFile entry;
  while (entry.openNext(&dir, O_READ) && count < MAX_FILE_COUNT) {

in picoTrackerFileSystem.cpp prevents the F chars and no display when scrolling past 25 files I was seeing, so it seems that it is a memory corruption issue due to too large usage mem usage, because going into a dir causes the above function to create a List object of Path entries for every file in that directory.
Unfortunately the first thing that comes to mind to fix this: changing to paging through a dirs filelist with the page size being limited to the 15 max lines that can be displayed at a time doesn't look easy to do the way ImportSampleDialog::setCurrentFolder is structured at the moment, especially as the code in there also does a alphabetic sort of the file listing :-(
Another memory saving alternative would be to maybe have a subclass of FilePath that just holds an int index of some kind to each file and then only creates the filename string on demand.
In any case, this is not a hard fix, but it is a labour intensive one that will need a fair bit of code refactoring unless some one cna think of a clear hack to get around this large ram usage when listing directories of sample files.

Storing a sorted list of file indexes would not occupy much memory and sorting the indexes could probably be done by reading the file name from the filesystem for each operation without much impact, but need to test. It does require some laborious refactor, agreed.
Ultimately tho, hard limits need to be set. A linked list is probably not the best solution in this case, so maybe those list objects should be replaced by some other fixed memory size data struct, in order to be able to statically define it and avoid dynamic allocations.

@democloid @maks Let's create a chat in Telegram, so that it would be more convenient and faster to communicate directly! Something like a chat of testers.

awesome thanks for setting up the server @democloid !
In regards to this issue I wanted to propose:

Put in a quick fix straight away, basically I would do I PR with my code above plus add a "fake" File entry in the 26th spot of "[FILE LIMIT REACHED]" and add to existing docs/MANUAL.md clearly stating the 25 files per dir limit.
Work on larger task of refactoring the sample browser and filesystem adapter to use much less ram for browsing larger sample directories

That's a perfectly reasonable short term solution IMO, go for it