-
Notifications
You must be signed in to change notification settings - Fork 46.7k
feat: add --no-gui flag and fix win32 console crash #22928
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
AlexFoxD
wants to merge
389
commits into
NousResearch:main
Choose a base branch
from
AlexFoxD:fix/headless-mode-windows
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
389 commits
Select commit
Hold shift + click to select a range
e8dea48
fix(config): warn loudly on YAML parse failure instead of silent defa…
teknium1 61b95d9
docs(security): rewrite policy around OS-level isolation as the boundary
jquesnelle c041d4c
changes from feedback
jquesnelle df2cf76
feat: add stocks & finance skill (Yahoo Finance, no API key)
4f936a9
chore(skills/stocks): relocate to optional-skills/finance/stocks/
teknium1 6396080
chore(skills/stocks): tighten SKILL.md to modern format
teknium1 ae4288f
chore(release): AUTHOR_MAP entry for Mibayy clawhub email
teknium1 74c1316
fix(discord): typing indicator task not cleaned up after API error
0xbyt4 e448fdf
fix(auxiliary): cache 402'd providers as unhealthy with TTL to stop p…
teknium1 854d21b
feat(terminal,cli): docker_extra_args + display.timestamps
Mibayy b5f0676
feat(deps): add hindsight-client as optional dependency (#21818)
alt-glitch 520d413
feat(nix): add extraDependencyGroups for sealed venv extras (#21817)
alt-glitch b4c2c8f
fix(nix): replace chown -R with targeted find in container entrypoint…
alt-glitch cdbccb3
fix(kanban): route gateway create auto-subscribe to explicit board
Frowtek 876e93f
fix(kanban): call kanban_block on iteration-budget exhaustion to prev…
liuhao1024 b209f09
fix(kanban): restore HERMES_KANBAN_BOARD after scoped slash override
Sylw3ster 5ce9d9a
fix(kanban): inject HERMES_HOME into worker subprocess env
TurgutKural 43c7952
fix(send_message): allow kanban workers to call send_message
dmnkhorvath 54c6a99
test(send_message): cover _check_send_message gating paths
dmnkhorvath ea97293
fix(kanban): use localized column label in select-all aria label
smwbev df914be
fix(kanban): treat archived parent tasks as terminal for dependency r…
Ninso112 6b6956c
chore: add salvage contributors to AUTHOR_MAP
kshitijk4poor 9b2f05f
fix: guard resolve_profile_env against missing profile dirs
kshitijk4poor 6e99c9f
chore: remove unused sentinel in test_send_message_tool
kshitijk4poor a37a413
fix(terminal): block sudo -S password guessing when SUDO_PASSWORD is …
3884bbc
fix(approval): catch sudo with stdin/askpass/shell privilege flags
fr33d3m0n 5a0ace3
chore: AUTHOR_MAP entries for sudo-hardening salvage contributors
kshitijk4poor 15a04fc
revert: roll back /goal checklist + /subgoal feature stack (#23813)
teknium1 5b753c0
fix(agent): catch ChatGPT-account Codex data-URL rejection so images …
teknium1 971c1fd
fix: make web UI build output decoding robust on Windows
VinceZcrikl 7b9df6d
chore: AUTHOR_MAP entry for VinceZcrikl noreply (#23647)
teknium1 6e7e4ac
fix(dashboard): fallback to stale dist, retry build, add --skip-build…
ygd58 4e1a474
fix(dashboard): validate dist exists when --skip-build is set
teknium1 baf9e26
rebuild model catalog
rob-maron 5923d92
fix: use TUI modal for slash confirmations
zhengyn0001 a998bf7
fix(cli): defensive _slash_confirm_state access + AUTHOR_MAP
teknium1 4856be0
fix(/model): surface Nous Portal models from remote catalog manifest …
teknium1 e4347a2
chore: ruff auto-fixes — collapsible-else-if, if-stmt-min-max, dict.f…
kshitijk4poor 3bf05d8
fix(cli,tui): align CJK / wide-char markdown tables (#23863)
teknium1 c752750
fix(auxiliary): evict async wrappers on poisoned client (follow-up to…
wuli666 456d7e7
chore(release): add AUTHOR_MAP entry for wuli666
teknium1 b5f43a9
chore: ruff auto-fix PLR6201 — tuple → set in membership tests (#23937)
kshitijk4poor 163220c
feat(prompt-cache): cross-session 1h prefix cache for Claude on Anthr…
teknium1 d378a36
chore: ruff auto-fix C401, C416, C408, PLR1722 (#23940)
kshitijk4poor a4acbd1
feat: expose HERMES_SESSION_ID to agent tools via ContextVar + env (#…
alt-glitch bbd09b2
fix: correct context-length resolution for kimi-k2.6 on Ollama Cloud …
kshitijk4poor 518d2b6
fix(model-metadata): skip OpenRouter for known providers, add kimi/mo…
nicoechaniz a80fb19
chore: add nicoechaniz to AUTHOR_MAP
kshitijk4poor 37a107a
feat(ui-tui): resolve markdown links to readable page titles (#24013)
OutThisLife a8fe20c
refactor(tui): bundle with esbuild, drop runtime node_modules
ethernet8023 72c081e
fix(nix): refresh npm lockfile hashes
github-actions[bot] 2a62d11
refactor(docker): drop manual @hermes/ink build, rely on esbuild bundle
ethernet8023 71ddc24
fix(tui): update comments
ethernet8023 1f21822
fix(tui): don't hardcode /home/bb
ethernet8023 d80f60e
fix(tui): update README
ethernet8023 7eebd99
refactor(tui): simplify TUI build logic, remove stale staleness checks
ethernet8023 32f2e1d
fix(cli): vertical fallback for markdown tables wider than terminal (…
teknium1 40d882d
fix(dashboard): MiniMax 'Login' button launched Claude OAuth (#22832)
ahmedbadr3 26d4627
chore(release): add AUTHOR_MAP entry for ahmedbadr3
teknium1 a4dc106
feat(computer-use): refresh cua-driver on `hermes update` + add `inst…
teknium1 5cb4563
fix(nous): surface Portal-flagged free models in picker even when cur…
teknium1 d582fa7
fix(tui-clipboard): skip native safety net on OSC52-capable terminals…
benbarclay 0f0688f
fix(cache): route Nous Portal Qwen through Portal-Claude cache pathwa…
teknium1 323990d
fix kimi
rob-maron e63b4d1
fix guard
rob-maron eded2e3
remove comments
rob-maron 5fd0f05
fix comment
rob-maron 353a18f
fix(minimax): harden OAuth dashboard and runtime
austinpickett cd5f348
add client marker tag on aux inference requests
rewbs 0326c9f
fix(docs): repair Voice & TTS provider table
23ad185
fix(deps): unbreak [all] install — drop mistralai while PyPI quaranti…
teknium1 2279551
feat(security): supply-chain advisory checker + lazy-install framewor…
teknium1 67e1f19
docs: remove public advisory page (handle community comms separately)…
teknium1 bc404fb
feat(agent): per-turn file-mutation verifier footer (#24498)
teknium1 d274fb8
Use nous portal as model metadata authority (#24502)
rob-maron 3399e4b
fix(install): surface uv install + uv.lock sync errors instead of sil…
teknium1 9870736
union paid recs from nous portal with static list (#24509)
rob-maron 3e44575
fix(cli): parse positional insights days
helix4u 0e53237
fix(dashboard): UI polish — modals, layout, consistency, test fixes
austinpickett 5d8a5af
fix(gateway): detect stale scoped locks via cmdline when start_time i…
pkyanam 90e9c33
test(gateway): patch _pid_exists instead of os.kill for scoped-lock t…
teknium1 4b0e64e
chore(release): map kyanam.preetham@gmail.com → pkyanam
teknium1 a288178
📝 docs(kanban): clarify dependent task gating
BlackishGreen33 f2e4e9e
fix(docs): correct broken internal links to webhooks and mlops skill …
luarss 058aba0
chore(release): add AUTHOR_MAP entry for luarss
teknium1 8434103
fix(gateway): enqueue SSE EOS sentinel on task completion
8819710
fix(install): use `--extra all` not `--all-extras`; drop lazy-covered…
teknium1 6a9ee3a
feat(browser): support externally managed Camofox sessions
db-aeon d22bd46
chore(camofox): document new env vars + AUTHOR_MAP entry
teknium1 d66debc
docs(camofox): expand externally-managed sessions section (#24584)
teknium1 a2c91d6
fix(daytona): migrate legacy-sandbox lookup to cursor-based list() (#…
teknium1 25ab656
feat(lsp): semantic diagnostics from real language servers in write_f…
teknium1 79d53b4
fix(pricing): add deepseek-v4-pro to official docs pricing table
zccyman 7ce1492
chore(release): add AUTHOR_MAP entries for zccyman and Osraka
teknium1 f7574cd
fix(gateway): consult lock record argv when cmdline unreadable in sco…
AhmetArif0 4accfff
chore: AUTHOR_MAP entry for AhmetArif0 (PR #24600)
teknium1 e6d1bd6
feat(gateway): wire clarify tool with inline keyboard buttons on Tele…
teknium1 6a92a13
fix: include arg-taking commands in Telegram menu
ryptotalent 6e1f4b9
chore(release): add AUTHOR_MAP entry for ryptotalent
teknium1 0c48e2e
fix(auxiliary): pass cfg_base_url and cfg_api_key when resolving task…
hookinglau 5e13381
chore(release): add AUTHOR_MAP entry for hookinglau
teknium1 a2528c6
fix(dashboard): skip browser-open on headless Linux to prevent proces…
AllynSheep 33e71a0
chore(release): add AUTHOR_MAP entries for AllynSheep
teknium1 f38f1bd
fix(dashboard): display real config path on Config page
aqilaziz 99b74d2
chore(release): add AUTHOR_MAP entries for aqilaziz
teknium1 b2a41de
fix(dashboard): rescan plugins when cached directory is removed
liuhao1024 2391edd
fix(tui): clear scrollback buffer on startup to prevent tmux scrollba…
laoli-no1 adfd8f5
chore(release): add AUTHOR_MAP entries for laoli-no1
teknium1 d4b75e0
fix(cli): use display-width for response box header label to support CJK
NorethSea 2e43446
chore(release): add AUTHOR_MAP entries for NorethSea
teknium1 e6e9fee
fix(cli): @-file completion crash on Windows when paths aren't cp1252…
JamesX88 8583113
chore(release): add AUTHOR_MAP entries for JamesX88
teknium1 74b9d20
fix(telegram): clear in-progress reaction on cancelled processing (#2…
teknium1 acc9766
fix(lsp): typescript SDK install + tsc-missing skip + shellcheck warn…
teknium1 4291346
docs(gateway): mention Weixin in gateway help and docstrings
wuwuzhijing 4a43a38
fix(ci): install ripgrep in e2e job
wesleysimplicio bae266f
fix(ci): bump e2e job timeout to 15 minutes
wesleysimplicio 9fc84ac
fix(gateway): reduce systemd restart delay
silv-mt-holdings a6dc9e4
fix(send_message): recognize XMPP JIDs as explicit targets
Quarkex 0ecc524
fix(doctor): skip /models health check for providers that don't suppo…
jak983464779 31d0d35
fix(web): add Bearer auth header for Tavily /crawl endpoint
McClean 9f715cf
fix(cron): include whatsapp in _HOME_TARGET_ENV_VARS
dhruv-saxena c25b728
fix(cache): drop ttl=1h on Portal Qwen — Alibaba upstream is 5m-only …
teknium1 21ff33b
fix(retry): use float() for Retry-After header to handle sub-second v…
ryptotalent 0b52412
fix(signal): handle group messages from linked devices in syncMessage…
ms-alan fb16621
fix(voice_mode): detect audio in WSL when sd.query_devices() returns …
RhombusMaximus 57252f4
fix(tui): use TERMINAL_CWD in _session_info for accurate status line …
Dangooy 9b79e10
docs(lsp): document follow-up fixes from #24630 (#24709)
teknium1 5987a83
fix(gateway): add chat_id to hook_ctx for message source tracking
diablozzc c4a3aeb
fix(install): use stash@{0} instead of git rev-parse refs/stash for a…
Jwd-gity 2cacf28
fix(telegram): use thread fallback helper in slash-confirm result send
AhmetArif0 65b426f
fix(prompt_builder): inject tool-use enforcement for GLM models
ALIYILD b2e7893
fix(line): use build_source instead of nonexistent create_source
mizgyo da511ce
fix(wecom): update connection status after WebSocket reconnection
02356abc 351a07e
fix(tools): forward thread_id via metadata in _send_via_adapter live …
AhmetArif0 ae413be
fix(gateway): make WhatsApp npm install timeout configurable
liuhao1024 cc0b6bb
fix(test): use i18n t() for restart drain assertion
alblez 6ac7403
fix(agent): clear stale config context_length on model switch
AgentArcLab f84d5e9
fix: approval DELETE pattern DOTALL flag allows newline bypass
amathxbt 98e663d
fix(cache): kill long-lived prefix layout — system prompt is now byte…
teknium1 2132f2e
feat(nous): unified client=hermes-client-v<version> tag on every Port…
teknium1 da8a224
feat(providers): rename Alibaba Cloud to Qwen Cloud, reorder picker (…
teknium1 b9726d7
fix(docker): chown .venv to hermes so lazy_deps can install platform …
alt-glitch 82afa3c
fix(cli): add 'lsp' to _BUILTIN_SUBCOMMANDS so plugin discovery is sk…
briandevans ebeb3a5
fix: classify landed file mutations with diagnostics
GodsBoy 0f2ba5d
refactor: import FILE_MUTATING_TOOL_NAMES from shared module
kshitijk4poor 9edf3d7
fix(gateway): add lazy_deps.ensure() to slack, matrix, dingtalk, feis…
alt-glitch 92882de
ci(docker): split :latest (releases only) from :main (main HEAD)
ethernet8023 9992b98
fix(cli): repair broken zsh completion generation
ZeterMordio 8349847
test(cli): strengthen zsh completion regression coverage
ZeterMordio 2da1453
refactor(profiles): remove dead generate_bash_completion / generate_z…
teknium1 ae49047
chore(release): map anton.kuenzi@gmail.com -> ZeterMordio
teknium1 b5f17db
fix(security): reduce unnecessary shell=True in subprocess calls
iuyup 0beebe8
chore(release): map iuyup author for PR #6155 salvage
teknium1 149d14f
feat(custom): prompt and persist explicit api_mode for custom providers
littlewwwhite 75bfd14
fix(setup): drop post-setup chat handoff (#25067)
teknium1 8418c1b
fix(tools): refuse skill_view name collisions instead of guessing
teknium1 780ad22
fix(cli): preserve startup banner on terminal resize
vominh1919 eab7c5b
tui: make URLs clickable + hover-highlight in any terminal (#25071)
OutThisLife a4c4b47
fix(gateway): preserve queued follow-up transcript history
vKongv 86fd8d1
test(gateway): make queued follow-up regression generic
vKongv 99b92cd
chore(release): map mgongzai author for PR #25183 salvage
teknium1 c22d63f
feat(video_gen): unified video_generate tool with pluggable provider …
teknium1 2883e64
feat(codex-runtime): optional codex app-server runtime for OpenAI/Cod…
teknium1 8cda32a
feat: add EVM multi-chain skill (8 chains, 14 commands)
5d514f8
feat(skills): merge blockchain/base into blockchain/evm; salvage PR #…
ethernet8023 fb96e93
chore(skills/evm): tighten SKILL.md to modern format
teknium1 7f80643
docs: close in-tree memory plugins to new PRs and codify skill standa…
teknium1 5a64e50
fix(tools-config): write video_gen.provider on Reconfigure tool path …
teknium1 742cea3
perf(tools): cache get_nous_auth_status() and load_env() to fix slow …
teknium1 1d97e03
feat(slack): support !cmd as alternate prefix for slash commands in t…
teknium1 f4174a6
fix(tts): update MiniMax default model to speech-02 and correct API e…
pty819 296b4fe
fix(tts): align MiniMax TTS defaults with current API and add GroupId…
teknium1 714f51b
fix(install): skip browser download when system chromium exists
helix4u 17710f5
fix(gateway): complete lazy-install rebind for slack/feishu/matrix + …
alt-glitch f705ac4
feat(plugins): add thread-local tool whitelist to pre_tool_call gate
WorldWriter 43f991a
fix(memory): hit prefix cache in background review fork
WorldWriter 3794274
chore(release): map WorldWriter for PR #17276 salvage
teknium1 36b0b61
fix(memory): pin session_start + session_id on background review fork
teknium1 3c65bfd
test(memory): cover cache-parity + runtime whitelist on background re…
teknium1 b6a4f21
chore(release): map jake@nousresearch.com and simpolism@gmail.com to …
simpolism 5b37453
feat(dashboard): hide token/cost analytics behind config flag (defaul…
teknium1 8d2a6bb
feat(codex-runtime): skip unavailable plugins during migration (#25437)
teknium1 cbcd38c
refactor(plugins): add apply_yaml_config_fn registry hook
kshitijk4poor f8b6376
fix(discord): keep free-response channels inline
simpolism 8f1d5a7
feat(discord): add thread_require_mention for multi-bot threads
simpolism 0372fd1
chore(release): map jake@nousresearch.com → simpolism
teknium1 a5a8a29
feat(compression): make protect_first_n configurable
simpolism ca3650c
fix(compression): keep default protect_first_n at 3 + align ABC
teknium1 b9b859d
refactor(inventory): extract shared ConfigContext + build_models_payload
kshitijk4poor 148f7ff
refactor(cli): route /model picker through shared inventory module
teknium1 d0c7f83
feat(web): add WebSearchProvider ABC mirroring image_gen template
kshitijk4poor a72018b
feat(web): add web search provider registry mirroring image_gen pattern
kshitijk4poor b3322a6
feat(plugins): add ctx.register_web_search_provider() facade
kshitijk4poor 306c686
feat(web): brave_free plugin (first migration from tools/web_providers/)
kshitijk4poor 12e9d74
feat(web): ddgs plugin (second migration)
kshitijk4poor 618b97b
feat(web): searxng plugin (search-only, third migration)
kshitijk4poor 86c0fd0
refactor(web): dispatch brave-free/ddgs/searxng via web_search_registry
kshitijk4poor 04874b9
feat(tools): mirror image_gen plugin-injection in Web Search picker
kshitijk4poor 4af7dbf
refactor(web): remove legacy in-tree provider modules
kshitijk4poor 3625b9c
fix(plugins): filter resolution by is_available() in web + image_gen …
kshitijk4poor 5e94754
feat(web): extend ABC with supports_crawl and async-extract semantics
kshitijk4poor c59efcc
feat(web): exa plugin — first multi-capability migration (search + ex…
kshitijk4poor 5a8f8ef
feat(web): parallel plugin — first async-extract plugin
kshitijk4poor 6b62719
feat(web): tavily plugin — first three-capability plugin (search + ex…
kshitijk4poor 0993b17
feat(web): firecrawl plugin — largest migration (search + async extra…
kshitijk4poor ec7f6b5
refactor(web): dispatch all three tools through web_search_registry
kshitijk4poor 685c154
fix(web): preserve firecrawl crawl + website-policy gate after migration
kshitijk4poor b4883d2
refactor(web): delete inline vendor helpers, re-export from plugins
kshitijk4poor 6754947
refactor(tools): drop hardcoded web picker rows + skiplist; plugins a…
kshitijk4poor 5a0a6d8
refactor(web): delete legacy tools/web_providers/ directory + migrate…
kshitijk4poor 4c22c40
test(plugins): tests/plugins/web/ — coverage for the 7-plugin migration
kshitijk4poor 63041a9
feat(web): firecrawl plugin natively supports crawl; delete legacy in…
kshitijk4poor 4087809
fix(web): align _LEGACY_PREFERENCE with legacy 7-provider order + doc…
kshitijk4poor d469951
fix(web): preserve top-level error envelope on unconfigured systems
kshitijk4poor ee37119
fix(honcho): respect HOME-anchored default profile fallback
iacker e1ad28f
fix(tests): exercise profile-mode HERMES_HOME for honcho fallback
teknium1 4745597
fix(clipboard): reject non-png clipboard images when png normalizatio…
Dusk1e d349429
fix(clipboard): only read PNG signature bytes, not entire file
teknium1 0353519
feat(goals): /subgoal — user-added criteria appended to active /goal …
teknium1 b343046
fix(cli): harden skin yaml parsing for invalid section types
Dusk1e c00cd20
fix(tests): correct skin engine test API call
teknium1 a830c10
fix: simplify ACP approval bridging
mrshu 89633ae
chore(release): add AUTHOR_MAP entry for mrshu
teknium1 2cd8529
chore(release): add AUTHOR_MAP entries for 25-PR new-contributor batch
teknium1 6fa66b4
docs(user-guide): point tirith link to correct repo
domtriola df9dce5
docs(lsp): replace "git worktree" with "git repository" in LSP docs
freqyfreqy 0f9bb34
fix(agent): add Xiaomi MiMo to reasoning_content echo-back providers
ephron-ren 646f086
fix(discord): handle forwarded messages via message_snapshots
1RB 4177691
fix(auxiliary): skip providers without credentials immediately
AllynSheep 777f356
fix: gateway PID detection fails on Windows (two issues)
Tianyu199509 752b70b
feat(whatsapp): surface quoted reply metadata
kfa-ai d7ca2eb
fix: show context compaction status
raymaylee 51d9bed
fix(gateway): make Feishu ws connect override sync to preserve contex…
pearjelly 64b9ef6
fix: do not inherit api_mode when delegating across providers
fu576 767fa4c
fix(gateway): keep QQBot reconnect loop alive
magic524 0aed501
fix(auxiliary): forward custom_providers to compression model context…
PaTTeeL fb2551b
fix(background-review): silence memory provider teardown output leak
ayushere 9b3531a
feat: add NovitaAI as LLM provider
Alex-yang00 3aabdb8
docs: update NovitaAI description to "90+ models, pay-per-use"
Alex-yang00 68bc36c
test(novita): cache pricing, add provider test coverage, AUTHOR_MAP e…
kshitijk4poor 0713d05
docs: update NovitaAI provider positioning (#25532)
Alex-yang00 85b9565
Revert "chore(update) .gitignore to exclude local environment files"
AlexFoxD 6440846
Potential fix for pull request finding
AlexFoxD d325142
Remove '-y' flag from parser options
AlexFoxD cc841f3
Remove custom provider mappings from auxiliary_client
AlexFoxD d14d6ff
Change OpenAI alias from 'custom' to 'openrouter'
AlexFoxD 5c9be93
Update package-lock.json
AlexFoxD 81cebb2
Add headless loop and centralized cleanup
AlexFoxD 09c3f8b
Merge branch 'fix/headless-mode-windows' of https://github.com/AlexFo…
AlexFoxD File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -225,6 +225,14 @@ def build_top_level_parser(): | |
| default=False, | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The PR body advertises |
||
| help="With --tui: run TypeScript sources via tsx (skip dist build)", | ||
| ) | ||
| _inherited_flag( | ||
| parser, | ||
| "--no-gui", | ||
| action="store_true", | ||
| default=False, | ||
| help="Run in headless mode for non-graphical/background execution.", | ||
| ) | ||
|
AlexFoxD marked this conversation as resolved.
|
||
|
|
||
|
|
||
| subparsers = parser.add_subparsers(dest="command", help="Command to run") | ||
|
|
||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.