posit-dev / posit-dev/positron

Console duplicates executions and lacks busy indicator during background tasks

Open
#8,282 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: console area: ui bug
Dominant language
TypeScript
Stars
4.3k
Forks
184
Avg merge
1d 11h
Merged PRs (30d)
206

Description

System details:

Positron and OS details:

Positron Version: 2025.07.0 build 170
Code - OSS Version: 1.100.0
Commit: cbe897b1dd265d94ddf90fcbd9661f2a816fdff9
Date: 2025-06-23T03:40:06.483Z
Electron: 34.5.1
Chromium: 132.0.6834.210
Node.js: 20.19.0
V8: 13.2.152.41-electron.0
OS: Darwin arm64 24.5.0

Interpreter details:

Any.

Describe the issue:

When an interpreter is busy with a "background" task (not an execution) such as rendering a plot or viewing a dataframe, the console has no indication, and silently accepts and queues duplicate executions which are added when the interpreter is free.

Steps to reproduce the issue:

  1. Create a complex plot e.g. run this Python code:
import numpy as np
import matplotlib.pyplot as plt

# Generate a large number of random points
n_points = 500000
np.random.seed(42)  # For reproducibility

# Create random coordinates with some structure
x = np.random.normal(0, 1, n_points)
y = x + np.random.normal(0, 0.5, n_points)

# Create scatter plot with small points and some transparency
plt.figure(figsize=(10, 8), dpi=150)
plt.scatter(x, y, 
           s=1,           # Small point size
           alpha=0.1,     # High transparency
           c=np.sqrt(x*x + y*y),  # Color based on distance from origin
           cmap='viridis')

plt.colorbar(label='Distance from origin')
plt.title(f'Scatter Plot with {n_points:,} Points')
plt.xlabel('X')
plt.ylabel('Y')
plt.grid(True, alpha=0.2)

plt.tight_layout()
plt.show()
  1. Try to execute code in the console.

Note that the console goes through a few different phases here, and that execution attempts seem to be handled differently in each.

https://github.com/user-attachments/assets/6a106139-d31e-42fa-8d0c-5167abd83d42

Expected or desired behavior:

The console should show some indication that the interpreter is busy, and attempted executions should be handled similarly to when the console is busy with an execution e.g. import time; time.sleep(10).

Were there any error messages in the UI, Output panel, or Developer Tools console?

No.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file, test, or entry point is named in the issue. Reproduce the provided Python plot and compare console behavior with import time; time.sleep(10); done means the console shows an interpreter busy state and handles attempted executions consistently in both cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
developer-experience, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.