v0.156.1
Release plain 0.156.1
2f1c4ad
·
1d ago
0.13.0 (2026-05-22)
What's changed
- New draggable pill mode for the dev toolbar. On desktop the toolbar now defaults to a floating pill that docks to the full-width bar on click; the items panel is a separate toggle. The pill drags horizontally and snaps to left/center/right positions, so it stays out of the way of whatever you're looking at. Position and snap are pure CSS (
translateX + a data-animate transition); UI state lives in data-* attributes (data-expanded, data-collapsed, data-position, data-items-open) for declarative styling and easy diffing. (ab572e0b32)
- The body element now carries
data-toolbar-fullbar (rather than the old data-toolbar-installed) only while the full bar is visible, so layouts can reserve bottom padding precisely when the bar needs it (pill mode does not).
Upgrade instructions
- If your application templates checked
body[data-toolbar-installed] to add padding around the toolbar, switch to body[data-toolbar-fullbar]. The new attribute reflects "the full bar is currently visible" rather than "the toolbar package is installed," which is the more useful signal now that the toolbar collapses to a pill by default.
0.12.7 (2026-05-12)
What's changed
Template and register_template_extension imports moved to the separate plain.templates package as part of the plain.templates carve-out. The user-visible toolbar API is unchanged. (19b622a7ca)
- Pins
plain>=0.143.0 and plain.templates>=0.1.0.
Upgrade instructions
- No code changes required if you upgrade
plain to 0.143.0 in the same step.
0.12.6 (2026-05-08)
What's changed
- Copy traceback now formats output as a stdlib Python traceback (
Traceback (most recent call last):\n...\n<ExceptionType>: <message>\n) instead of Exception: <message>\n\n<traceback>. The previous shape opened with Exception: which iOS data detectors would treat as a URL scheme and percent-encode the pasteboard, mangling pastes into mobile chat/notes. (20e87701a4)
Upgrade instructions
0.12.5 (2026-05-05)
What's changed
- Exposes
__version__ from importlib.metadata on plain.toolbar for version probes that don't want to scrape pip metadata. (c6cf6edb)
Upgrade instructions
0.12.4 (2026-04-01)
What's changed
- Clicking the active tab button now collapses the panel instead of being a no-op. (704780b5b749)
Upgrade instructions
0.12.3 (2026-03-19)
What's changed
- Selectable version text on desktop — the toolbar version string is now selectable text on desktop (for easy copying), while remaining a tappable toggle on mobile (826e7658fdae)
Upgrade instructions
0.12.2 (2026-03-10)
What's changed
- Adopted PEP 695 type parameter syntax for
register_toolbar_item (aa5b2db6e8ed)
Upgrade instructions
0.12.1 (2026-03-09)
What's changed
- Mobile toolbar now shows a compact floating version pill instead of a full-width bar, with tap-to-expand for toolbar items (0e6a05649e00)
- Fixed exception panel layout breaking with long exception strings by adding word wrapping and preventing the action buttons from shrinking (b7be62ff74ed)
Upgrade instructions
0.12.0 (2026-03-07)
What's changed
- Removed the "URL args" display from the request detail panel since positional URL arguments are no longer supported (6eecc35)
Upgrade instructions
0.11.0 (2026-03-06)
What's changed
- Updated request detail template to access
view_class directly on resolver_match instead of through resolver_match.view.view_class, adapting to the view API changes in plain 0.118.0 (0d0c8a64cb45)
Upgrade instructions
0.10.3 (2026-02-26)
What's changed
- Auto-formatted JavaScript assets and config files with updated linter configuration (028bb95c3ae3)
Upgrade instructions
0.10.2 (2026-02-12)
What's changed
- Added
toolbar/inject.html template for easier toolbar integration from other packages (9db8e0aa5d43)
Upgrade instructions
0.10.1 (2026-02-02)
What's changed
- Replaced inline scrollbar-hiding styles with Tailwind's
scrollbar-none utility class for cleaner markup (25c085ada9c6)
Upgrade instructions
0.10.0 (2026-01-15)
What's changed
- The toolbar now displays on mobile devices instead of being hidden (ee7acaa)
- Panel tabs are horizontally scrollable on mobile for better touch navigation (ee7acaa)
- Panel content area uses a taller height (50vh) on mobile for improved usability (ee7acaa)
- Resize handle is hidden on mobile since touch-based resizing is not practical (ee7acaa)
- Buttons and icons are sized larger on mobile for better touch targets (ee7acaa)
Upgrade instructions
0.9.0 (2026-01-13)
What's changed
- Added comprehensive README documentation for the package (8f1aed3)
Upgrade instructions
0.8.2 (2025-12-12)
What's changed
- Exception traceback frame badges now use more distinct colors to improve visual differentiation between app, plain, plainx, python, and third-party frames (3911c11)
Upgrade instructions
0.8.1 (2025-12-05)
What's changed
- Toolbar tabs now display in registration order instead of being sorted alphabetically (ef81fb8)
- Toolbar expand and close button icons are now more subtle with improved sizing (ab038bd)
Upgrade instructions
0.8.0 (2025-12-04)
What's changed
- Exception toolbar now displays rich traceback frames with expandable source code context instead of raw traceback text (9c4415e)
- Frames are categorized by source (app, plain, plainx, python, third-party) with color-coded badges (9c4415e)
- App frames are expanded by default while framework/library frames are collapsed (9c4415e)
- Local variables are displayed for each frame when
DEBUG=True (9c4415e)
- Frame filenames link directly to VS Code at the exact line number (9c4415e)
- Toggle between rich frame view and raw traceback text with the "View raw" button (9c4415e)
Upgrade instructions
0.7.1 (2025-10-31)
What's changed
- The main toolbar script now includes
nonce="{{ request.csp_nonce }}" for better Content Security Policy compliance (10f642a)
Upgrade instructions
0.7.0 (2025-10-29)
What's changed
- The toolbar JavaScript now uses CSP-compliant methods by avoiding inline style injection and using CSS classes instead (784f3dd)
- Exception template uses
data- attributes and event listeners instead of inline onclick handlers for better CSP compliance (784f3dd)
- Script tags now include
nonce="{{ request.csp_nonce }}" to work with Content Security Policy (784f3dd)
Upgrade instructions
0.6.0 (2025-10-24)
What's changed
- Added explicit
package_label = "plaintoolbar" to the package configuration (d1783dd)
Upgrade instructions
0.5.3 (2025-10-22)
What's changed
- Fixed toolbar visibility check to properly use
get_request_impersonator() helper instead of accessing the impersonator attribute directly (548a385)
Upgrade instructions
0.5.2 (2025-10-06)
What's changed
- Added comprehensive type annotations to improve IDE support and type checking (c87ca27)
Upgrade instructions
0.5.1 (2025-10-02)
What's changed
- The toolbar now uses
get_request_user() helper to check user authentication, improving compatibility with different auth implementations (2663c49)
Upgrade instructions
0.5.0 (2025-09-30)
What's changed
- The toolbar now uses
settings.VERSION instead of the deprecated settings.APP_VERSION (4c5f216)
Upgrade instructions
- If you were accessing
settings.APP_VERSION in any toolbar customizations, update to use settings.VERSION instead
0.4.0 (2025-09-30)
What's changed
- Renamed
ToolbarPanel to ToolbarItem and register_toolbar_panel to register_toolbar_item for better clarity (79654db)
- The toolbar now receives the full template context instead of just the request, allowing toolbar items to access context variables like
object (821bfc6)
- Removed admin URL link from the request panel to reduce clutter (5e665fd)
- Admin link and impersonation UI moved to a new AdminToolbarItem button (821bfc6)
Upgrade instructions
- Replace any usage of
ToolbarPanel with ToolbarItem in your custom toolbar extensions
- Replace any usage of
@register_toolbar_panel decorator with @register_toolbar_item
- Update any custom toolbar items to expect
context instead of request in __init__(): change def __init__(self, request) to def __init__(self, context) and add self.request = context["request"]
- The
panel_template_name attribute replaces template_name (though template_name still works for backward compatibility)
0.3.0 (2025-09-25)
What's changed
- Updated toolbar module autodiscovery to use the new
packages_registry.autodiscover_modules() method (b0b610d)
Upgrade instructions
0.2.0 (2025-09-19)
What's changed
- Minimum Python version raised to 3.13 (d86e307)
Upgrade instructions
- Upgrade your Python environment to Python 3.13 or later
0.1.1 (2025-08-28)
What's changed
- Improved null safety when checking user and impersonator attributes in toolbar rendering (90568bd)
Upgrade instructions
0.1.0 (2025-08-27)
What's changed
- Initial release of plain-toolbar as a standalone package (e49d54b)
- Fixed URL pattern and name display to include quotes in the request toolbar (aa759c7)
Upgrade instructions