sharjeelyunus/github-issues-dataset huggingface dataset:
Repository: node
Issue: Expose an `id` for concurrent test runners (like `JEST_WORKER_ID`)
Labels: good first issue,feature request,test_runner

### What is the problem this feature will solve?

When running tests concurrently (the default setting in the Node test runner), it's common practice to split concurrent test runs across multiple local resources (like locally running servers, databases, etc).

Many other popular test runners offer this feature via an environment variable:
- **`jest`**: [`JEST_WORKER_ID`](https://jestjs.io/docs/environment-variables#jest_worker_id)
- **`mocha`**: [`MOCHA_WORKER_ID`](https://mochajs.org/#parallel-mode-worker-ids)
- **`vitest`**: [`VITEST_POOL_ID`](https://vitest.dev/guide/migration.html#envs)

This makes it very easy to set up the proper database connection. For example, here's a snippet from my codebase:

```ts
if (process.env.STAGE === "test" && process.env.JEST_WORKER_ID) {
  process.env.DB_DATABASE = `myapp_tests_${process.env.JEST_WORKER_ID}`;
}
```

Then, in my database docker container, I create `n` databases, one for each worker. For example, if I run `jest` with `--maxWorkers 8`, I create `myapp_tests_1` -> `myapp_tests_8`. During tests, the parallel test suites talk to a different database to avoid deadlocks.

### What is the feature you are proposing to solve the problem?

The simplest solution for users coming from other frameworks would be to provide an environment variable just like the other test runners (e.g., `NODE_TEST_WORKER_ID`).

However, if that's not feasible, adding a `workerId` to the `TestContext` could also be a good solution. This solution is not as ideal as the environment variable because people would need to pass the test context to whatever establishes their db/server/etc connection. In my case, at least, this would require refactoring of code. Right now, I rely on that variable being set at file import time.

### What alternatives have you considered?

I considered trying to find a solution based on `pid`, but it's not reliable enough. @RedYetiDev mentioned [in Slack](https://openjs-foundation.slack.com/archives/C06UJ98LY6R/p1731530605970959?thread_ts=1731521632.433829&cid=C06UJ98LY6R) that there might be a solution using `hooks`. I have not dug into this yet.
Repository: pytorch
Issue: Non-actionable error message when output type is not pytree-able for aoti artifact
Labels: oncall: pt2,oncall: export

From user empathy day 11-13-24
### 🐛 Describe the bug

Script to generate aoti artifact:
```
from transformers import T5Tokenizer, T5ForConditionalGeneration
import os

tokenizer = T5Tokenizer.from_pretrained("google-t5/t5-small")
model = T5ForConditionalGeneration.from_pretrained("google-t5/t5-small")

input_ids = tokenizer("The <extra_id_0> walks in <extra_id_1> park", return_tensors="pt").input_ids
labels = tokenizer("<extra_id_0> cute dog <extra_id_1> the <extra_id_2>", return_tensors="pt").input_ids

import torch

exported = torch.export.export(model, (), kwargs={"input_ids": input_ids, "labels": labels}, strict=True)

output_path = torch._inductor.aoti_compile_and_package(
        exported,
        (),
        kwargs={"input_ids": input_ids, "labels": labels},
        package_path=os.path.join(os.getcwd(), "model.pt2"),
    )
```

Script to run the artifact and repro error:
```
import os 
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"
model = torch._inductor.aoti_load_package(os.path.join(os.getcwd(), "model.pt2"))
print(model(torch.randn(8, 10, device=device)))
```

error:
https://gist.github.com/mlazos/b459671d7a481631cc87351f7ac72366

In this case the solution is to import transformers, but also perhaps sharing the registration API for users would be useful here as well if they return their own data structures.

### Versions

e754611d190b323e53c5d17db0dc39a96687513c

cc @ezyang @chauhang @penguinwu @avikchaudhuri @gmagogsfm @zhxchen17 @tugsbayasgalan @angelayi @suo @ydwu4
Repository: vscode
Issue: Add snake_case to transform grammar in snippets
Labels: feature-request,snippets

<!-- ⚠️⚠️ Do Not Delete This! feature_request_template ⚠️⚠️ -->
<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->
<!-- Please search existing issues to avoid creating duplicates. -->

<!-- Describe the feature you'd like. -->

VS Code snippet transform syntax supports converting capture groups to a variety of formats, including lowercase, camelCase, and PascalCase. Support for snake_case would be awesome.

See https://code.visualstudio.com/docs/editor/userdefinedsnippets#_grammar

---

This feature would be helpful when trying to define a snippet that automatically adds a json struct tag to Go fields, for example:
```go
type Person struct {
    FirstName `json:"first_name"`
}
```

This is the snippet definition I'm using right now, though it's buggy:

```json
"property with JSON and YAML": {
	"prefix": "prop",
	"body": [
		"${1:name} ${2:string} `yaml:\"${1/([A-Z]?[a-z]+)([A-Z])/${1:/downcase}_${2:/downcase}/g}\" json:\"${1/([A-Z]?[a-z]+)([A-Z])/${1:/downcase}_${2:/downcase}/g}\"`"
	],
},
```
Repository: godot
Issue: Context menu empty or corrupted when closing with RMB
Labels: bug,needs testing,topic:gui

### Tested versions

4.4 dev4

### System information

Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1060 (NVIDIA; 31.0.15.4633) - Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 Threads)

### Issue description

When you close context menu using right mouse button, it can "open" another menu, which will be empty and may take weird shapes.

https://github.com/user-attachments/assets/e76a69ab-b11b-4ab0-80a9-9ede797141ef



### Steps to reproduce

1. Right-click FileSystem dock to open context menu
2. Right-click the dock again, outside menu, to close it

### Minimal reproduction project (MRP)

N/A
Repository: vscode
Issue: Support fish completions
Labels: feature-request,terminal-suggest

We need to adjust for ghost text, that's why it's not working ATM.

https://github.com/microsoft/vscode/blob/499475f2ff2d07e4bcdfb69eaba2a8c67d3d4f46/extensions/terminal-suggest/src/terminalSuggestMain.ts#L42-L52
Repository: deno
Issue: deno 2 mishandles "@types/" installs for "npm:" packages 
Labels: bug

Version: Deno 2.0.6

Given the following `package.json`:

```json
{
  "name": "foo",
  "devDependencies": {
    "@types/cacache": "^17.0.2"
  },
  "dependencies": {
    "cacache": "^19.0.1"
  }
}
```

and the following file:

```ts
// foo.ts
import * as cacache from 'npm:cacache'
```

After running `deno install`, running `deno check foo.ts` yields the following error:

```
error: Failed resolving types. [ERR_TYPES_NOT_FOUND] Could not find types for 'file:///~/example/node_modules/.deno/cacache@19.0.1/node_modules/cacache/index.js' imported from 'file:///~/example/foo.ts'
    at file:///~/example/foo.ts:1:26

```

Because Cacache sets `"main": "lib/index.js"` in its `package.json`, `node_modules/cacache/index.js` does not exist. Deno _should_ be looking at `node_modules/cacache/lib/index.js` instead.

(TypeScript itself – run with a vanilla config generated by `tsc --init` – is able to process `foo.ts` once the `npm:` prefix is removed.)
Repository: vscode
Issue: [html] False error of inline Javascript in HTML
Labels: bug,html

<!-- ⚠️⚠️ Do Not Delete This! bug_report_template ⚠️⚠️ -->
<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->
<!-- 🕮 Read our guide about submitting issues: https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions -->
<!-- 🔎 Search existing issues to avoid creating duplicates. -->
<!-- 🧪 Test using the latest Insiders build to see if your issue has already been fixed: https://code.visualstudio.com/insiders/ -->
<!-- 💡 Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. -->
<!-- 🔧 Launch with `code --disable-extensions` to check. -->
Does this issue occur when all extensions are disabled?: Yes

<!-- 🪓 If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. -->
<!-- 📣 Issues caused by an extension need to be reported directly to the extension publisher. The 'Help > Report Issue' dialog can assist with this. -->
Version: 1.95.2 (user setup)
Commit: e8653663e8840adaf45af01eab5c627a5af81807
Date: 2024-11-07T11:07:22.054Z
Electron: 32.2.1
ElectronBuildId: 10427718
Chromium: 128.0.6613.186
Node.js: 20.18.0
V8: 12.8.374.38-electron.0
OS: Windows_NT x64 10.0.26100

Steps to Reproduce:
![Image](https://github.com/user-attachments/assets/de428d93-73e9-489c-bd1c-749a165ffed1)

1. you will get a false error `')' expected.` from a working code with a regex starting with `<!--`. 
```HTML
<script>
    let a = "abcdefg";
    a = a.replace(/<!--/g, "");
</script> 
```

Depending on where and how you use these regex, the false error could be
`')' expected.`, `Expression expected.`, and `Argument expression expected.`.
And I believe there are likely to be more of them.
Repository: flutter
Issue: Find a way to profile Java memory use in CI
Labels: tool,c: proposal,perf: memory,team-tool

We have a lot of tests that fail with some form of "Java heap space" error, e.g.
https://github.com/flutter/flutter/issues/157640

We've tried a couple of things,
https://github.com/flutter/flutter/pull/146275
https://github.com/flutter/flutter/pull/143085,
etc, but haven't had much luck.

It will be hard to make progress without more information. We could perhaps try to look at the log dump (the flag I added doesn't print it on failure it seems, but rather saves it to a file), or perhaps look in to a tool to try to evaluate how Java's memory usage is growing between steps (maybe https://github.com/patric-r/jvmtop?) to try to answer:
1. Are there particular steps which cause spikes?
2. Does the memory usage constantly grow over time?
3. Why do some runs fail and others succeed - is the memory usage meaningfully different from one run of the same test to the next?
Repository: flutter
Issue: Autosubmit merged a PR with many failed presubmits
Labels: team-infra,P2,triaged-infra

https://github.com/flutter/flutter/pull/158880/checks

![2024-11-13-14:46-screenshot](https://github.com/user-attachments/assets/1b463925-96f1-4bde-82e1-1446bd021c34)
Repository: ui
Issue: [bug]: `SidebarGroupLabel` `transition-[margin,opa]` should be `transition-[margin,opacity]`
Labels: bug

### Describe the bug

I'm fairly new to TailwindCSS, so I believe this is a bug, but may be wrong.

It seems that `SidebarGroupLabel`'s `className` should use `transition-[margin,opacity]` instead of `transition-[margin,opa]`

`default`:

https://github.com/shadcn-ui/ui/blob/805ed4120a6a8ae6f6e9714cbd776e18eeba92c7/apps/www/registry/default/ui/sidebar.tsx#L431-L449

`new-york`:

https://github.com/shadcn-ui/ui/blob/805ed4120a6a8ae6f6e9714cbd776e18eeba92c7/apps/www/registry/new-york/ui/sidebar.tsx#L431-L449

Docs:

- https://tailwindcss.com/docs/transition-property

### Affected component/components

`SidebarGroupLabel`

### How to reproduce

1. Look at the `classNames`
2. Recognise that the shorthand `opa` isn't valid for a `transition` on `opacity`

### Codesandbox/StackBlitz link

_No response_

### Logs

_No response_

### System Info

```bash
N/A
```


### Before submitting

- [X] I've made research efforts and searched the documentation
- [X] I've searched for existing issues
Repository: rust
Issue: `std::arch::wasm::unreachable()` is stable but does not compile
Labels: A-diagnostics,A-stability,O-wasm,D-papercut,D-imprecise-spans

I tried to build this code with `cargo build --target=wasm32-unknown-unknown`:

```rust
pub fn force_wasm_trap() {
    std::arch::wasm::unreachable();
}
```

I expected to see this happen: compile succeeds, generates a function containing the wasm "unreachable" instruction, which is what [the documentation says it does](https://doc.rust-lang.org/core/arch/wasm/fn.unreachable.html).

Instead, this happened:
```plaintext
error[E0658]: use of unstable library feature 'simd_wasm64'
 --> src/lib.rs:2:5
  |
2 |     std::arch::wasm::unreachable();
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: see issue #90599 <https://github.com/rust-lang/rust/issues/90599> for more information

For more information about this error, try `rustc --explain E0658`.
```

I don't understand what happened: the documentation says this has been stable since rust 1.37.0, and I don't think there's any reason why the webassembly "unreachable" instruction would be tied to the unstable "simd_wasm64" feature.

I also tried with and without `#[no_std]` and using both `core::arch` and `std::arch`: all fail the same way.

### Meta
<!--
If you're using the stable version of the compiler, you should also check if the
bug also exists in the beta or nightly versions.
-->

`rustc --version --verbose`:
```
rustc 1.82.0 (f6e511eec 2024-10-15)
binary: rustc
commit-hash: f6e511eec7342f59a25f7c0534f1dbea00d01b14
commit-date: 2024-10-15
host: x86_64-unknown-linux-gnu
release: 1.82.0
LLVM version: 19.1.1
```

The same error happens with `1.83.0-beta.5` and `nightly-2024-11-12`.
Repository: pytorch
Issue: Get the forward/backward of a Dynamo function
Labels: feature,triaged,oncall: pt2,module: dynamo,module: higher order operators,module: pt2-dispatcher

### 🚀 The feature, motivation and pitch

Pitch: Get the forward/backward of a Dynamo function

We (PyTorch/XLA) would like to get a symbolic graph representation (e.g. FX graph) of the forward and backward pass of a torch function, in order to implement a scan operator similar to `jax.lax.scan`. The forward pass returns the output and intermediate activations. The backward pass takes in intermediate activations and gradients w.r.t the output and returns gradients w.r.t the input. The forward of a `scan(fn, ...)` is built using the forward of `fn`, and the backward of a `scan(fn, ...)` is built using the backward of `fn`.

There are a few ways to get a symbolic representation. Since Dynamo has support for higher order operators such as `torch.utils.checkpoint` [1], we would like to explore getting the forward/backward of a `fn` using Dynamo.

I tried a bunch of ways of getting that information without changing PyTorch, and hit challenges. They are documented in this notebook: [2].

[1]: https://dev-discuss.pytorch.org/t/higher-order-operators-2023-10/1565
[2]: https://colab.research.google.com/drive/1qDGY3xPO5JWFJ3jeUHFMD1AnmksDHOOk?usp=sharing

### Alternatives

An alternative to using Dynamo is to use the symbolic tracing facilities in `functorch`. For example, we could use `functorch.compile.aot_function` to get the forward/backward of a `fn`. In our own testing, that works nicely for simple cases involve pure torch numerical operations, but it either errors or ignores `torch.utils.checkpoint` entirely.

### Additional context

_No response_

cc @chauhang @penguinwu @voznesenskym @EikanWang @jgong5 @Guobing-Chen @XiaobingSuper @zhuhaozhe @blzheng @wenzhe-nrv @jiayisunx @chenyang78 @kadeng @amjames @zou3519 @ydwu4 @bdhirsh @yf225 @ezyang
Repository: vscode
Issue: Allow `fetch` for Data URIs such as WASM on the web
Labels: feature-request,web

<!-- ⚠️⚠️ Do Not Delete This! feature_request_template ⚠️⚠️ -->
<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->
<!-- Please search existing issues to avoid creating duplicates. -->

<!-- Describe the feature you'd like. -->
As a: web developer using VS Code for the Web,
I want to: be able to fetch and use WebAssembly (WASM) modules from Data URIs,
so that: I can pack my WASM (Rust Python etc) code into extensions LSPs and libraries without a `context.extensionUri`

----

This would allow webpack to provide reliable interop between desktop and web WASM. It would also avoid the many (semi-valid) hacks that exist, such as `CopyWebpackPlugin`, bloated Uint8Array babel loaders, and no errors caused by base64 not playing nicely with wasm characters
Repository: godot
Issue: Godot export release doesn't pack enough data from C#
Labels: topic:dotnet,topic:export

### Tested versions

Godot 4.4.dev4.mono

### System information

Ubuntu 24.04

### Issue description



I'm exporting a project using Docker, which invokes Godot through the terminal with the following command:

```bash
godot.4.4.dev4.mono "path-to-my-project.godot" --export-release "Headless" --headless --quit
```

However, when I run the app, it doesn't behave as expected
### Steps to reproduce

**Reproduce via UI:**

1. Open the MRP project and create the export folder.
2. Export the project with the "Export All" -> "Release" option.
   - Alternatively, click "Export Project..." and uncheck the "Export with Debug" option.

**Reproduce via command line:**

Run the following command:

```bash
./Godot_v4.4-dev_mono_linux.x86_64 "/home/ubuntu/GodotProjects/azheir/azheir/project.godot" --headless --export-release Headless --quit
```

### Minimal reproduction project (MRP)
[azheir.zip](https://github.com/user-attachments/files/17776222/azheir.zip)

To verify if the project export was successful, simply run the executable. It should print **Hello world** on startup.
Repository: pytorch
Issue: Identical Formulas for BatchNorm, LayerNorm, InstanceNorm, GroupNorm
Labels: triaged,topic: docs

### 📚 The doc issue

I have noticed that Batch Normalization (BN) and Layer Normalization (LN) are using the same formula in the docs:

- [BatchNorm1d](https://pytorch.org/docs/stable/generated/torch.nn.BatchNorm1d.html) 
- [BatchNorm2d](https://pytorch.org/docs/stable/generated/torch.nn.BatchNorm2d.html)
- [BatchNorm3d](https://pytorch.org/docs/stable/generated/torch.nn.BatchNorm3d.html)
- [SyncBatchNorm](https://pytorch.org/docs/stable/generated/torch.nn.SyncBatchNorm.html)
- [LayerNorm](https://pytorch.org/docs/stable/generated/torch.nn.LayerNorm.html)

$$
y = \frac{x - \mathrm{E}[x]}{\sqrt{\mathrm{Var}[x] + \epsilon}} * \gamma + \beta
$$

What is not represented in the BN formula is that mean and variance are computed over the **mini-batch**.

Also, there are no indices specifying how it operates on individual elements of a vector or tensor.

### Suggest a potential alternative/fix

BN (without indices):

$$
y = \frac{x - \mathrm{E}\_{\text{batch}}[x]}{\sqrt{\mathrm{Var}\_{\text{batch}}[x] + \epsilon}} * \gamma + \beta
$$

As LaTeX code:
```latex
$$
y = \frac{x - \mathrm{E}_{\text{batch}}[x]}{\sqrt{\mathrm{Var}_{\text{batch}}[x] + \epsilon}} * \gamma + \beta
$$
```
Repository: deno
Issue: Markdown --indent-width is ignored
Labels: bug,good first issue,upstream,deno fmt

Version: deno 2.0.6
The default indentation is 2, but it should be possible to change it with --indent-width.

The default 2 correctly complains about a width of 4
![image](https://github.com/user-attachments/assets/cbb83e19-7c9b-4d0a-9bc5-22fae18f15e7)

But when even when I set it to 4, it still complains
![image](https://github.com/user-attachments/assets/318aba51-1748-4882-88ea-9db22f3af113)

If I set it to any other number, it still thinks that the correct width is the default 2
![image](https://github.com/user-attachments/assets/93b8cbc5-da85-4320-85b9-4b3fb5dbd330)
Repository: go
Issue: runtime: 1.23 hangs when running under qemu-user [bisected]
Labels: NeedsInvestigation,compiler/runtime

### Go version

go version go1.23.3 linux/arm64

### Output of `go env` in your module/workspace:

```shell
GO111MODULE=''
GOARCH='arm64'
GOBIN=''
GOCACHE='/root/.cache/go-build'
GOENV='/root/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='arm64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/root/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/root/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/go/pkg/tool/linux_arm64'
GOVCS=''
GOVERSION='go1.23.3'
GODEBUG=''
GOTELEMETRY='local'
GOTELEMETRYDIR='/root/.config/go/telemetry'
GCCGO='gccgo'
GOARM64='v8.0'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/dev/null'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build2732334604=/tmp/go-build -gno-record-gcc-switches'
```


### What did you do?

When I build Go 1.23 with the same version of Go under qemu-user, the build hangs all the way. The issue can be reproduced with a Dockerfile:

```Dockerfile
from quay.io/fedora/fedora:41

RUN dnf install -y @development-tools
RUN curl -O https://go.dev/dl/go1.23.3.src.tar.gz && curl -O https://go.dev/dl/go1.23.3.linux-arm64.tar.gz
RUN tar fx go1.23.3.linux-arm64.tar.gz && mkdir src && tar fx go1.23.3.src.tar.gz  -C src
RUN cd src/go/src/; env PATH=$PATH:/go/bin bash make.bash
```

Steps:
1. Setup qemu-user binfmt for a foreign ISA, for example, installs qemu-user-static-aarch64 on Fedora.
2. Build the Dockerfile for specified arch: `podman build --arch aarch64 .`

Tested on Fedora 40 with `6.9.8-200.fc40.x86_64` and Fedora 41 with `6.11.6-300.fc41.x86_64`.

Tested with qemu-user 9.1.1 of riscv64/loongarch64/aarch64.

### What did you see happen?

The go processes of the build hangs forever:

```
                 │ ├─crun-buildah-buildah663882417.scope
                 │ │ └─container
                 │ │   ├─912459 /usr/bin/qemu-aarch64-static /usr/bin/bash make.bash
                 │ │   ├─914348 /usr/bin/qemu-aarch64-static ./cmd/dist/dist bootstrap -a
                 │ │   ├─914395 /usr/bin/qemu-aarch64-static /go/bin/go install "-tags=math_big_pure_go compiler_bootstrap purego" bootstrap/cmd/...
                 │ │   └─914743 /usr/bin/qemu-aarch64-static /go/bin/go install "-tags=math_big_pure_go compiler_bootstrap purego" bootstrap/cmd/...
```

The issue does not exist with Go 1.22. I did a bisect and found the offending commit https://github.com/golang/go/commit/d068c2cb620c1daeedc8b9cce488af45a6c2c889 .

### What did you expect to see?

Build of Go 1.23 runs through under qemu-user.
Repository: PowerToys
Issue: Display Current Time Placeholder in PowerToys Run
Labels: Needs-Triage

### Description of the new feature / enhancement

I would like to suggest a new feature for PowerToys Run that displays the current time as a placeholder when the search bar is empty. This feature would be particularly useful for users who choose to hide their taskbar and need a quick way to check the current time without additional clicks or interactions. 

Once the user starts typing, the placeholder with the time would disappear, allowing them to use the search functionality as usual. This minor enhancement could improve user experience by providing quick access to the current time directly from PowerToys Run.


### Scenario when this would be used?

This feature would be used primarily by users who prefer a clean desktop interface with the taskbar hidden. It would allow them to check the current time quickly without needing to unhide the taskbar or switch to another application. 

For example, during focused work sessions or presentations where users might hide their taskbar for a cleaner look, having the current time visible in PowerToys Run would provide a convenient and efficient way to stay aware of the time.


### Supporting information

- Many users hide the taskbar to maximize screen real estate or maintain a minimalist desktop setup.
- Implementing a time placeholder in PowerToys Run can enhance productivity by reducing the need to switch contexts just to check the time.
- Similar features can be seen in other productivity tools where contextual information is displayed without disrupting the primary function of the tool.