Skip to content

chore(deps-dev): Bump vite from 7.3.1 to 8.0.3#8

Merged
quiet-node merged 2 commits intomainfrom
dependabot/npm_and_yarn/vite-8.0.3
Mar 31, 2026
Merged

chore(deps-dev): Bump vite from 7.3.1 to 8.0.3#8
quiet-node merged 2 commits intomainfrom
dependabot/npm_and_yarn/vite-8.0.3

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Mar 31, 2026

Bumps vite from 7.3.1 to 8.0.3.

Release notes

Sourced from vite's releases.

create-vite@8.0.3

Please refer to CHANGELOG.md for details.

v8.0.3

Please refer to CHANGELOG.md for details.

create-vite@8.0.2

Please refer to CHANGELOG.md for details.

v8.0.2

Please refer to CHANGELOG.md for details.

create-vite@8.0.1

Please refer to CHANGELOG.md for details.

v8.0.1

Please refer to CHANGELOG.md for details.

plugin-legacy@8.0.1

Please refer to CHANGELOG.md for details.

create-vite@8.0.0

Please refer to CHANGELOG.md for details.

plugin-legacy@8.0.0

Please refer to CHANGELOG.md for details.

v8.0.0

Please refer to CHANGELOG.md for details.

v8.0.0-beta.18

Please refer to CHANGELOG.md for details.

v8.0.0-beta.17

Please refer to CHANGELOG.md for details.

v8.0.0-beta.16

Please refer to CHANGELOG.md for details.

v8.0.0-beta.15

Please refer to CHANGELOG.md for details.

v8.0.0-beta.14

Please refer to CHANGELOG.md for details.

v8.0.0-beta.13

Please refer to CHANGELOG.md for details.

v8.0.0-beta.12

Please refer to CHANGELOG.md for details.

... (truncated)

Changelog

Sourced from vite's changelog.

8.0.3 (2026-03-26)

Features

Bug Fixes

  • html: cache unfiltered CSS list to prevent missing styles across entries (#22017) (5464190)
  • module-runner: handle non-ascii characters in base64 sourcemaps (#21985) (77c95bf)
  • module-runner: skip re-import if the runner is closed (#22020) (ee2c2cd)
  • optimizer: scan is not resolving sub path import if used in a glob import (#22018) (ddfe20d)
  • ssr: ssrTransform incorrectly rewrites meta identifier inside import.meta when a binding named meta exists (#22019) (cff5f0c)

Miscellaneous Chores

Tests

8.0.2 (2026-03-23)

Features

Bug Fixes

Miscellaneous Chores

  • deps: update dependency @​vitejs/devtools to ^0.1.5 (#21992) (b2dd65b)

8.0.1 (2026-03-19)

Features

Bug Fixes

  • bundled-dev: properly disable inlineConst optimization (#21865) (6d97142)
  • css: lightningcss minify failed when build.target: 'es6' (#21933) (5fcce46)
  • deps: update all non-major dependencies (#21878) (6dbbd7f)
  • dev: always use ESM Oxc runtime (#21829) (d323ed7)
  • dev: handle concurrent restarts in _createServer (#21810) (40bc729)
  • handle + symbol in package subpath exports during dep optimization (#21886) (86db93d)
  • improve no-cors request block error (#21902) (5ba688b)
  • use precise regexes for transform filter to avoid backtracking (#21800) (dbe41bd)
  • worker: require(json) result should not be wrapped (#21847) (0672fd2)

... (truncated)

Commits
  • f83264f refactor(build): rename indexOfMatchInSlice to findPreloadMarker (#21054)
  • 8293de0 release: v7.2.0
  • 2833c55 fix(types): add undefined to optional properties for exactOptionalProperties ...
  • e3a6a83 chore(deps): update rolldown-related dependencies (#21047)
  • b1fd616 fix(css): fallback to sass when sass-embedded platform binary is missing (#21...
  • ad5b3bf fix(module-runner): make getBuiltins response JSON serializable (#21029)
  • 793baa2 release: v7.2.0-beta.1
  • e5af352 fix(optimizer): externalize virtual modules for html like files (#21001)
  • 4f44f22 fix: increase stream reset rate limit for HTTP2 (#21024)
  • a2df778 refactor: use fs.cpSync (#21019)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.3.1 to 8.0.3.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@8.0.3/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 8.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Mar 31, 2026
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@quiet-node quiet-node force-pushed the dependabot/npm_and_yarn/vite-8.0.3 branch from 234a330 to 2006c68 Compare March 31, 2026 20:44
@quiet-node quiet-node merged commit 8fdf6c2 into main Mar 31, 2026
3 of 6 checks passed
@quiet-node quiet-node deleted the dependabot/npm_and_yarn/vite-8.0.3 branch March 31, 2026 20:51
quiet-node added a commit that referenced this pull request Apr 10, 2026
* chore(deps-dev): Bump vite from 7.3.1 to 8.0.3

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.3.1 to 8.0.3.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@8.0.3/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 8.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: update bun.lock for vite 8.0.3

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Logan Nguyen <lg.131.dev@gmail.com>
quiet-node added a commit that referenced this pull request Apr 10, 2026
* chore(deps-dev): Bump vite from 7.3.1 to 8.0.3

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.3.1 to 8.0.3.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@8.0.3/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 8.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: update bun.lock for vite 8.0.3


---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Logan Nguyen <lg.131.dev@gmail.com>
quiet-node added a commit that referenced this pull request Apr 11, 2026
* chore(deps-dev): Bump vite from 7.3.1 to 8.0.3

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.3.1 to 8.0.3.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@8.0.3/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 8.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: update bun.lock for vite 8.0.3

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Logan Nguyen <lg.131.dev@gmail.com>
quiet-node added a commit that referenced this pull request Apr 25, 2026
* feat(config): scaffold typed TOML config module

Add src-tauri/src/config/ with AppConfig, ModelSection, PromptSection,
WindowSection, ActivationSection, QuoteSection. Loader reads a TOML file,
resolves empty fields to compiled defaults, clamps out-of-bounds numerics,
and composes the system-prompt slash-command appendix at load time so the
appendix is never round-tripped to disk. Writer does an atomic fsync + rename
with mode 0600. First-run seed failures surface SeedFailed; corrupt files
or unsupported schema versions are renamed and reseeded. No consumers migrated
yet; the existing SystemPrompt / ModelConfig state remains in parallel.

Depends-on design doc and eng review already in the worktree history.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* feat(config): load AppConfig at startup and expose get_config command

Wire crate::config::load into lib.rs setup so AppConfig is resolved from the
per-user config.toml (or seeded on first run) before any Tauri command runs.
Fatal seed failures surface a native macOS alert via osascript and exit the
process, avoiding a dependency on tauri-plugin-dialog for a code path that
only runs when the user's Application Support directory is unwritable.

Add the get_config command returning a Clone of the resolved AppConfig;
the frontend hydrates its ConfigContext from this call on mount.

The existing SystemPrompt and ModelConfig state remain managed in parallel
so consumers keep working. The next commit migrates them to read from
State<AppConfig> directly.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* refactor(backend): migrate consumers to State<AppConfig>

Delete the parallel SystemPrompt, ModelConfig, load_system_prompt,
load_model_config, compose_system_prompt* helpers and the DEFAULT_OLLAMA_URL /
DEFAULT_MODEL_NAME consts. Everything now flows through config::AppConfig:

- commands::ask_ollama reads config.prompt.resolved_system, config.model.active(),
  and config.model.ollama_url.
- search::search_pipeline reads the same fields.
- history::generate_title reads the same fields.
- classify_http_error now takes the active model name so the ModelNotFound
  hint ("Run: ollama pull <name>") is accurate regardless of the user's
  override, matching the per-model error messaging we promised in the design
  doc's Issue 3A.

Test fallout: delete the ENV_LOCK static plus 7 load_model_config_* env-mutating
tests, 3 load_system_prompt_* env-mutating tests, and 2 compose_system_prompt
tests (11 total). Their semantic assertions now live in src/config/tests.rs
expressed as TOML input fixtures (resolve_whitespace_only_entries_are_filtered,
resolve_entry_whitespace_is_trimmed, resolve_empty_ollama_url_falls_back,
resolve_empty_system_prompt_uses_built_in_base_plus_appendix, and so on).
Net coverage result: 100% lines on every touched file.

lib.rs no longer manages SystemPrompt or ModelConfig state. The get_model_config
Tauri command is unregistered; get_config is now the sole model/prompt accessor
and returns the full AppConfig to the frontend.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* refactor(frontend): route config through ConfigContext, drop model fallback

Introduce src/contexts/ConfigContext.tsx with ConfigProvider + useConfig hook.
ConfigProvider hydrates once from invoke('get_config'), transforms the Rust
snake_case AppConfig into camelCase, and blocks children render until loaded
(sub-10ms local IPC in practice). useConfig falls back to DEFAULT_CONFIG when
no provider wraps the caller, which keeps component tests from needing a
provider wrapper each time. main.tsx wraps <App /> in ConfigProvider.

Frontend consumers now read from useConfig:
- App.tsx sources quote display limits from config.quote; DEFAULT_MODEL_FALLBACK
  literal and the stale invoke('get_model_config') bootstrap effect are deleted.
- AskBarView and ChatBubble also read quote via useConfig instead of the old
  Vite env reader in src/config/index.ts, which is deleted along with its
  test file.

Drop the model parameter from save(). Per the design doc's Codex #4 resolution,
the Rust save_conversation command reads the active model from State<AppConfig>
instead of accepting it from the frontend, so the hook signature no longer
forwards it and every save() call site drops the fallback literal.

Fix the preexisting image-count mismatch flagged by Codex #8: MAX_IMAGES
moves from 3 to 4 to match the backend MAX_IMAGES_PER_MESSAGE constant; all
associated copy ("Max 4 images", "Maximum 4 images attached") and test
fixtures (4-image arrays, 4 paste loops) are updated.

All 33 test files pass 727 tests; 100% coverage maintained across lines,
branches, functions, and statements.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* chore(config): delete .env + dotenvy and rewrite configuration docs

Delete .env.example and the dotenvy dependency. Remove dotenvy::dotenv().ok()
from lib.rs run(). Thuki now reads all runtime config from config.toml only.

Rewrite docs/configurations.md around the TOML schema, first-run seeding
behavior, corrupt-file recovery, numeric bounds, and the three-tier rationale
(user-configurable vs developer-tunable vs true constants).

Update README.md and CONTRIBUTING.md so the "change model" instructions point
at config.toml instead of the deleted THUKI_SUPPORTED_AI_MODELS env var, and
the contributor setup drops the `cp .env.example .env` step entirely.

Update project CLAUDE.md architecture section to describe src-tauri/src/config/
as the single source of runtime configuration, and correct the activator.rs
note so it reflects reality: activation timing is a compiled const, not yet
exposed through AppConfig because the CGEventTap callback runs on a thread
that cannot trivially read Tauri managed state.

Scope honesty: remove the [activation] section from config.toml entirely.
Having the section without any consumer (activator still reads ACTIVATION_WINDOW
and ACTIVATION_COOLDOWN from its own const) would let users edit values that
do nothing, which is worse than "this knob doesn't exist yet". The section
can be re-introduced in the future settings-panel PR alongside the plumbing
needed to get the values into the event-tap thread.

All 33 frontend test files pass 720 tests; backend cargo test passes 419 tests;
100% line coverage on both sides; validate-build completes with zero warnings.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* fix(review): atomic write tmpfile cleanup, exhaustive-deps, max-images count

atomic_write now removes its .tmp-<pid>-<nanos> staging file when the
rename step fails (cross-device, permission drift, non-empty directory).
Without the cleanup, failed writes accumulate orphan tmpfiles in the
app-support directory. Test added: atomic_write_cleans_up_tmpfile_on_rename_failure.

quote.maxContextLength added to two useCallback dependency arrays in
App.tsx that read it but omitted it, silencing the exhaustive-deps rule.

Max-images limit corrected from 4 to 3 throughout App.test.tsx and
AskBarView.test.tsx to match the value already enforced by the component.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* feat(config): add [search] section to TOML config

Promotes nine previously compiled-in search/pipeline constants to
user-configurable values in config.toml under a new [search] section.

Configurable fields:
  searxng_url, reader_url         -- service endpoints
  max_iterations, top_k_urls     -- pipeline quality/latency knobs
  search_timeout_s, reader_per_url_timeout_s, reader_batch_timeout_s,
  judge_timeout_s, router_timeout_s  -- per-service timeouts

Users who remap Docker ports, run SearXNG on a custom host, or use slow
hardware can now change these without a rebuild. A missing [search]
section falls back to the same compiled-in defaults as before, so
existing configs get zero behavior change.

Validation in loader.rs: empty URLs reset to defaults, numeric fields
clamp to sane bounds, and reader_batch_timeout_s is corrected if it
would be <= reader_per_url_timeout_s.

The SearchRuntimeConfig struct is constructed at pipeline entry from
AppConfig.search and threaded through run_agentic, searxng::search,
ReaderClient, and the DefaultRouterJudge/DefaultJudge callers.
Tests use SearchRuntimeConfig::default() which delegates to the
compiled constants, including the 1-second READER_BATCH_TIMEOUT_S in
test builds, so all existing test behavior is preserved.

Stays compiled-in (no TOML field): GAP_QUERIES_PER_ROUND (output cap,
not a prompt instruction), CHUNK_TOKEN_SIZE, TOP_K_CHUNKS (quality
knobs with non-obvious interactions), and all retry-delay constants
(circuit-breaker internals with no industry precedent to expose).

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* refactor(search): collapse pipeline constants into config::defaults

Establish src-tauri/src/config/defaults.rs as the single source of
truth for the agentic /search pipeline's runtime configuration.

- Delete the duplicate constants in search/config.rs that mirrored
  defaults.rs (MAX_ITERATIONS, TOP_K_URLS, the five timeouts, and the
  two service URLs); SearchRuntimeConfig::Default now reads from
  config::defaults so the file and binary cannot drift.
- Add SearchRuntimeConfig::from_app_config(&AppConfig) and use it from
  search_pipeline in place of an inline 9-field struct literal.
- Drop dead constants and the test-only Default ctors that hid
  parallel hardcoded URLs (SEARXNG_BASE_URL/ENDPOINT/TIMEOUT,
  ReaderClient::new and Default).
- Test builds keep a 1 s reader_batch_timeout_s via the explicit
  TEST_READER_BATCH_TIMEOUT_S override so BatchTimeout paths stay
  cheap to exercise.
- Document the [search] TOML section in docs/configurations.md with
  defaults, bounds, and an SSRF-safety note about loopback URLs.

Refresh stale identifier names in module-level comments to match the
runtime field names (max_iterations, reader_batch_timeout_s, etc.).

All gates green: clippy -D warnings, prettier, tsc, frontend + Rust
release builds, 433 backend + 721 frontend tests, backend coverage
gate exits 0 with touched files at 100%.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* refactor(config): centralize all pipeline constants into config::defaults

Moves the four live pipeline-internal constants (GAP_QUERIES_PER_ROUND,
CHUNK_TOKEN_SIZE, TOP_K_CHUNKS, READER_RETRY_DELAY_MS) from
search/config.rs into config/defaults.rs under DEFAULT_* names, making
config::defaults the single source of truth for every numeric default in
the codebase.

Also removes LLM_RETRY_DELAY_MS and SEARCH_RETRY_DELAY_MS which were
dead constants: defined in search/config.rs but never referenced outside
their own sanity-bound test.

search/config.rs is now adapter-only: SearchRuntimeConfig struct,
from_app_config, searxng_endpoint, and the test-only
TEST_READER_BATCH_TIMEOUT_S override. No raw constant definitions remain.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* refactor(config): remove schema_version field

No version field is needed for additive schema evolution. serde's
#[serde(default)] on every section struct already handles missing
fields transparently: an older config file parses cleanly and unknown
fields are ignored, so user customizations survive any additive change
without a version check.

The version field provided no migration code; it only triggered
rename-and-reseed on any mismatch, silently wiping user customizations
whenever a future schema bump occurred.

Removes: CURRENT_SCHEMA_VERSION constant, validate_schema_version fn,
ConfigError::TooNew and ConfigError::NoMigrationYet variants, and all
associated tests and documentation.

AppConfig::Default is now derivable (clippy); replace manual impl with
#[derive(Default)].

Fixes pre-existing rustfmt violations in search/pipeline.rs and
search/reader.rs.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* docs(config): unify reference tables across all config domains

Rewrite docs/configurations.md so every domain shows one table listing
all constants (tunable + baked-in) with explicit columns for
Default, Tunable?, Why not tunable, Bounds, and Description. Adds
previously undocumented [activation], [vision], and [history] domains
and inlines the pipeline-internal search constants
(GAP_QUERIES_PER_ROUND, CHUNK_TOKEN_SIZE, TOP_K_CHUNKS,
DEFAULT_READER_RETRY_DELAY_MS) alongside their tunable siblings.
Replaces the separate "What is NOT configurable" section with
per-row justifications so users can see the full picture in one place.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* feat(config): expose searxng_max_results, centralize search constants

Promote the per-query SearXNG result cap (previously hardcoded
MAX_RESULTS=10 in search/searxng.rs) to a tunable [search] field
searxng_max_results, bounded [1, 20] and clamped by the loader.
Threaded through SearchRuntimeConfig and both pipeline call sites.

Move MAX_SNIPPET_CHARS and MAX_QUERY_CHARS to config::defaults as
DEFAULT_MAX_SNIPPET_CHARS / DEFAULT_MAX_QUERY_CHARS so defaults.rs
remains the single source of truth for every constant. Both stay
baked-in (defense-in-depth bounds against external/attacker-
controlled data) but live under one module instead of duplicated
across search/searxng.rs.

Update docs/configurations.md to add the new tunable row, the two
baked rows for snippet/query char caps, and the example TOML.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* docs(config): inline trade-off guidance + document config system in CLAUDE.md

In docs/configurations.md, append a "Raise for X; lower for Y" sentence
to every numeric tunable in the [search] table so users see the
direction of each knob's quality-vs-latency trade-off without leaving
the row. One-directional knobs (timeouts) say so explicitly: lowering
them only causes premature failures.

Add a "Configuration System" section to the worktree's CLAUDE.md
describing the single-source-of-truth rule (defaults.rs), the
schema/loader/writer layering, the subsystem RuntimeConfig projection
pattern, and a concrete checklist for adding new tunable or baked-in
constants. This unblocks future work that touches configuration
without forcing the next contributor to reverse-engineer the system.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* docs(config): rewrite descriptions for non-technical readers

Every domain section in docs/configurations.md now opens with a
plain-language intro, and every Description cell explains what the
constant actually does in user terms (not pipeline-internal terms).
Specifically: replace "rerank", "synthesis", "agentic gap loop",
"event-tap callback", "downstream prompt", and similar jargon with
phrasings a consumer or new developer can follow at first read.

For numeric tunables in [search], every Description ends with a
"Raise for X; lower for Y" trade-off; one-directional knobs
(timeouts) say so explicitly so users do not waste time lowering
them. Soften the "Reading the reference tables" legend (no more
"clamped"), simplify the bad-input section, and add a missing
intro to [quote]. The baked-row "Why not tunable" cells in [search]
keep their existing wording per the deliberate carve-out for the
"judge" and "synthesize" terms.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* docs(config): refine constant tables for clarity and consistency

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

* docs(config): update descriptions for max_iterations and top_k_urls for clarity

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>

---------

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant