plain.observer 0.3.3__py3-none-any.whl → 0.3.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of plain.observer might be problematic. Click here for more details.

@@ -1,5 +1,27 @@
1
1
  # plain-observer changelog
2
2
 
3
+ ## [0.3.5](https://github.com/dropseed/plain/releases/plain-observer@0.3.5) (2025-07-30)
4
+
5
+ ### What's changed
6
+
7
+ - Improved observer toolbar button text clarity for empty states - "Recording" now shows as "Recording (no summary)" and "Summary" shows as "No summary" ([143c2a6](https://github.com/dropseed/plain/commit/143c2a61a7))
8
+ - Fixed observer auto-enable functionality by adding POST handler for summary mode actions ([cc415e0](https://github.com/dropseed/plain/commit/cc415e0af7))
9
+
10
+ ### Upgrade instructions
11
+
12
+ - No changes required
13
+
14
+ ## [0.3.4](https://github.com/dropseed/plain/releases/plain-observer@0.3.4) (2025-07-30)
15
+
16
+ ### What's changed
17
+
18
+ - Fixed URL configuration examples in installation documentation to use `ObserverRouter` instead of string path ([f55ac7d](https://github.com/dropseed/plain/commit/f55ac7d491))
19
+ - Enhanced README with table of contents, PyPI installation link, and post-installation usage instructions ([4ebecd1](https://github.com/dropseed/plain/commit/4ebecd1856))
20
+
21
+ ### Upgrade instructions
22
+
23
+ - No changes required
24
+
3
25
  ## [0.3.3](https://github.com/dropseed/plain/releases/plain-observer@0.3.3) (2025-07-25)
4
26
 
5
27
  ### What's changed
plain/observer/README.md CHANGED
@@ -2,8 +2,12 @@
2
2
 
3
3
  **On-page telemetry and observability tools for Plain.**
4
4
 
5
+ - [Installation](#installation)
6
+
5
7
  ## Installation
6
8
 
9
+ Install the `plain.observer` package from [PyPI](https://pypi.org/project/plain.observer/):
10
+
7
11
  ```bash
8
12
  uv add plain.observer
9
13
  ```
@@ -22,13 +26,14 @@ Include the observer URLs in your URL configuration:
22
26
 
23
27
  ```python
24
28
  # app/urls.py
29
+ from plain.observer.urls import ObserverRouter
25
30
  from plain.urls import Router, include
26
31
 
27
32
  class AppRouter(Router):
28
33
  namespace = ""
29
34
  urls = [
30
35
  # ...
31
- include("observer/", "plain.observer.urls"),
36
+ include("observer/", ObserverRouter),
32
37
  ]
33
38
  ```
34
39
 
@@ -37,3 +42,5 @@ Run migrations to create the necessary database tables:
37
42
  ```bash
38
43
  plain migrate
39
44
  ```
45
+
46
+ After installation, Observer will automatically integrate with your application's toolbar (if using `plain.admin`). You can access the web interface at `/observer/traces/` or use the CLI commands to analyze traces.
@@ -18,9 +18,9 @@
18
18
  {% if observer.get_current_trace_summary() %}
19
19
  {{ observer.get_current_trace_summary() }}
20
20
  {% elif observer.is_persisting() %}
21
- Recording
21
+ Recording (no summary)
22
22
  {% elif observer.is_summarizing() %}
23
- Summary
23
+ No summary
24
24
  {% elif observer.is_enabled() %}
25
25
  Observing
26
26
  {% else %}
plain/observer/views.py CHANGED
@@ -61,6 +61,16 @@ class ObserverTracesView(AuthViewMixin, HTMXViewMixin, ListView):
61
61
  response.headers["HX-Refresh"] = "true"
62
62
  return response
63
63
 
64
+ def post(self):
65
+ """Handle POST requests to set observer mode."""
66
+ action = self.request.data.get("observe_action")
67
+ if action == "summary":
68
+ observer = Observer(self.request)
69
+ response = Response(status_code=204)
70
+ observer.enable_summary_mode(response)
71
+ return response
72
+ return Response("Invalid action", status_code=400)
73
+
64
74
 
65
75
  class ObserverTraceDetailView(AuthViewMixin, HTMXViewMixin, DetailView):
66
76
  """Detail view for a specific trace."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plain.observer
3
- Version: 0.3.3
3
+ Version: 0.3.5
4
4
  Summary: On-page telemetry and observability tools for Plain.
5
5
  Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
6
6
  License-Expression: BSD-3-Clause
@@ -15,8 +15,12 @@ Description-Content-Type: text/markdown
15
15
 
16
16
  **On-page telemetry and observability tools for Plain.**
17
17
 
18
+ - [Installation](#installation)
19
+
18
20
  ## Installation
19
21
 
22
+ Install the `plain.observer` package from [PyPI](https://pypi.org/project/plain.observer/):
23
+
20
24
  ```bash
21
25
  uv add plain.observer
22
26
  ```
@@ -35,13 +39,14 @@ Include the observer URLs in your URL configuration:
35
39
 
36
40
  ```python
37
41
  # app/urls.py
42
+ from plain.observer.urls import ObserverRouter
38
43
  from plain.urls import Router, include
39
44
 
40
45
  class AppRouter(Router):
41
46
  namespace = ""
42
47
  urls = [
43
48
  # ...
44
- include("observer/", "plain.observer.urls"),
49
+ include("observer/", ObserverRouter),
45
50
  ]
46
51
  ```
47
52
 
@@ -50,3 +55,5 @@ Run migrations to create the necessary database tables:
50
55
  ```bash
51
56
  plain migrate
52
57
  ```
58
+
59
+ After installation, Observer will automatically integrate with your application's toolbar (if using `plain.admin`). You can access the web interface at `/observer/traces/` or use the CLI commands to analyze traces.
@@ -1,5 +1,5 @@
1
- plain/observer/CHANGELOG.md,sha256=r0_rxaPSTqGZHICwXhYLNiApmrXqzBf_VUV-J9uFB84,4048
2
- plain/observer/README.md,sha256=hHpKfD75aDnQMy1bY39uNSVoXqSSIcIKcHN_JaJMEZs,606
1
+ plain/observer/CHANGELOG.md,sha256=-xQJV_8LKGIx8SpCjiJ2uLHRHsjD7NgXddolsnyDHMw,5091
2
+ plain/observer/README.md,sha256=39RA17fgcyOkqeIWBOAg4Be6YZjoiDzK5PVOG-nseuY,988
3
3
  plain/observer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  plain/observer/admin.py,sha256=Csvd5V9F5u0zksWpbpISY_NlBJa-0TptSX_Kn652WRc,2719
5
5
  plain/observer/cli.py,sha256=oP_aeno-xYQ2YemQVNFwhmLevDdkf1uLRk-wpOUxqdU,20640
@@ -9,7 +9,7 @@ plain/observer/default_settings.py,sha256=JN2jT2wfa6f80EqU0p4Ox_47xyxL-Ym5-_pftY
9
9
  plain/observer/models.py,sha256=uVmytQHCYilMfULGJHk63l48APOHqEcbcRtYoE7L_RU,13072
10
10
  plain/observer/otel.py,sha256=nr4BYQb6rWF7uXsOVmBWV-8z5jLTPbDnYi6VSdVvUnE,14585
11
11
  plain/observer/urls.py,sha256=oLJoDjB7YMUx8z-MGql_xXSXkfacVKFp-aHNXaKzs38,376
12
- plain/observer/views.py,sha256=9TRvjfBk62nxlfZXXk-LsMXqnCxL_FIrQH4eUFIUN9A,4226
12
+ plain/observer/views.py,sha256=bPBByjs1ZlsN-9wgiO4OqQYR9uPXBYnasqV2ZZLJU0Q,4626
13
13
  plain/observer/migrations/0001_initial.py,sha256=HVoSrd5V-IOqD1adADIAzqMH8xMlPwyLOFH6JcGFniI,3312
14
14
  plain/observer/migrations/0002_trace_share_created_at_trace_share_id_trace_summary_and_more.py,sha256=lgFqdn66zq7AoCvkC3MIvLXiE_Omup5EEMDSe1jpKOg,1765
15
15
  plain/observer/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -18,8 +18,8 @@ plain/observer/templates/observer/trace_detail.html,sha256=86-YGCpg9gy31Pd2vDHB3
18
18
  plain/observer/templates/observer/trace_share.html,sha256=HrYLti5BpX96-6Bm_37OObFvAJSYbZ3GZD-MwCi9hgA,525
19
19
  plain/observer/templates/observer/traces.html,sha256=cFnlIuCf6XJEpHRD2_yfVmPDGZfiqMq6Cg-iMlT3CWY,22184
20
20
  plain/observer/templates/toolbar/observer.html,sha256=uaDKiWR7EYqC1kEXE-uHDlE7nfFEMR_zmOgvlKwQHJ4,1365
21
- plain/observer/templates/toolbar/observer_button.html,sha256=xsHJSuOjW6ddnxlPlPKek22WrWnuVYGIcBfFdkb76pk,1199
22
- plain_observer-0.3.3.dist-info/METADATA,sha256=N34q8Ad8ad72MSkZtndP9woazPgI54Eylicz0hLT8qg,1004
23
- plain_observer-0.3.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
24
- plain_observer-0.3.3.dist-info/licenses/LICENSE,sha256=YZdq6Pz8ivjs97eSVLRmoGDI1hjEikX6N49DfM0DWio,1500
25
- plain_observer-0.3.3.dist-info/RECORD,,
21
+ plain/observer/templates/toolbar/observer_button.html,sha256=FMBJHKMGqpHWs-3Ei2PBCdVYZ_6vFw6-eKH_i4jQu-Q,1215
22
+ plain_observer-0.3.5.dist-info/METADATA,sha256=bc3x8wVM3wnBmXV47w_l5JB5LDraDx8oo5-rF8rQnB0,1386
23
+ plain_observer-0.3.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
24
+ plain_observer-0.3.5.dist-info/licenses/LICENSE,sha256=YZdq6Pz8ivjs97eSVLRmoGDI1hjEikX6N49DfM0DWio,1500
25
+ plain_observer-0.3.5.dist-info/RECORD,,