@1mancompany/onemancompany 0.7.55 → 0.7.58

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.
@@ -6907,8 +6907,14 @@ h3.pixel-title { font-size: var(--text-label); }
6907
6907
 
6908
6908
  /* ===== Responsive Breakpoints ===== */
6909
6909
 
6910
- /* Tablet: stack left panels above, roster collapses */
6910
+ /* Tablet: two-column, roster collapses, scale up text */
6911
6911
  @media (max-width: 1024px) {
6912
+ :root {
6913
+ --size-1: calc(6px + var(--font-boost));
6914
+ --size-2: calc(8px + var(--font-boost));
6915
+ --size-3: calc(10px + var(--font-boost));
6916
+ --sp-5: 20px;
6917
+ }
6912
6918
  #app {
6913
6919
  grid-template-columns: 200px 1fr;
6914
6920
  grid-template-rows: auto 1fr auto;
@@ -6925,8 +6931,16 @@ h3.pixel-title { font-size: var(--text-label); }
6925
6931
  }
6926
6932
  }
6927
6933
 
6928
- /* Mobile: single column stack */
6934
+ /* Mobile: single column stack, larger text for readability */
6929
6935
  @media (max-width: 768px) {
6936
+ :root {
6937
+ --size-1: calc(7px + var(--font-boost));
6938
+ --size-2: calc(9px + var(--font-boost));
6939
+ --size-3: calc(11px + var(--font-boost));
6940
+ --size-4: calc(13px + var(--font-boost));
6941
+ --sp-4: 12px;
6942
+ --sp-5: 16px;
6943
+ }
6930
6944
  #app {
6931
6945
  grid-template-columns: 1fr;
6932
6946
  grid-template-rows: auto auto 200px auto;
@@ -6965,4 +6979,65 @@ h3.pixel-title { font-size: var(--text-label); }
6965
6979
  max-height: 120px;
6966
6980
  overflow-y: auto;
6967
6981
  }
6982
+ .modal-body {
6983
+ padding: var(--sp-3);
6984
+ }
6985
+ .toolbar-icon-btn {
6986
+ padding: var(--sp-2);
6987
+ }
6988
+ }
6989
+
6990
+ /* Small mobile: extra text boost */
6991
+ @media (max-width: 480px) {
6992
+ :root {
6993
+ --size-1: calc(8px + var(--font-boost));
6994
+ --size-2: calc(10px + var(--font-boost));
6995
+ --size-3: calc(12px + var(--font-boost));
6996
+ --size-4: calc(14px + var(--font-boost));
6997
+ }
6998
+ #app {
6999
+ gap: 2px;
7000
+ padding: 2px;
7001
+ }
7002
+ .modal-content {
7003
+ width: 98vw !important;
7004
+ max-width: 98vw !important;
7005
+ margin: 1vh auto;
7006
+ }
7007
+ }
7008
+
7009
+ /* Wide desktop: use extra space */
7010
+ @media (min-width: 1440px) {
7011
+ #app {
7012
+ grid-template-columns: 280px 1fr 320px;
7013
+ }
7014
+ }
7015
+
7016
+ /* ===== Accessibility: Reduced Motion ===== */
7017
+ @media (prefers-reduced-motion: reduce) {
7018
+ *, *::before, *::after {
7019
+ animation-duration: 0.01ms !important;
7020
+ transition-duration: 0.01ms !important;
7021
+ scroll-behavior: auto !important;
7022
+ }
7023
+ }
7024
+
7025
+ /* ===== Accessibility: Touch Targets (mobile only) ===== */
7026
+ @media (pointer: coarse) {
7027
+ button, [role="button"], select, input[type="checkbox"], input[type="radio"] {
7028
+ min-height: 44px;
7029
+ min-width: 44px;
7030
+ }
7031
+ /* Exempt small/inline elements — full-width hit area or intentionally compact */
7032
+ .pixel-title button, .pixel-btn.small, .btn-small,
7033
+ .collapsible-header, .toolbar-icon-btn, .kanban-column-header {
7034
+ min-height: unset;
7035
+ min-width: unset;
7036
+ }
7037
+ }
7038
+
7039
+ /* ===== Interaction: Disabled State ===== */
7040
+ button:disabled, [aria-disabled="true"] {
7041
+ opacity: 0.5;
7042
+ cursor: not-allowed;
6968
7043
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1mancompany/onemancompany",
3
- "version": "0.7.55",
3
+ "version": "0.7.58",
4
4
  "description": "The AI Operating System for One-Person Companies",
5
5
  "bin": {
6
6
  "onemancompany": "bin/cli.js"
package/pyproject.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "onemancompany"
3
- version = "0.7.55"
3
+ version = "0.7.58"
4
4
  description = "A one-man company simulation with pixel art visualization and LangChain AI agents"
5
5
  requires-python = ">=3.12"
6
6
  dependencies = [
@@ -595,7 +595,13 @@ settings = Settings()
595
595
 
596
596
 
597
597
  def update_env_var(key: str, value: str) -> None:
598
- """Update or add a variable in the .env file, then reload settings."""
598
+ """Update or add a variable in the .env file, then reload settings.
599
+
600
+ Also syncs os.environ so that pydantic BaseSettings (which reads os.environ
601
+ with higher priority than .env files) sees the new value immediately.
602
+ """
603
+ import os as _os
604
+
599
605
  env_path = DATA_ROOT / DOT_ENV_FILENAME
600
606
  lines: list[str] = []
601
607
  found = False
@@ -610,6 +616,9 @@ def update_env_var(key: str, value: str) -> None:
610
616
  if not found:
611
617
  lines.append(f"{key}={value}")
612
618
  env_path.write_text("\n".join(lines) + "\n", encoding=ENCODING_UTF8)
619
+ # Sync os.environ — main.py's load_dotenv() seeds it at startup;
620
+ # without this, the stale env var wins over the updated .env file.
621
+ _os.environ[key] = value
613
622
  reload_settings()
614
623
 
615
624